- •Системы управления базами данных. Ивт 3 курс
- •1. Основные понятия и определения курса. Традиционные файловые системы.
- •2. Модели данных. Сравнительный анализ структуры и свойств.
- •3. Типовая структура и основные возможности субд
- •4. Преимущества и недостатки субд.
- •5. Общие сведения об инструкциях sql. Правила именования таблиц и столбцов
- •6. Общие сведения о dml.
- •7. Общий синтаксис инструкции select
- •8. Предложения select и from. Предикаты и вычисляемые столбцы (пример).
- •9. Предложение where и классификация условий отбора (привести примеры).
- •10. Составные условия отбора. Влияние значений null на результат отбора.
- •11. Многотабличные запросы и их особенности (привести пример).
- •12. Предложение group by. Статистические (агрегативные) функции в sql (примеры).
- •13. Сортировка результатов запроса (предложение order by).
- •14. Добавление данных (инструкции insert, merge).
- •15. Модификация и удаление данных (инструкции update, merge и delete).
- •16. Общие сведения о ddl.
- •17. Типы данных sql.
- •18. Создание таблиц (инструкция create table).
- •19. Изменение определения и удаление таблицы (инструкции alter ,drop table).
- •20. Создание псевдонимов и индексов таблиц (инструкции create/drop alias, create/drop index)
- •21. Аутентификация. Создание и изменение пользователей. Аутентификация пользователей
- •22. Привилегии. Системные привилегии.
- •23. Привилегии доступа к объектам схемы. Правила предоставления привилегий
- •24. Работа с привилегиями при помощи ролей. Системные роли, определение, изменение, удаление ролей
- •25. Аудит. Типы и применение аудита.
- •Типы аудита. В диспетчере авторизации можно использовать два вида аудита: аудит времени выполнения и аудит изменения хранилища данных авторизации. Аудит времени выполнения
- •Аудит изменений хранилища данных авторизации
- •26. Условия целостности данных
- •27. Понятие транзакций. Инструкции обработки транзакций (commit и rollback)
- •28. Модель транзакции в стандарте ansi/iso
- •29. Журнал транзакций. Проблемы обработки параллельных транзакций.
- •Проблема пропавшего обновления.
- •Проблема несогласованных данных
- •Проблема строк – призраков
- •30. Блокировки транзакций: уровни и виды, тупиковые ситуации.
12. Предложение 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)
from staff
where position = ‘менеджер’;
GROUP BY
Запрос, включающий в себя предложение GROUP BY, называется запросом с группировкой, поскольку он объединяет строки исходных таблиц в группы и для каждой группы строк генерирует одну строку в таблице результатов запроса. Столбцы, указанные в предложении GROUP BY, называются столбцами группировки, поскольку именно они определяют, по какому признаку строки делятся на группы
Определить сколько в среднем получают сотрудники в зависимости от занимаемой ими должности.
select position, avg(salary)
from staff
group by position;
13. Сортировка результатов запроса (предложение order by).
Предложение order by сортирует результаты запроса на основании данных, содержащихся в одном или нескольких столбцах. Если это предложение не указано, результаты запроса не будут отсортированы в подчиненный запрос не может входить предложение ORDER BY. Результаты подчиненного запроса используются только внутри главного запроса и для пользователя остаются невидимыми, поэтому нет смысла их сортировать.
ASC- по возрастанию (по умолчанию)
DESC-по убыванию
14. Добавление данных (инструкции insert, merge).
INSERT
Существует 2 формы:
Вставка единой строки в таблицу (Insert into имя таблицы (имя столбца) values (константы)
Копирование одной строки в другую (Insert into имя таблицы (имя столбца) select …)
insert into staff (sno, fname, lname, address, tel_no, position, sex, salary, DOB, bno)
values (‘s122’, ‘Иван’, ‘Иванов’, ‘…’, ‘…’, null, ‘m’, null, ‘3-Mar-82’, 2);
insert into staff
values (‘s122’, ‘Иван’, ‘Иванов’, ‘…’, ‘…’, null, ‘m’, null, ‘3-Mar-82’, 2);
MERGE (INSERT+ UPDATE)
MERGE имя таблицы
Using { имя таблицы или имя представления }
ON (условия)
WHEN MATCHED THEN инструкция обновления (для UPDATE)
WHEN NOT MATCHED THEN инструкция вставки (для INSERT)
15. Модификация и удаление данных (инструкции update, merge и delete).
UPDATE
Инструкция UPDATE обновляет значения одного или нескольких столбцов в выбранных строках одной таблицы.
Увеличить заработную плату сотрудника до 300
update staff set salary = 300 where lname = ‘…’;
Перевести всех служащих из отделения № 2 в отделение № 1
update staff
set bno = 1 where bno = 2;.
update staff set salary = 1.05 * salary //// без запроса
Всем служащим отделения Минского отделения увеличить зарплату на 10%
update staff ///// с подчиненным запросом
set salary = 1.1 * salary
where bno in (select bno from branch
where city = ‘Минск’);
DELETE
Инструкция DELETE, синтаксическая диаграмма которой изображена на рисунке 12, удаляет выбранные строки из одной таблицы
delete from staff
where lname = ‘Иванов’;.
delete from staff///////удаление всех строк
Хотя в результате выполнения приведенной инструкции таблица STAFF становится пустой, из базы данных она не удаляется. Определение таблицы и ее столбцов остается в базе данных. Таблица по-прежнему существует, и в нее по-прежнему можно добавлять новые строки
MERGE (INSERT+ UPDATE)
MERGE имя таблицы
Using { имя таблицы или имя представления }
ON (условия)
WHEN MATCHED THEN инструкция обновления (для UPDATE)
WHEN NOT MATCHED THEN инструкция вставки (для INSERT)
