- •1.Основные понятия и определения курса. Традиционные файловые системы.
- •5 История развития субд Oracle.
- •6 Общие сведения об инструкциях sql. Правила именования таблиц и столбцов
- •7 Общие сведения о dml.
- •8 Общий синтаксис инструкции select
- •9 Предложения select и from. Предикаты и вычисляемые столбцы (пример).
- •10 Предложение where и классификация условий отбора (привести примеры).
- •11 Составные условия отбора. Влияние значений null на результат отбора.
- •12 Многотабличные запросы и их особенности (привести пример).
- •13 Операторы комбинирования результирующих таблиц в многотабличных запросах (привести примеры).
- •14 Предложение group by. Статистические (агрегативные) функции в sql (примеры).
- •15 Условия отбора групп (предложение having)
- •16 Сортировка результатов запроса (предложение order by).
- •17 Подзапросы: типы, примеры, правила и ограничения, ключевые слова any, all, exist, not exist
- •18 Добавление данных (инструкции insert, merge).
- •19 Модификация и удаление данных (инструкции update, merge и delete).
- •20 Общие сведения о ddl.
- •21 Типы данных sql.
- •22 Создание таблиц (инструкция create table).
- •23 Изменение определения и удаление таблицы (инструкции alter ,drop table).
- •24 Создание псевдонимов и индексов таблиц (инструкции create/drop alias, create/drop index)
- •25 Создание представлений (инструкция create view). Преимущества и недостатки использования, основные виды
- •26 Проблемы обновления и удаление представлений.
- •27 Принципы защиты данных в sql: аутентификация пользователей, защищаемые объекты, использование привилегий и другие возможности обеспечения безопасности
- •28 Аутентификация. Создание и изменение пользователей. Аутентификация пользователей
- •29 Профили. Создание, изменение, удаление.
- •30 Привилегии. Системные привилегии.
- •31 Привилегии доступа к объектам схемы. Правила предоставления привилегий
- •32 Предоставление и отмена привилегий (инструкция grant и revoke).
- •33 Работа с привилегиями при помощи ролей. Системные роли, определение, изменение, удаление ролей
- •34 Аудит. Типы и применение аудита.
- •Типы аудита. В диспетчере авторизации можно использовать два вида аудита: аудит времени выполнения и аудит изменения хранилища данных авторизации. Аудит времени выполнения
- •Аудит изменений хранилища данных авторизации
- •35 Условия целостности данных
- •36 Правила добавления и удаления. Проблемы ссылочных циклов
- •37 Понятие транзакций. Инструкции обработки транзакций (commit и rollback)
- •38 Модель транзакции в стандарте ansi/iso
- •39 Журнал транзакций. Проблемы обработки параллельных транзакций.
- •40 Блокировки транзакций: уровни и виды, тупиковые ситуации.
- •41 Преимущества pl/sql и общие сведения о структуре pl/sql программ
- •42 Классификация блоков pl/sql.
- •43 Управление блоками в sql*Plus.
- •44 Лексические единицы pl/sql
- •45 Синтаксис объявления переменных, инициализация.
- •46 Скалярные типы pl/sql.
- •48 Коллекции (составные типы pl/sql).
- •Методы, применяемые при работе с коллекциями
- •Инициализация коллекций
- •50 Массовое связывание.
- •51 Преобразование типов данных. Область действия и область видимости переменных. Выражения и операции.
- •52 Управляющие структуры pl/sql. Область действия счетчика цикла, ограничения безусловных переходов условное управление
- •Итерационное управление
- •53 Понятие транзакции и виды блокировок Oracle
- •54 Операторы управления транзакциями в Oracle (commit, rollback, savepoint, set transaction, lock table).
- •55 Многоверсионная модель согласованности Oracle.
- •56 Автономные транзакции. Понятие прагмы.
- •57 Записи pl/sql. Использование %rowtype
- •58 Курсорные типы, переменные и выражения. Виды и назначение курсоров.
- •59 Обработка явных и неявных курсоров.
- •61 Динамический sql: использование пакета dbms_sql.
- •62 Алгоритма обработки данных в dbms_sql
- •63 Встроенный динамический sql (nds). (операторы execute immediate, open … for).
- •65 Классификация и определение программных единиц. Общие ключевые слова.
- •66 Создание и использование процедур
- •Вызов процедур и функций
- •67 Создание и использование (вызов) функций.
- •Вызов процедур и функций
- •68 Структура и определение пакета.
- •69 Триггеры бд: виды и создание
- •70 Последовательность событий и предикаты триггеров.
- •71 Пакет dbms_output.
- •72 Пакет utl_file(файловый ввод/вывод)
- •Безопасность
- •73 Пакет dbms_pipe: посылка и получение сообщений
- •74 Пакет dbms_pipe: создание программных каналов и управление ими.
- •75 Архитектура odbc и коды возврата
- •76 Основной алгоритм программ odbc. Инициализация и завершение.
- •77 Выполнение операторов: функции управления каталогом.
- •78 Непосредственное и подготавливаемое выполнение.
- •79 Выборка результатов.
- •80 Подробный алгоритм использования odbc в прикладных программах.
42 Классификация блоков pl/sql.
Программа PL/SQL структурируется при помощи отдельных блоков, в которых группируются связанные объявления и операторы. Каждый блок программы PL/SQL имеет специальное назначение и решает определенную задачу. Следовательно, программу PL/SQL можно организовать таким образом, чтобы ее легче было понять.
Блок PL/SQL может включать три раздела: объявления, тело основной программы и обработчики исключительных ситуаций.
• Раздел объявлений блокаPL/SQL – это часть блока, где объявляются переменные, константы, исключительные ситуации и т.д., которые затем становятся доступны во всех других частях блока.
• В теле основной программысодержатся исполняемые операторы блока. Другими словами, тело – это часть блока PL/SQL, в которой определяются его функциональные возможности.
• В разделе исключительных ситуацийнаходятся обработчики исключительных ситуаций, т.е. подпрограммы обработки ошибок. Когда оператор в теле блока определяет исключительную ситуацию (обнаруживает ошибку), он передает управление программой обработчику соответствующей исключительной ситуации, находящемуся в разделе обработчиков исключительных ситуаций.
declare
/*раздел объявлений (переменные, типы, курсоры и др.)*/
begin
/*Основной раздел блока, называемый выполняемым. Содержит процедурные и SQL–операторы*/
exception
/*Раздел обработки исключительных ситуаций. Содержит операторы обработки ошибок*/
end;
Вообще говоря, обязательнымв блоке является только выполняемый раздел, кроме того, он должен содержать, по крайней мере, один выполняемый оператор.
43 Управление блоками в sql*Plus.
Утилита SQL*Plus– это, пожалуй, самый простой из инструментов разработки программPL/SQL. ОбычноSQL*Plusпоставляется вместе с серверомORACLEи является частью стандартной системы. Он дает пользователям возможность вводитьSQL– операторы и блоки вPL/SQLдиалоговом режиме. При выполненииSQL– оператора вSQL*Plusзаканчивать его необходимо точкой с запятой (см. вышеприведенные примеры). Точка с запятой не является элементом собственно оператора – это признак его окончания. В блоке же точка с запятой является синтаксическим элементом самого блока, а не признаком окончания некоторого оператора. При вводе пользователем ключевого словаDECLAREилиBEGINSQL*Plusраспознает это и понимает, что пользователь запускает на выполнение блокPL/SQL, а неSQL– оператор. Признаком завершения блока является косая черта, которая соответствует командеRUNSQL*Plus.
Как уже указывалось, хранимые процедуры можно вызывать только из выполняемого раздела или из раздела обработки исключительных ситуаций блока PL/SQL. ВSQL*Plusпредлагается удобный и более простой способ вызова хранимых процедур – команда ЕХЕСUТЕ, которая принимает заданные аргументы, автоматически размещает ключевые словаBEGINиENDперед и после указанных аргументов, а затем передает полученный блок серверу базы данных на выполнение.
44 Лексические единицы pl/sql
Символы группируются в лексические единицы, которые называют атомарными, поскольку они представляют собой наименьшие самостоятельные элементы языка. В PL/SQL лексическими единицами являются идентификатор, литерал, разделитель и комментарий.
Идентификатор- это имя объекта PL/SQL, которым может быть:
константа;
скалярная переменная;
составная переменная (запись или коллекция);
исключение;
процедура;
функция;
пакет;
тип;
курсор;
зарезервированное слово;
метка.
К идентификаторам PL/SQL предъявляются следующие требования:
длина - до 30 символов;
должны начинаться с буквы;
не должны содержать пробелов (но могут включать символы "$", "_" и "#").
Литерал- это значение, с которым не связан идентификатор, оно существует "само по себе". Литерал может быть представлен одним из следующих типов данных: NUMBER (например, 415, 21,6 или NULL), STRING (например, 'Предложение', '01-FEB-2003', NULL) либо BOOLEAN (а именно TRUE, FALSE или NULL).
Заметьте, что в PL/SQL нет возможности непосредственно задать литеральное значение даты. Значение '01-FEB-2003' - это строковый литерал, то есть последовательность символов, заключенная в одинарные кавычки. Такую строку можно конвертировать в дату с помощью PL/SQL или SQL, но внутри базы данных Oracle для значений дат используется только двоичное представление.
Строковый литерал может состоять из одного или более символов, входящих в набор символов PL/SQL. Литерал длиной нуль символов представляется как '' (две последовательные одинарные кавычки без символов между ними). В Oracle9i строковый литерал нулевой длины имеет значение NULL и тип данных CHAR (строка нулевой длины). В отличие от идентификаторов, строковые литералы в PL/SQL чувствительны к регистру символов.
Разделитель в виде точки с запятой. Программа на PL/SQL представляет собой последовательность объявлений переменных и операторов, границы которых определяются не кодом конца строки, а символом точки с запятой (;). Один оператор часто состоит из нескольких строк. В нем вы видите два символа точки с запятой. Первый отмечает конец единственного оператора присваивания в конструкции IF...END IF, а второй - конец оператора IF. Данный оператор можно разместить и в одной строке, причем результат будет одинаковым.
Комментарии. Наличие поясняющего и сопроводительного Комментарий текста в коде (комментариев) является основным признаком хорошей программы. В данной книге приводится множество советов, касающихся того, как сделать программы самодокументируемыми за счет использования продуманных соглашений об именах и модульного подхода. Однако для понимания сложного программного кода этого еще не достаточно. PL/SQL предлагает разработчикам две разновидности комментариев: однострочные и многострочные.
