Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методическое пособие Л.Р(SQL).doc
Скачиваний:
37
Добавлен:
21.11.2019
Размер:
159 Кб
Скачать

5.5 Упорядочение выходных полей

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

ORDER BY. Сортировку можно задавать по значению одного или нескольких выбранных полей. Последовательность сортировки для каждого из столбцов задается ASC(по возрастанию) или DESC (по убыванию). Столбец, по значениям которого упорядочиваются возвращаемые строки, можно указывать именем столбца или его относительным порядковым номером.

Пример. Рассортировать все записи в таблице Spisok по алфавиту студентов:

SELECT*

FROM Spisok

ORDER BY fio ASC;

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

Пример. Подсчитать количество отличников (по размеру стипендии-15000руб.) на каждом курсе и вывести результат в порядке возрастания курса:

SELECT kurs, COUNT(DISTINCT 15000)

FROM Spisok

GROUP BY kurs

ORDER BY 2 ASC;

  1. Соединение таблиц

Запрос может быть сформулирован (получен) на основе данных из нескольких таблиц. Между элементами таблиц устанавливаются связи; имена соединяемых таблиц перечисляются через запятую в запросе в предложении FROM. Предикат запроса может ссылаться на любой столбец любой соединяемой таблицы. Полное имя столбца соединяемых таблиц составляют:

< имя_ таблицы>. <имя_ столбца>

примеры записи столбцов.

Spisok fio

Sport. Gymnast

Kultura. Pevec

Пример соединения таблиц. Установить связь между таблицами Sport и

Kultura для выбора студентов, которые играют в футбол и занимаются сольным пением:

SELECT Sport. Fio

Sport. gymnast

Kultura. Pevec

Пример соединения таблиц. Установить связь между таблицами Sport и

Kultura для выбора студентов, которые играют в футбол и занимаются сольным пением:

SELECT Sport. Fio, Kultura. Pevec

FROM Sport, Kultura

WHERE Sport. Fio= Kultura. Fio;

Команда SELECT в данном примере берет первую запись из таблицы Sport, в которой перечислены студенты, увлекающиеся футболом, и ищет в таблице Kultura, в которой перечислены студенты, занимающиеся сольным пением, фамилию этого же студента.

В операциях соединения таблиц кроме равенства (эквисоединения) можно использовать любые операции сравнения в предложении WHERE.

  1. Объединение таблицы по принципу «сама с собой»

Смысл этой операции в том, что любую одну строку (запись) таблицы можно комбинировать (соединить) с любой другой строкой этой же таблицы и с копией этой строки. В одной таблице устанавливаются связи между различными записями, например поиск и выбор пар строк с общим значением поля.

Для указания имен столбцов SELECT в предложении FROM применяются временные имена полей-алиясы (псевдонимы), которые позволяют рассматривать одну таблицу в команде SELECT как две независимые таблицы: первая (first) и вторая (second). Алиясы определяются в предложении FROM. Записываются имя таблицы, пробел и имя алияса для данной таблицы, например FROM Spisok first, Spisok second

Соединение таблицы по принципу «сама с собой» покажем на примере соединения всех пар одинаковых фамилий в разных группах:

SELECT first. Fio, second. Fio, first grup

FROM Spisok first, Spisok second;