Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Практические SQL запросы на выборку.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
9.64 Mб
Скачать

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

Таблицы - это неупорядоченные наборы данных, и данные которые выходят из их, не обязательно появляются в какой-то определенной последовательности. SQL использует команду ORDER BY чтобы позволять вам упорядочивать ваш вывод. Эта команда упорядочивает вывод запроса согласно значениям в том или ином количестве выбранных столбцов. Многочисленные столбцы упорядочиваются один внутри другого, также как с GROUP BY, и вы можете определять возрастание (ASC) или убывание (DESC) для каждого столбца. По умолчанию установлено - возрастание. Давайте рассмотрим нашу таблицу продаж приводимую в порядок с помощью номера заказчика (обратите внимание на значения в cnum столбце):

SELECT *

FROM Orders

ORDER BY cnum DESC;

Рисунок 14 Упорядочение вывода с помощью убывания поля

Упорядочение с помощью многочисленных столбцов

Мы можем также упорядочивать таблицу с помощью другого столбца, например с помощью поля amt, внутри упорядочения поля cnum. (вывод показан в Рисунке 15):

SELECT * FROM Orders ORDER BY cnum DESC, amt DESC;

Рисунок 15 Упорядочение вывода с помощью многочисленных полей

Вы можете использовать ORDER BY таким же способом сразу с любым числом столбцов. Обратите внимание что, во всех случаях, столбцы которые упорядочиваются должны быть указаны в выборе SELECT. Следующая команда, например, будет запрещена:

SELECT cname, city FROM Customers ORDER BY cnum;

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

Упорядочение агрегатных групп

ORDER BY можно использовать с GROUP BY для упорядочения групп. ORDER BY всегда приходит последним. Перед сгруппированием вывода, порядок групп был произвольным, и мы, теперь, заставим группы размещаться в последовательности:

SELECT snum, odate, MAX (amt) FROM Orders GROUP BY snum, odate ORDER BY snum;

Рисунок 16 Упорядочение с помощью группы

Так как мы не указывали на возрастание или убывание порядка, возрастание используется по умолчанию.

Упорядочение с помощью оператора null

Если имеются пустые значения (NULL) в поле которое вы используете для упорядочивания вашего вывода, они могут или следовать или предшествовать каждому другому значению в поле.

Запрашивание многочисленных таблиц также как одной Объединение таблиц

Одна из наиболее важных особенностей запросов SQL - это их способность определять связи между многочисленными таблицами и выводить информацию из них в терминах этих связей, всю внутри одной команды. Этот вид операции называется - объединением, которое является одним из видов операций в реляционных базах данных. Используя объединения, мы непосредственно связываем информацию с любым номером таблицы, и таким образом способны создавать связи между сравнимыми фрагментами данных. При объединении, таблицы представленные списком в предложении FROM запроса, отделяются запятыми. Предикат запроса может ссылаться к любому столбцу любой связанной таблицы и, следовательно, может использоваться для связи между ними. Обычно, предикат сравнивает значения в столбцах различных таблиц чтобы определить, удовлетворяет ли WHERE установленному условию.