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

Порядок выполнения логических операций

Сам порядок выполнения логических операций на самом деле очень прост:

1. Выполняются действия в скобках.

2. Арифметические операции умножения и деления.

3. Арифметические операции сложения и вычитания.

4. Отрицание (NOT).

5. Конъюнкция (AND).

6. Дизъюнкция (OR).

Операции с одинаковым приоритетом выполняются слева направо.

Преобразование данных при выборке

В ряде случаев при выборке данных из базы с ними необходимо произвести некоторые преобразования. Функция CAST обеспечивает преобразование данных к явно указанному типу:

CAST (<val> AS <datatype>), где <val> - преобразуемое выражение, <datatype> - явно указываемый тип данных.

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

В некоторых случаях преобразование типов является обязательным, например при использовании объединения запросов – UNION (смотри соответствующий раздел).

Обобщение Данных с помощью Агрегатных Функций

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

Функция

Выполняемые действия

AVG

Возвращает среднее значение данных числовых столбцов

COUNT

Подсчитывает количество строк, удовлетворяющих заданному условию

MIN

Находит минимальное значение столбца в группе строк

MAX

Находит максимальное значение столбца в группе строк

SUM

Суммирует числовые значения

Агрегатные функции используются подобно именам полей в предложении SELECT запроса, но с одним исключением, они берут имена поля как аргументы. Только числовые поля могут использоваться с SUM и AVG. COUNT, MAX, и MIN, могут использоваться и числовые или символьные поля. Когда они используются с символьными полями, MAX и MIN будут транслировать их в эквивалент ASCII, который должен сообщать, что MIN будет означать первое, а MAX последнее значение в алфавитном порядке. Выполним, например, следующий оператор, который отыскивает человека с "максимальной" фамилией, т. е. с фамилией, являющейся последней в упорядоченном по алфавиту списке фамилий:xxiv

SELECT MAX( PR_NAME) AS "Фамилия" FROM PERSON

Мы получим фамилию "Янышева"

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

Применим MIN к числовому полю, найдем минимальный тариф на билеты:xxv

SELECT MIN(TR_COST) FROM TARIFF

Получим минимальную стоимость билета.

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