Описание столбцов результирующей таблицы

1. Специальным (и часто используемым) видом в_выражение является символ *, имеющий смысл все столбцы таблиц из списка FROM. 2. Простым (и также часто используемым) случаем в_выражение является полное имя столбца одной из таблиц списка FROM. 3. В общем случае в_выражение может представлять собой сложное скобочное выражение над содержимым столбцов таблицы, использующее арифметические, строковые, логические операции и функции. Наиболее часто используемые функции описаны ниже в таблицах 1, 2, 3.

Таблица 1. Арифметические функции

Синтаксис Возвращаемое значение
ABS(x) абсолютное значение x
SQRT(x) квадратный корень от x
MAX(x, y,...) значение наибольшего элемента из списка x, y,...
MIN(x,y,...) значение наименьшего элемента из списка x, y,...

Примечание. x, y - числа или выражения, имеющие числовой результат.

 

Таблица 2. Строковые функции

 

Синтаксис Возвращаемое значение
LEFT(s,n) первые n символов строки s
RIGHT(s.n) последние n символов строки s
SUBSTRING(s, m, n) строка, получаемая копированием n символов из строки s, начиная с m -ого символа строки s
LCASE(s) строка, полученная из s преобразованием всех букв в строчные
UCASE(s) строка, полученная из s преобразованием всех букв в прописные
CONCAT(s1, s2,...) строка, полученная конкатенацией (слиянием) строк s1, s2,...
LENGTH(s) длина строки s

Примечание. s, s1,s2 - строки или выражения, имеющие результат в виде строки. n, m - числа или выражения, имеющие числовой результат.
Таблица 3. Операторы и функции, возвращающие логическое значение (1 - истина, 0 - ложь)

 

Синтаксис Возвращаемое значение
x = yx   yx yx yx = yx = y 1 (истина) или 0 (ложь) в зависимости от результата операции сравнения (соответственно, равно, не равно, больше, меньше, не больше, не меньше)
NOT l 1, если l= 0 0, если l =1
l1 AND l2 результат логической операции И над l1 и l2
l1 OR l2 результат логической операции ИЛИ над l1 и l2
BETWEEN (x, y z) результат выполнения логического выражения (x = y AND x = z)
ISNULL (v) 1, если v имеет значение пусто (NULL) 0, в противном случае
IFNULL (v1, v2) v1, если v1 не пусто v2, в противном случае
s LIKE образец 1, при удачном сопоставлении строки s с образец 0, в противном случае
s NOT LIKE образец 0, при удачном сопоставлении строки s с образец 1, в противном случае

Примечание. x, y, z - числа или выражения, имеющие числовой результат. l, l1, l2 - логические константы (1 или 0) или логические выражения. s - строка или выражение, имеющее результат в виде строки. v, v1, v2 - переменные или выражения.
образец - константа в виде строки символов, возможно, содержащая метасимволы % и _. В образец метасимвол _ сопоставим с любым одиночным символом строки s, метасимвол % - с любой цепочкой символов любой (в том числе нулевой) длины.

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

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

 

Синтаксис Возвращаемое значение
SUM(x) сумма значений столбца x результирующей таблицы
MAX(x) наибольшее значение из всех значений ячеек столбца x
MIN(x) наименьшее значение из всех значений ячеек столбца x
AVG(x) среднее значение для всех значений ячеек столбца x
COUNT(x) общее количество ячеек в столбце x

Примечание. Функции MAX(...) и MIN(...) с одним аргументом являются агрегативными функциями, они же с двумя и более аргументами - обычные функции (см. таблицу 1).



Описание критерия выборки содержимого строк результирующей таблицы

В качестве критерия выбора информации из таблиц списка FROM оператора SELECT выступает сложн_условие, записываемое после ключевого слова WHERE и имеющее следующий вид:

прост_условие или прост_условие AND сложн_условие или прост_условие OR сложн_условие

Типичными вариантами прост_условие являются следующие.

· Сравнение

полн_имя_столбца @ полн_имя_столбца_или_константа

где @ - один из операторов сравнения: (больше), (меньше), = (не меньше), = (не больше), = (равно), (не равно), а полное_имя_столбца - имя столбца, конкретизированное при необходимости именем или синонимом имени таблицы, как это было описано выше.

· Сопоставление с образцом

полн_имя_столбца [NOT] LIKE образец

где образец имеет вид, описанный в таблице 3.

· Проверка на пустое значение в ячейке стодбца

полн_имя_столбца IS [NOT] NULL

При конструировании сложн_условие допустимо использование круглых скобок для управления порядком вычисления условий.

Примечание. Обратите внимание, что синтаксис сложн_условие существенно беднее синтаксиса в_выражение. Дело в том, что сложн_условие используется (в том числе и на физическом уровне организации БД) на этапе выборки из исходной (возможно, очень большой) таблицы (таблиц) необходимых строк в результирующую. Для сокращения времени прямого доступа к строкам таблиц они (таблицы) снабжаются ключами и индексами. Реальный эффект от использования ключей и индексов может быть достигнут только при условии, что запросы на поиск в таблицах используют в качестве критерия поиска только значения ячеек столбцов в чистом виде, а не в виде их комбинации в сложном выражении.

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




Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: