Презентация Работа с составными типами данных в PL/SQL онлайн

На нашем сайте вы можете скачать и просмотреть онлайн доклад-презентацию на тему Работа с составными типами данных в PL/SQL абсолютно бесплатно. Урок-презентация на эту тему содержит всего 31 слайд. Все материалы созданы в программе PowerPoint и имеют формат ppt или же pptx. Материалы и темы для презентаций взяты из открытых источников и загружены их авторами, за качество и достоверность информации в них администрация сайта не отвечает, все права принадлежат их создателям. Если вы нашли то, что искали, отблагодарите авторов - поделитесь ссылкой в социальных сетях, а наш сайт добавьте в закладки.
Презентации » Информатика » Работа с составными типами данных в PL/SQL



Оцените!
Оцените презентацию от 1 до 5 баллов!
  • Тип файла:
    ppt / pptx (powerpoint)
  • Всего слайдов:
    31 слайд
  • Для класса:
    1,2,3,4,5,6,7,8,9,10,11
  • Размер файла:
    539.00 kB
  • Просмотров:
    58
  • Скачиваний:
    0
  • Автор:
    неизвестен



Слайды и текст к этой презентации:

№1 слайд
Работа с составными типами
Содержание слайда: Работа с составными типами данных

№2 слайд
В PL SQL существует составных
Содержание слайда: В PL/SQL существует 2 составных типа данных: В PL/SQL существует 2 составных типа данных: Record (запись) - Запись как целое не имеет собственного значения; однако значение имеет каждый ее компонент или поле, а объединение их в единую запись позволяет хранить и обрабатывать все значения как одно целое. Записи сильно упрощают работу программиста, а переход от объявлений уровня полей к уровню записей повышает эффективность написания кода. Collection (коллекция) 3 типа Ассоциативный массив Вложенная таблица VARRAY

№3 слайд
где field declaration
Содержание слайда: где field_declaration описывается как: где field_declaration описывается как: field_name {field_type | variable%TYPE | table.column%TYPE | table%ROWTYPE} [[NOT NULL] {:= | DEFAULT} expr]

№4 слайд
Объявление записей Объявление
Содержание слайда: Объявление записей: Объявление записей: Запись, определяемая программистом DECLARE TYPE book_info IS RECORD ( author books.author%TYPE, category VARCHAR2(100), total_page_count POSITIVE); v_book book_info; Запись на основе таблицы DECLARE V_CNTY COUNTRIES%ROWTYPE; Record это НЕ запись таблицы БД

№5 слайд
... ... TYPE emp record type
Содержание слайда: ... ... TYPE emp_record_type IS RECORD (ename VARCHAR2(25), job VARCHAR2(10), sal NUMBER(8,2)); emp_record emp_record_type; ...

№6 слайд
... ... TYPE emp record type
Содержание слайда: ... ... TYPE emp_record_type IS RECORD (empno NUMBER(4) NOT NULL:=100, ename emp.ename%TYPE, job emp.job%TYPE ); emp_record emp_record_type; ...

№7 слайд
Содержание слайда:

№8 слайд
Переменная составного типа
Содержание слайда: Переменная составного типа коллекции столбцов в таблице или представлении. Переменная составного типа коллекции столбцов в таблице или представлении. Префикс %ROWTYPE используется для обращения к коллекции базирующейся на столбцах таблицы Поля в Record будут именованы также и того же типа что и поля таблицы БД

№9 слайд
Тип данных и количество полей
Содержание слайда: Тип данных и количество полей таблицы базы данных может быть неизвестно. Тип данных и количество полей таблицы базы данных может быть неизвестно. Тип данных и количество полей таблицы базы данных может быть в любое время изменено. Атрибут может быть использован после того как данные выбраны Select *

№10 слайд
Пример объявления переменной,
Содержание слайда: Пример объявления переменной, департамент: Пример объявления переменной, департамент: dept_record departments%ROWTYPE; Пример объявления переменной, сотрудники: emp_record employee%ROWTYPE;

№11 слайд
DECLARE DECLARE e rec emp
Содержание слайда: DECLARE DECLARE e_rec emp%ROWTYPE; BEGIN SELECT * INTO e_rec FROM employees WHERE empno = &employee_number; INSERT INTO retired_emps (empno, ename, job, mgr, hiredate, sal, comm,deptno) VALUES (e_rec.empno, e_rec.ename,e_rec.job, e_rec.mgr, e_rec.hiredate, e_rec.sal, e_rec.comm, e_rec.deptno); COMMIT; END;

№12 слайд
DECLARE DECLARE my book books
Содержание слайда: DECLARE DECLARE my_book books%ROWTYPE; BEGIN SELECT * INTO my_book FROM books WHERE title = 'Oracle PL/SQL'; DBMS_OUTPUT.put_line ('Код ISBN: ' || my_book.isbn); END;

№13 слайд
PL SQL поддерживает следующие
Содержание слайда: PL/SQL поддерживает следующие операции над записями: PL/SQL поддерживает следующие операции над записями: копирование содержимого одной записи в другую (если они имеют совместимую структуру, то есть одинаковое количество полей одного или взаимопреобразуемых типов); присваивание записи значения NULL (простым оператором присваивания); передача записи в качестве аргумента и возврат записи функцией (RETURN) Операции на уровне записей не поддерживаются: проверить, содержат ли все поля записи значение NULL, использовать синтаксис IS NULL нельзя. Осуществить такую проверку можно лишь путем приме нения оператора IS NULL по отношению к каждому полю Невозможно сравнить две записи в одной операции. Нельзя узнать, равны или нет две записи (то есть значения всех их полей), или же узнать, какая из записей больше. чтобы ответить на эти вопросы, нужно сравнить каждую пару полей. * Записи в PL/SQL. Глава 11. Oracle_PL-SQL_dlya_professionalov_6-e_izdanie.pdf

№14 слайд
В PL SQL существует составных
Содержание слайда: В PL/SQL существует 2 составных типа данных: В PL/SQL существует 2 составных типа данных: Record (запись) Collection (коллекция) – аналог традиционных массивов. 3 типа коллекций : Ассоциативный массив, Вложенная таблица, VARRAY. Ситуации для применения : Ведение списков данных. Ускорение многострочных операций SQL. Использование коллекций в сочетании с конструкциями FORALL и BULK COLLECT повышает производительность многострочных операций SQL. Кэширование информации базы данных. Коллекции хорошо подходят для кэширования статической информации, которая часто запрашивается в ходе одного сеанса.

№15 слайд
Концепции и терминология
Содержание слайда: Концепции и терминология Концепции и терминология Элементы и индексы. Коллекция состоит из множества элементов, каждый элемент обладает своим индексом. Иногда элементы называются «строками», а индексы — «номерами строк». Целочисленное / строковое индексирование. Индекс представляет собой целочисленное значение. С Oracle9, в качестве индекса ассоциативных массивов можно использовать строки (до 32 Кбайт длиной) – эта возможность не поддерживается для вложенных таблиц, и VARRAY. Тип коллекции. Каждая переменная, представляющая коллекцию, должна быть объявлена на основании заранее определенного типа. Разреженные и плотные коллекции. Коллекция (или массив, или список) называется плотной, если все ее элементы, от первого до последнего, определены и каждому из них присвоено некоторое значение (таковым может быть и NULL). Коллекция считается разреженной, если отдельные ее элементы отсутствуют. Ограниченная и неограниченная коллекция. Коллекция называется ограниченной, если заранее определены границы возможных значений индексов. Двумерные структуры в настоящее время напрямую не поддерживаются, можно создать многомерный массив, объявляя коллекцию коллекцией

№16 слайд
Ассоциативные массивы
Содержание слайда: Ассоциативные массивы Ассоциативные массивы Это одномерные неограниченные разреженные коллекции, состоящие из однородных элементов, доступные только в PL/SQL. Ранее в Oracle7) они назывались таблицами PL/SQL, а в Oracle8 индексируемыми таблицами. С Oracle9 назваются ассоциативными массивами. INDEX BY используется для индексирования посредством значений типа VARCHAR2 или PLS_INTEGER. Вложенные таблицы одномерные коллекции, состоящие из однородных элементов. Первоначально заполняются полностью, позднее из-за удаления элементов могут стать разреженными. Вложенные таблицы могут определяться и в PL/SQL, и в базах данных (например, в качестве столбцов таблиц). Вложенные таблицы представляют собой мультимножества, то есть элементы вложенной таблицы не упорядочены. Массив типа VARRAY Размер всегда ограничен, не бывают разреженными. Как и вложенные таблицы, массивы VARRAY используются и в PL/SQL, и в базах данных. Однако порядок их элементов при сохранении и выборке, в отличие от вложенных таблиц, сохраняется.

№17 слайд
Метод встроенная функция,
Содержание слайда: Метод – встроенная функция, оперирующая с коллекциями. Метод – встроенная функция, оперирующая с коллекциями.

№18 слайд
DECLARE DECLARE TYPE list of
Содержание слайда: DECLARE DECLARE TYPE list_of_names_t IS TABLE OF EMPLOYEES.first_name%TYPE INDEX BY PLS_INTEGER; l_row PLS_INTEGER; happyfamily list_of_names_t; BEGIN happyfamily (2020202020) := 'Eli'; happyfamily (-15070) := 'Steven'; happyfamily (-90900) := 'Chris'; happyfamily (88) := 'Veva'; l_row := happyfamily.FIRST; WHILE (l_row IS NOT NULL) LOOP DBMS_OUTPUT.put_line(happyfamily(l_row)); l_row := happyfamily.NEXT (l_row); END LOOP; END;

№19 слайд
TYPE type name IS TABLE OF
Содержание слайда: TYPE type_name IS TABLE OF TYPE type_name IS TABLE OF {column_type | variable%TYPE | table.column%TYPE} [NOT NULL] | table.%ROWTYPE [INDEX BY BINARY_INTEGER]; Identifier_name type_name;

№20 слайд
Содержание слайда:

№21 слайд
DECLARE DECLARE TYPE ename t
Содержание слайда: DECLARE DECLARE TYPE ename_t_type IS TABLE OF employees.ename%TYPE INDEX BY BINARY_INTEGER; TYPE hiredate_t_type IS TABLE OF DATE INDEX BY BINARY_INTEGER; ename_table ename_t_type; hiredate_table hiredate_t_type; BEGIN ename_table(1) := ’CAMERON’; hiredate_table(8) := SYSDATE + 7; IF ename_table.EXISTS(1) THEN INSERT INTO ... ... END;

№22 слайд
DECLARE DECLARE TYPE dept
Содержание слайда: DECLARE DECLARE TYPE dept_table_type IS TABLE OF dept%ROWTYPE INDEX BY BINARY_INTEGER; dept_table dept_table_type; * dept%ROWTYPE – строка таблицы DEPT.

№23 слайд
DECLARE DECLARE TYPE emp
Содержание слайда: DECLARE DECLARE TYPE emp_table_type is table of emp.ename%TYPE INDEX BY BINARY_INTEGER; my_emp_table emp_table_type; BEGIN my_emp_table(1) : = ‘SMITH’; UPDATE emp SET sal = 1.1 * sal WHERE ename = my_emp_table(1); COMMIT; END;

№24 слайд
--CREATE TYPE list of names t
Содержание слайда: --CREATE TYPE list_of_names_t IS TABLE OF VARCHAR2 (100); --CREATE TYPE list_of_names_t IS TABLE OF VARCHAR2 (100); DECLARE TYPE list_of_names_t IS TABLE OF VARCHAR2 (100); happyfamily list_of_names_t := list_of_names_t (); children list_of_names_t := list_of_names_t (); parents list_of_names_t := list_of_names_t (); BEGIN happyfamily.EXTEND (4); happyfamily (1) := 'Eli'; happyfamily (2) := 'Steven'; happyfamily (3) := 'Chris'; happyfamily (4) := 'Veva'; children.EXTEND; children (1) := 'Chris'; children.EXTEND; children (2) := 'Eli'; parents := happyfamily MULTISET EXCEPT children; FOR I IN parents.FIRST .. parents.LAST LOOP DBMS_OUTPUT.put_line (parents (i)); END LOOP; END;

№25 слайд
CREATE TYPE first names t IS
Содержание слайда: CREATE TYPE first_names_t IS VARRAY (2) OF VARCHAR2 (100); CREATE TYPE first_names_t IS VARRAY (2) OF VARCHAR2 (100); CREATE TYPE child_names_t IS VARRAY (1) OF VARCHAR2 (100); CREATE TABLE family ( surname VARCHAR2(1000), parent_names first_names_t, children_names child_names_t); DECLARE parents first_names_t := first_names_t (); children child_names_t := child_names_t (); BEGIN parents.EXTEND (2); parents (1) := 'Samuel'; parents (2) := 'Charina'; children.EXTEND; children (1) := 'Feather'; INSERT INTO family ( surname, parent_names, children_names ) VALUES ( 'Assurty', parents, children ); END; SELECT * FROM family SURNAME PARENT_NAMES CHILDREN_NAMES -------------------------------------------- Assurty FIRST_NAMES_T('Samuel', 'Charina') CHILD_NAMES_T('Feather')

№26 слайд
Выбор типа коллекции
Содержание слайда: Выбор типа коллекции

№27 слайд
Массовая обработка Массовая
Содержание слайда: Массовая обработка Массовая обработка - команда FORALL и секция BULK COLLECT - конструкции массовой обработки (bulk processing). PL/SQL выполняет процедурные команды самостоятельно, а команды SQL передает ядру SQL. Каждое переключение контекста приводит к дополнительным затратам ресурсов.

№28 слайд
FORALL for cnt in .. loop
Содержание слайда: FORALL for cnt in 1..100000 loop insert into temp_bulk values(numb(cnt),name(cnt)); end loop; FORALL i in 1..100000 insert into temp_bulk values(numb(i),name(i)); Execution Time (secs) --------------------- FOR loop: 4,9 FORALL: ,14

№29 слайд
BULK COLLECT DECLARE TYPE
Содержание слайда: BULK COLLECT DECLARE TYPE first_name_t IS TABLE OF EMPLOYEES.first_name%TYPE; TYPE salary_t IS TABLE OF EMPLOYEES.salary%TYPE; v_first_name first_name_t; v_salary salary_t; BEGIN SELECT first_name, salary BULK COLLECT INTO v_first_name, v_salary FROM employees WHERE job_id = 'IT_PROG' ; FOR i IN 1 .. v_first_name.COUNT LOOP dbms_output.put_line(v_first_name(i)||' earns - ' ||v_salary(i) ); END LOOP; END;

№30 слайд
Итоги Изучены составные типы
Содержание слайда: Итоги Изучены составные типы данных: Записи Коллекции 2 типа FORALL и BULK COLLECT

№31 слайд
Практика ! минут
Содержание слайда: Практика №5! 40 минут

Скачать все slide презентации Работа с составными типами данных в PL/SQL одним архивом: