Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекция 2- Введение в язык запросов SQL.docx
Скачиваний:
5
Добавлен:
14.11.2019
Размер:
88.61 Кб
Скачать

Секция between

Секция between определяет верхнюю и нижнюю границы интервала. Она применяется в случаях, когда вам известны минимальное и максимальное значения искомой величины.

Если нижняя граница больше верхней, то не возвращается ни одна запись.

Выражения должны принадлежать к типам данных, неявно преобразуемым друг в друга, или их явное преобразование должно выполняться в команде select (преобразование типов данных рассмотрим позже).

Пример использования секции between продемонстрировано в следующем фрагменте:

SELECT Название, Цена FROM Книги

WHERE Цена BETWEEN 10 AND 20

Команда находит все записи, у которых столбец price больше или равен 10 и меньше или равен 20.

Ключевое слово NOT

Ключевое слово not может включаться в любое сравнение секции where. В этом случае проверяется условие, противоположное указанному.

Пример:

SELECT Название, Цена FROM Книги

WHERE Цена NOT BETWEEN 10 AND 20

Команда возвращает все записи, у которых значение Цена либо меньше 10, либо больше 20.

Проверка NULL

Для проверки, является ли значение колонки null - значением, используется выражение IS NULL:

SELECT * FROM Товары WHERE Страна-производитель IS NULL

внимание!

He путайте неопределенное значение null с пустой текстовой строкой.

Пустая текстовая строка (" ") не является null - значением.

Пример. Получим все товары, для которых указана Страна-призводитель:

SELECT * FROM Товары WHERE Страна-производитель IS NOT NULL

Секция ORDER BY

При выборке данные возвращаются в порядке их нахождения в SQL Server.

Ключевое слово order by позволяет определить порядок возвращения запи­сей.

Например, следующее выражение возвращает список автомобилей, отсортированный по номерам:

SELECT Цвет, Номер, Марка FROM Автомобили ORDER BY Номер

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

Можно определять порядок сортировки (по возрастанию или по убыва­нию), используя ключевые слова asc и desc.

По умолчанию данные сорти­руются по возрастанию (asc).

Ключевые слова asc и desc относятся лишь к одному столбцу.

Итоговый набор можно отсортировать по нескольким столбцам.

Например, следующее выражение возвращает список автомобилей, отсорти­рованный по номерам в обратном порядке, а потом отсортированный по мар­ке автомобиля:

SELECT Цвет, Номер, Марка FROM Автомобили

ORDER BY Номер DESC, Марка

Секция group by

Секция group by используется в сочетании с агрегатными функциями для получения обобщающих данных.

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

При использовании group by все столбцы итогового набора либо являются агрегатными функциями, либо включаются в секцию group by.

Пример.

SELECT ID_товара, Название_товара, SUM(Стоимость) AS ‘Сумма заказа’

FROM Товар

GROUP BY ID_товара, Название_товара

ORDER BY Название_товара

В этом примере в итоговом наборе возвращается id_товара, название товара и его суммарная стоимость.

Здесь используется агрегатная функция SUM , которая возвращает сумму всех значе­ний в столбце.

Агрегатные функции не могут работать со значениями типа null, за исклю­чением функции COUNT (*).

Список всех агрегатных функций приведен в таблице 3.

Таблица 3. Агрегатные функции

Функция

Описание

1

COUNT ( [ALL | DISTINCT] выражение )

Вычисляет количество значений в столб­це, отличных от NULL

2

COUNT (*)

Вычисляет количество выбранных запи­сей. Эта функция учитывает null- значения

3

SUM ( [ALL | DISTINCT] выражение)

Вычисляет общую сумму в числовом столбце

4

AVG ([ALL | DISTINCT] выражение)

Вычисляет среднее арифметическое разных значений в столбце

5

MAX ( выражение )

Определяет максимум среди выбранных значений

6

MIN ( выражение )

Определяет минимум среди выбранных значений

7

STDEV ( выражение )

Вычисляет статистическое стандартное отклонение для всех значений выраже­ния

8

STDEVP ( выражение )

Возвращает смешанную оценку стан­дартного отклонения (квадратный корень от значения, возвращаемого функцией varp) для всех значений столбца

9

VAR ( выражение )

Возвращает несмешанную оценку дис­персии величин для всех значений вы­ражения

10

VARPD ( выражение)

Возвращает смешанную оценку диспер­сии величин для всех значений выраже­ния

11

CHECKSUM (* | выражение [, ...n] )

Возвращает контрольную сумму для строки таблицы или списка выражений. Эта функция появилась только в SQL Server 2005

12

CHECKSUM_AGG ( [ALL | DISTINCT] выражение)

Возвращает контрольную сумму значе­ния выражения. Эта функция появилась только в SQL Server 2005

В общем случае секция group by имеет следующий синтаксис:

GROUP BY [ALL] список_группировки [WITH CUBE | ROLLUP]