- •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 в прикладных программах.
13 Операторы комбинирования результирующих таблиц в многотабличных запросах (привести примеры).
UNION, INTERSECT, EXSEPT(MINUC)
При использовании этих операторов на таблицы накладываются ограничения по соединению, т.е. д/б одинаковое количество столбцов, а в столбцах данные д/б одного типа и длины.
Пример1:
(select Area
from branch
where area is not null)
union
(select Area
from properti
where area is not null)
пример 2:
(select city
from branch)
INTERSECT
(select city
from properti)
14 Предложение group by. Статистические (агрегативные) функции в sql (примеры).
СТАТИСТИЧЕСКИЕ (АГРЕГАТНЫЕ) ФУНКЦИИ
В SQL имеется пять статистических функций, которые позволяют получать различные виды итоговой информации:
- SUM() – для вычисления суммы всех значений столбца-аргумента
- AVG() – для вычисления среднего значения столбца
- MIN() – определяет минимальное значение столбца
- MAX() – определяет максимальное значение столбца
- COUNT() – подсчитывает число всех определенных значений столбца
- COUNT(*) – подсчитывает число строк таблицы.
Определить среднемесячную и среднегодовую зарплату сотрудников предприятия
select avg(salary) as per_month, avg(12*salary) as per_year
from staff;
select count (sno)
fromstaff
where position = ‘менеджер’;
GROUP BY
Запрос, включающий в себя предложение GROUPBY, называется запросом с группировкой, поскольку он объединяет строки исходных таблиц в группы и для каждой группы строк генерирует одну строку в таблице результатов запроса. Столбцы, указанные в предложенииGROUPBY, называются столбцами группировки, поскольку именно они определяют, по какому признаку строки делятся на группы
Определить сколько в среднем получают сотрудники в зависимости от занимаемой ими должности.
select position, avg(salary)
fromstaff
group byposition;
15 Условия отбора групп (предложение having)
Точно так же, как предложение WHEREиспользуется для отбора отдельных строк, участвующих в запросе, предложениеHAVINGможно применить для отбора групп строк. Его формат соответствует формату предложенияWHERE. ПредложениеHAVINGсостоит из ключевого словаHAVING, за которым следует условие отбора. Таким образом, данное предложение определяет условие отбора для групп строк. Следующий пример иллюстрирует роль предложенияHAVING:
Подсчитать количество сотрудников работающих в каждом из офисов, исключив офисы, в которых работает менее 2 человек.
select bno, count(sno)
fromstaff
group by bno;
having count(sno)>2;
16 Сортировка результатов запроса (предложение order by).
Предложение order by сортирует результаты запроса на основании данных, содержащихся в одном или нескольких столбцах. Если это предложение не указано, результаты запроса не будут отсортированы в подчиненный запрос не может входить предложение ORDER BY. Результаты подчиненного запроса используются только внутри главного запроса и для пользователя остаются невидимыми, поэтому нет смысла их сортировать.
ASC- по возрастанию (по умолчанию)
DESC-по убыванию
17 Подзапросы: типы, примеры, правила и ограничения, ключевые слова any, all, exist, not exist
Подчиненнымназывается запрос, содержащийся в предложении WHERE или HAVING другой инструкции SQL.
Вывести список сотрудников, работающих в Минских отделениях предприятия
selectfname, lname, position
from staff
where bno in (select bno
from branch
wherecity= ‘Минск’);
правила
• таблица результатов подчиненного запроса должна состоять только из одного столбца.
• в подчиненный запрос не может входить предложение ORDER BY. Результаты подчиненного запроса используются только внутри главного запроса и для пользователя остаются невидимыми
• имена столбцов в подчиненном запросе могут являться ссылками (носят название внешних ссылок) на столбцы таблиц главного запроса.
Подчиненный запрос всегда заключается в круглые скобки и сохраняет знакомую структуру инструкции SELECT, содержащей предложение FROM и необязательные предложения.
EXIST/not exist
В результате проверки на существование (предикат EXISTS) можно выяснить, содержится ли в таблице результатов подчиненного запроса хотя бы одна строка. Аналогичной простой проверки не существует. Проверка на существование допустима только в подчиненных запросах.
Если подчиненный запрос не возвращает ни одной строки, проверка EXISTS возвращает значение FALSE. Эта проверка не может возвращать NULL. Можно изменить логику проверки EXISTS и использовать форму NOT EXISTS.
Any
В проверке ANY, для того чтобы сравнить проверяемое значение со столбцом данных, отобранных подчиненным запросом, используется один из шести операторов сравнения (=, !=, <, <=, >, >=). Проверяемое значение поочередно сравнивается с каждым элементом, содержащимся в столбце. Если любое из этих сравнений дает результат TRUE, то проверка ANY возвращает значение TRUE.
Определить имя и номер телефона потенциальных арендаторов, чьи требования по арендной стоимости соответствуют предварительной арендной стоимости хотя бы одной из предлагаемых в аренду двухкомнатных квартир.
selectfname, lname, tel_no
fromrenter
where max_rent >= any (select rent
from property_for_rent
where type = ‘f’ and rooms=2);
ALL
В проверке ALL, как и в проверке ANY, используется один из шести операторов сравнения проверяемого значения со столбцом данных, отобранных подчиненным запросом. Проверяемое значение поочередно сравнивается с каждым элементом, содержащимся в столбце. Если все сравнениядают результат TRUE, то проверка ALL возвращает значение TRUE. Вот пример запроса с предикатом ALL:
Определить имя и номер телефона потенциальных арендаторов, чьи требования по арендной стоимости соответствуют предварительной арендной стоимости любого из предлагаемых в аренду объектов недвижимости типа двухкомнатная квартира.
selectfname, lname, tel_no
fromrenter
where max_rent >= all (select rent
from property_for_rent
where type = ‘f’ and rooms=2);
