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