Задание №3 по базам данных. SQL: выборки данных из БД

Краткое описание

Необходимо написать осмысленные запросы на выборку данных из таблиц БД, предварительно созданных и заполненных в результате задания №2. [Если задание №2 почему-либо не выполнялось, можно использовать стандартные таблицы «Отдел кадров» (схема SCOTT в стандартной БД Oracle) или чужие таблицы; но это дает меньше баллов.]

Детальное описание

Задание принимается в виде кода SQL-скрипта c операторами select для Oracle (возможно использование PostgreSQL или MySQL на личном компьютере в сети МФТИ, но в этих случаях задание сложно выполнить полностью). Инструкции select перед сдачей должны быть проверены (последовательно исполнены) в каком-либо SQL-клиенте (в классе имеется только Oracle SQL Plus и SQL Plus Worksheet). При сдаче каждого запроса должен быть четко сформулирован соответствующий вопрос на русском языке.

Примерный набор требуемых запросов (может быть изменен преподавателем, в том числе в соответствие с индивидуальной схемой БД):

1.  Выбор значений заданных атрибутов из более чем двух таблиц (соединение) с сортировкой * – 1 балл

2.  Использование условий WHERE, отличных от (=, <, >), – 1 балл

3.  Запрос с использованием внешнего соединения * – 1 балл

4.  Уместное использование однострочных функций (минимум, двух) – 1 балл

5.  Вычисление групповой функции (GROUP BY) * – 1 балл (с HAVING или с несколькими таблицами – 2 балла).

6.  Запрос с использованием подзапросов * – 1 балл (многострочный подзапрос – 2)

НЕ нашли? Не то? Что вы ищете?

7.  Уместное использование представления (view) – 1 балл

8.  Запрос с использованием какой-нибудь теоретико-множественной операции (объединение, пересечение, разность) над результатами выборок – 1 балл

9.  Древовидный запрос CONNECT BY (Oracle) – 1 балл (+ 1, если потребовалось добавлять столбец в таблицу).

10.  Другой сложный запрос, включающий хитрые условия – 2 балла.

Помеченные звездочками (*) запросы являются обязательными.

Все запросы (кроме 4, 7, 8) должны затрагивать не менее двух таблиц.

Два (но не более) запроса одинакового типа оцениваются (указанным числом баллов) в том случае, если они существенно различаются (используемыми таблицами или еще чем-либо – больше, чем просто различие критериев отбора строк или сортировки). Таких повторений типа запросов должно быть не более трех.

Итого за задачу: 6-15 баллов.

Варианты задания

Варианты отличаются предметной областью и вытекают из выбранного ранее варианта задания №1. Как и в реальных условиях, конкретные вопросы специалиста предметной области, на которые должны отвечать SQL-запросы, формулируются самостоятельно, но не являются заданными извне. Они лишь могут корректироваться извне (в данном случае, преподавателем) при предварительном показе работы.

Сроки выполнения задания

Примерно половина запросов делается на 8-9 паре (можно не дожидаться приема преподавателем предыдущего задания, поскольку требования к наполнению таблиц диктуется запросами на выборку). 10 пара посвящается разбору проблем построенных запросов, доработке и сдаче задания.

Дополнительная информация

Любые учебные пособия по SQL, например,
http://www. *****/docs/gruber/ (Классическая книга М. Грубера «Введение в SQL»), http://www. *****/docs/sql/u_sql/index. shtml («Продвинутая» книга -//- «Понимание SQL»)
http://www. *****/database/osbd/glava_62.shtml (Лекция 15 учебника )

http://www. *****/books/books. aspx? g=6&s=0 (список других книг)