
- •Язык запросов sql
- •Введение в sql(0-0)
- •Аннотация к лекции
- •Краткая история развития sql
- •Возможности языка
- •Основы sql
- •Типы данных sql
- •Литералы
- •Операторы и выражения
- •Именование объектов
- •Комментарии
- •Итоги лекции
- •Простейшие запросы (0-0)
- •Аннотация к лекции
- •О предложении select
- •Основные фразы – select и from
- •Фраза select
- •Синтаксис фразы select
- •Указание выводимых столбцов
- •Исключение повторяющихся строк
- •Использование вычисляемых выражений
- •Переопределение имен результирующих столбцов
- •Включение литералов в результат запроса
- •Вывод результатов в файл
- •Фраза from
- •Синтаксис фразы from
- •Синонимы таблиц
- •Запрос в качестве имени таблицы
- •Итоги лекции
- •Отбор строк по условию (0-0)
- •Аннотация к лекции
- •Простейшие условия
- •Операторы сравнения
- •Логические операторы
- •Использование выражений над столбцами
- •Специальные операторы
- •Проверка на принадлежность множеству
- •Проверка на принадлежность диапазону значений
- •Проверка на соответствие шаблону
- •Проверка на неопределенное значение
- •Итоги лекции
- •Многотабличные запросы (0-0)
- •Аннотация к лекции
- •Декартово произведение таблиц
- •Условие соединения
- •Соединение таблиц по равенству
- •Соединение таблиц по неравенству
- •Самосоединение таблицы
- •Внешнее соединение таблиц
- •Соединение с использованием фразы from
- •Итоги лекции
- •Использование функций (0)
- •Аннотация к лекции
- •Агрегатные функции
- •Однострочныефункции
- •Строковые функции
- •Числовые функции
- •Временные функции
- •Функции преобразования
- •Итогилекции(урока)
- •Группировка и сортировка (0)
- •Аннотация к лекции
- •Запросы с группировкой строк
- •Понятие группировки строк
- •Группировка по одному столбцу
- •Группировка по нескольким столбцам
- •Использование выражений
- •Условиеотборагрупп
- •Сортировка строк
- •Сортировка по столбцу или выражению
- •Сортировка по нескольким столбцам или выражениям
- •Итоги лекции
- •Множественные операции над таблицами (0-0)
- •Аннотация к лекции
- •Множественные операции в стандарте sql
- •Объединение таблиц
- •Пересечение таблиц
- •Разность таблиц
- •Дополнительные аспекты использования множественных операций
- •Множественные операции и группировка
- •Множественные операции и сортировка
- •Итоги лекции
- •Определение таблиц и представлений (0-0)
- •Аннотация к лекции
- •Создание таблицы
- •Изменениетаблицы
- •Возможности изменения таблиц
- •Добавление столбца
- •Изменение определения столбца
- •Удаление столбца
- •Переименование таблицы
- •Удаление таблицы
- •Определение индексов
- •Представления
- •Итоги лекции
- •Манипулирование данными (0-0)
- •Аннотация к лекции
- •Добавление новых строк
- •Варианты добавления строк
- •Вставка отдельных строк
- •Использование запроса при вставке строк
- •Вставка значений по умолчанию
- •Обновление существующих данных
- •Удаление существующих строк
- •Импорт и экспорт данных
- •Итоги лекции
- •Определение ограничений целостности, ключей, задание прав доступа к данным (0-18)
- •Аннотация к лекции
- •Виды ограничений целостности
- •Ограничение на отсутствие значения
- •Ограничениеуникальности
- •Ограничение первичного ключа
- •Ограничение ссылочной целостности
- •Изменение ограничений целостности
- •Итоги лекции
- •Программирование бд (19)
Дополнительные аспекты использования множественных операций
Есть ряд вопросов, которые касаются всех множественных операций в целом. Это, применение к ним группировки, использование вместе с ними сортировки, порядок выполнения множественных операций. Эти вопросы и рассматриваются далее.
Множественные операции и группировка
К запросам, выступающим в качестве операндов множественных операторов, может применяться группировка. При этом никакие ограничения не накладываются.
Множественные операции и сортировка
Результаты выполнения подзапросов, выступающих в качестве операндов множественных операций, упорядочивать запрещено. Да и нет смысла это делать, так как они представляют лишь промежуточные результаты, которые пользователь не увидит. Однако результат выполнения множественной операции можно отсортировать, расположив в конце запроса фразу ORDER BY. Так как не понятно, какие имена получают столбцы результирующей таблицы, следует ссылаться на них по порядковым номерам (как показано в примере).
Запрос. Указать количество принятых на работу преподавателей за 1995-2000 и 2000-2005 годы по различным факультетам.
SELECTf.Name, 'в 1995-2000 г. ',COUNT(*), 'принято на работу'
FROM FACULTY f, DEPARTMENT d, TEACHER t
WHERE f.FacPK = d.FacFK AND d.DepPK = t.DepFK AND
Hiredate BETWEEN DATE '1995-01-01' AND DATE '2000-12-31'
GROUP BY f.Name
UNION ALL
SELECTf.Name, 'в 2000-2005 г. ',COUNT(*), 'принято на работу'
FROM FACULTY f, DEPARTMENT d, TEACHER t
WHERE f.FacPK = d.FacFK AND d.DepPK = t.DepFK AND
Hiredate BETWEEN DATE '2000-01-01' AND DATE '2005-12-31'
GROUP BY f.Name
ORDER BY 1;
Обратите внимание, что стоящая в конце фраза ORDER BY относится не ко второму подзапросу, а ко всему запросу. Точно так же применяется фраза ORDER BY и с другими множественными операторами.
Запрос.Вывести фамилии преподавателей, ведущих занятия и на 1-й, и на 2-й неделях. Результат упорядочить по фамилиям.
SELECTt.Name
FROMTEACHERt,LECTUREl
WHEREt.TchPK=l.TchFKANDl.Week= 1
INTERSECT
SELECT t.Name
FROM TEACHER t, LECTURE l
WHERE t.TchPK = l.TchFK AND l.Week = 2
ORDER BY 1;
Итоги лекции
Усвоив материал этой лекции, студенты научились:
формулировать запросы с объединением таблиц;
формулировать запросы с пересечением таблиц;
формулировать запросы, выражающие разность таблиц;
сортировать результаты множественных операций;
объединять результаты множественных операций.
Определение таблиц и представлений (0-0)
Аннотация к лекции
Для создания и изменения объектов базы данных используется язык определения данных — ЯОД (DataDefinitionLanguage-DDL). Ядро ЯОД образуют следующие три команды:
CREATE —создает объект базы данных;
ALTER - изменяет определение существующего объекта;
DROP — удаляет ранее созданный объект.
В реляционной базе данных таблица является основной структурной составляющей. В этом уроке мы рассмотрим создание, изменение и удаление таблиц. Все это относится к самим таблицам, а не к данным, которые в них содержатся.
В SQLтакже имеется другой вид таблиц – представления. Это виртуальные таблицы, которые актуализируются в результате выполнения указанного запроса на выборку данных. Представления будут рассмотрены в данной лекции.