Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

db / Лекции / 6 семестр / Языки запросов_раздел_1_5-1_6

.pdf
Скачиваний:
45
Добавлен:
23.03.2015
Размер:
381.68 Кб
Скачать

SELECT Building

FROM ROOM

GROUP BY Building

HAVING SUM(Seats) > 100;

1.6.4 Сортировка строк

1.6.4.1 Сортировка по столбцу или выражению Как мы уже отмечали, строки в таблицах базы данных неупорядочены.

Также неупорядочены и строки результирующей таблицы запроса, однако для их упорядочения в предложении SELECT можно воспользоваться фразой

ODER BY. Она сортирует по значению указанных в ней столбцов (и выражений над столбцами) строки результирующей таблицы запроса. Синтаксис этой фра-

зы следующий:

ORDER BY спецификация_сортировки[, спецификация_сортировки]...

где спецификация_сортировки имеет такой синтаксис:

выражение_сортировки [ASC | DESC]

Сортировать можно по столбцам (выражениям) тех типов, для которых определены операции сравнения. Это относится, в частности, к символьным строкам, числам и временным значениям. Можно указывать направление сор-

тировки.

Далее в этом уроке мы рассмотрим общие способы упорядочения резуль-

тирующих строк. Правила и возможности сортировки при использовании тео-

ретико-множественных операторов изучаются в следующих разделах курса.

Сортировать строки результирующей таблицы запроса можно по отдель-

ным столбцам, совокупности столбцов, а также по одному или нескольким вы-

ражениям над столбцами. Ниже рассматриваются все эти варианты.

Запрос. Вывести алфавитный список фамилий профессоров.

SELECT Name

FROM TEACHER

WHERE LOWER(Post) = 'профессор'

ORDER BY Name;

Запрос. Вывести номера групп и их рейтинг по убыванию рейтинга.

SELECT Num, Rating

FROM SGROUP

ORDER BY Rating DESC;

Запрос. Вывести фамилии ассистентов и их зарплату по ее возрастанию.

SELECT Name, Salary + Rise

FROM TEACHER

WHERE LOWER(Post) = 'ассистент'

ORDER BY Salary + Rise;

SQL позволяет упорядочивать строки результирующей таблицы не только по тем столбцам, которые в ней присутствуют, но и по столбцам исходной таб-

лицы и выражениям над ними.

Запрос. Вывести фамилии ассистентов по возрастанию их зарплаты.

SELECT Name

FROM TEACHER

WHERE LOWER(Post) = 'ассистент'

ORDER BY Salary + Rise;

Если сортировка производится по столбцу или выражению, указанному в списке фразы SELECT, для указания сортируемого столбца (выражения) во фразе ORDER BY можно воспользоваться синонимом. Например, сортировку по синониму в предыдущем запросе можно указать как ORDER BY НОМЕР.

1.6.4.2 Сортировка по нескольким столбцам или выражениям Для упорядочения строк результирующей таблицы по нескольким столб-

цам следует во фразе ORDER BY привести список этих столбцов. Для каждого из них можно также указать направление сортировки и расположение строк со значениями NULL.

При упорядочении по нескольким столбцам сначала производится сорти-

ровка строк в указанном порядке по первому столбцу из списка, затем набор строк с одинаковым значением отсортированного столбца сортируется по вто-

рому столбцу и т. д.

Запрос. Вывести номера телефонов и фамилии преподавателей. Упорядо-

чить по убыванию номеров телефонов и по возрастанию фамилий.

SELECT Tel, Name

FROM TEACHER

ORDER BY Tel DESC, Name;

1.6.5 Итоги лекции

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

формулировать запросы с группировкой по отдельным столбцам или выражениям;

использовать группировку по нескольким столбцам или выражениям;

задавать условия для отбора групп;

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

сортировать по нескольким столбцам и выражениям (в т.ч. отсутствую-

щим в результирующей таблице);

указывать направление сортировки.

1.7Вложенные запросы (11)

1.8Множественные операции над таблицами (12)

1.9Манипулирование данными (13-14)

1.9.1Добавление новых строк

1.9.2Обновление существующих данных

1.9.3Удаление существующих строк

1.10 Определение таблиц (6-7)

1.10.1Создание таблицы

1.10.2Удаление таблицы

1.10.3Изменение таблицы

1.10.4Представления

1.11 Определение ограничений целостности, ключей, задание прав до-

ступа к данным (17)

2 Программирование БД (19)