Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
db / Лекции / 6 семестр / Языки запросов.docx
Скачиваний:
134
Добавлен:
23.03.2015
Размер:
280.32 Кб
Скачать
      1. Дополнительные аспекты использования множественных операций

Есть ряд вопросов, которые касаются всех множественных операций в целом. Это, применение к ним группировки, использование вместе с ними сортировки, порядок выполнения множественных операций. Эти вопросы и рассматриваются далее.

        1. Множественные операции и группировка

К запросам, выступающим в качестве операндов множественных операторов, может применяться группировка. При этом никакие ограничения не накладываются.

        1. Множественные операции и сортировка

Результаты выполнения подзапросов, выступающих в качестве операндов множественных операций, упорядочивать запрещено. Да и нет смысла это делать, так как они представляют лишь промежуточные результаты, которые пользователь не увидит. Однако результат выполнения множественной операции можно отсортировать, расположив в конце запроса фразу 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;

      1. Итоги лекции

Усвоив материал этой лекции, студенты научились:

  • формулировать запросы с объединением таблиц;

  • формулировать запросы с пересечением таблиц;

  • формулировать запросы, выражающие разность таблиц;

  • сортировать результаты множественных операций;

  • объединять результаты множественных операций.

    1. Определение таблиц и представлений (0-0)

      1. Аннотация к лекции

Для создания и изменения объектов базы данных используется язык определения данных — ЯОД (DataDefinitionLanguage-DDL). Ядро ЯОД образуют следующие три команды:

  • CREATE —создает объект базы данных;

  • ALTER - изменяет определение существующего объекта;

  • DROP — удаляет ранее созданный объект.

В реляционной базе данных таблица является основной структурной составляющей. В этом уроке мы рассмотрим создание, изменение и удаление таблиц. Все это относится к самим таблицам, а не к данным, которые в них содержатся.

В SQLтакже имеется другой вид таблиц – представления. Это виртуальные таблицы, которые актуализируются в результате выполнения указанного запроса на выборку данных. Представления будут рассмотрены в данной лекции.