Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
32
Добавлен:
16.04.2013
Размер:
1.04 Mб
Скачать
      1. Сортировка результата (фраза order by).

Самая необходимая наука – это наука забывать ненужное”

АНТИСФЕН из Афин ок.444-ок.365гг. до н.э.

В обшем случае неважен порядок следования строк в таблице результата. Однако их можно отсортировать в случае необходимости, если в операторе SELECTиспользоват фразуORDER BY. Описание фразы включает в себя список подмножества идентификаторов столбцов таблицы результата запроса, по которым требуется упорядочить строки. Идентификатор столбца может принимать значения его имени (номера отвергнуты стандартомISO). Упорядочить строки можно либо в порядке возрастания (ASC), либо убывания(DESC) одного или комбинации столбцов независимо от того есть значения или нет. Фраза ORDER BY всегда должна быть последняя в оператореSELECT.

Пример сортировки по столбцам.

SELECT имя_столбца_1, имя_столбца_2, ..., имя_столбца_М >

FROM имя_исходной_таблицы

ORDER BY имя_столбца_1, имя_столбца_2 DESC;

В языке SQL в столбцах используются базовые типы данных хранения информации, на которых всегда задается отношение порядка. Прямое или инверсное направление сортировки задается ключами ASC и DESC. Если мы имеем более одного столбца, то используется сложная сортировка: сначала мы производим упорядочивание по первому столбцу, а в случае их совпадения по второму и т.д. Очевидно, что порядок сортировки таблицы результата операции выбора существенным образом зависит от порядка следования имен столбцов в фразе оператораORDER BY.

      1. Стандартные обобщающие функции языка sql.

Братская близость единомыслящих крепче всяких стен”

АНТИСФЕН из Афин ок.444-ок.365гг. до н.э.

Все функции оперируют в единственном столбце таблицы и возвращают единственное значение. Функции COUNT, MIN и MAX применимы как числовым, так и символьным полям, а SUM и AVG только к числовым. Все функции кроме COUNT сначала исключают все пустые значения NULL, а затем оперируют с оставшимися. Вариант COUNT(*) – особый, т.к. учитывает все строки в таблице результата. Если необходимо исключить дублирующие строки, то устанавливается ключевое слово DISTINCTиALL в обратном случае (что и подразумевается по умолчанию).

Обобщающие функции могут использоваться в списке предложения SELECT и в составе предложенияHAVING. Во всех других случаях использование этих функций недопутимо. Часто ошибка состоит в том, что в запросе с обобщающими функциями не используется фразаGROUP BY, обеспечивающая объединение данных в группы. Без этого ни один из элементов списка предложенияSELECT не может включать в себя каких либо ссылок на столбцы. Причина - в неиспользовании группировки при обращении к значению поля в оператореSELECT.

Обобщающие функции подобных заключительному выводу в итоговых таблицах – они содержат своеобразные значения «итого». Все детальные данные сжимаются в одно значение (часто называемое агрегатом). Если в сложных отчетах надо формировать и промежуточные данные, то надо использовать фразу GROUP BY. Её использование будет рассмотрено далее, а пока мы ограничимся простейшей формой группирующего запроса.

Использование функции COUNT(*).

SELECT COUNT(*) AS count

FROM имя_исходной_таблицы

WHERE имя_столбца_1 >500;

Мы ограничиваем посчет строками, содержащими в первом поле значения сторого больше 500. В результате мы имеем новую таблицу с столбцом по имени count и со строкой содержащей значение общего количества строк в исходной таблице.

Использование функции COUNT(DISTINCT).

SELECT COUNT(DISTINCT имя столбца_1) AS count

FROM имя_исходной_таблицы

WHERE имя_столбца_2 BETWEEN ‘1-May-98’ AND ‘31-May-98’;

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

Использование функции COUNT и SUM.

SELECT COUNT(имя столбца_1) AS count, sum((имя столбца_2) AS sum

FROM имя_исходной_таблицы

WHERE имя_столбца_3 = ‘Программист’;

Ограничиваем рассмотрение исходной таблицы только строками, в которой в третьем поле (столбце) встречается значение “Программист”. Затем посчитываем общее их количество по первому полю и суммируем все значения во втором. Результат есть таблица с столбцами count и sum из одной строки.

Использование функции MIN, MAX и AVG.

SELECT MIN(имя) AS min, MAX(имя) AS max, AVR(имя) AS avr

FROM имя_исходной_таблицы

Результат запроса есть таблица с тремя столбцами: min, max, avr. Вычисленные обобщающие значения столбца имя в исходной таблице записываются в соответствующих полях единственной строки таблицы результата.

Соседние файлы в папке УП_ОПТ2