Виды декомпозиций. Декомпозиция без потерь

         

Реализация запросов средствами SQL


Назначение оператора SELECT состоит в выборке и отображении данных одной или более таблиц БД. Это мощный оператор, способный выполнять действия, эквивалентные операторам реляционной алгебры. Общий формат оператора SELECT имеет следующий вид:

SELECT [DISTINCT] *|<столбец> [<псевдоним>]

[,<групповая функция>] [,…n]

FROM <таблица>[, …n]| (<подзапрос>)

[WHERE <условие>]

[GROUP BY<выражение группировки>]

[HAVING <условие отбора группы>]

[ORDER BY < столбец >[,…n]]

Ключевое слово DISTINCT используется для возвращения запросом только уникальных строк. При необходимости вывести все записи из отношения используется команда SELECT *. Оператор SELECT устанавливает какие столбцы должны присутствовать в выходных данных. Оператор FROM определяет имена используемой таблицы или нескольких таблиц. WHERE выполняет фильтрации строк объекта в соответствии с заданными условиями. GROUP BY образуются группы строк, имеющих одно и то же значение в указанном столбце. HAVING фильтрует группы строк объекта в соответствии с указанным условием. ORDER BY определяет упорядоченность результатов выполнения оператора. Порядок предложений и фраз в операторе SELECТ не может быть изменен. Только предложения SELECT и FROM являются обязательными, все остальные предложения и фразы могут быть опущены. Операция SELECT является закрытой, т.е. результат запроса к таблице представляет собой др. таблицу. Приведем пример запроса: вывести названия всех предметов, по которым средняя оценка меньше 4.

SELECT

Name_Subject, AVG(Mark)

FROM Progress Pr, Subject S

WHERE Pr.Code_Subject=S.Code_Subject

GROUP BY Name_Subject

HAVING AVG(Mark)<4

Обобщающая функция AVG возвращает усредненное значение в указанном столбце. Стандарт ISO содержит определение 5 обобщающих функций: 1.COUNT возвращает количество значений в указанном столбце. 2.SUM возвращает сумму значений в указанном столбце. 3.AVG. 4.MIN возвращает минимальное значение в указанном столбце. 5.MAX возвращает максимальное значение в указанном столбце.

Запрос, в котором присутствует фраза GROUP BY называется группирующим запросом; столбцы, перечисленные в данной фразе называются группируемыми столбцами. Все имена столбцов, приведенные в предложении SELECT, должны присутствовать и во фразе GROUP BY. За исключением случаев, когда имя столбца используется в обобщающей функции. Предложение ORDER BY всегда ставится в конец команды SELECT. По умолчанию сортировка идет по возрастанию. Для изменения порядка сортировки используется опция DESC. При сортировке по нескольким столбцам столбцы перечисляются через запятую. ORDER BY всегда стоит в конце запроса. Пример: Вывести список имен оценок студентов, расположив их по возрастанию имен и оценок.

SELECT DISTINCT Sname ФИО

FROM Student, Progress

WHERE Student.N_record_book= Progress.N_record_book;

ORDER BY Sname



Содержание раздела