Реализация языка SQL в MySQL - Функции
ОГЛАВЛЕНИЕ
Страница 14 из 25
Функции
select_expression может содержать следующие функции и операторы:
| + - * / | Арифметические действия. |
| % | Остаток от деления (как в C) |
| | & | Битовые функции (используется 48 бит). |
| - | Смена знака числа. |
| ( ) | Скобки. |
| BETWEEN(A,B,C) | (A >= B) AND (A <= C). |
| BIT_COUNT() | Количество бит. |
| ELT(N,a,b,c,d) | Возвращает a, если N == 1, b, если N == 2 и т. д. a,b,c,d строки. ПРИМЕР: ELT(3,"First","Second","Third","Fourth") |
| FIELD(Z,a,b,c) | Возвращает a, если Z == a, b, если Z == b и т. д. a,b,c,d строки. ПРИМЕР: FIELD("Second","First","Second","Third","Fourth") |
| IF(A,B,C) | Если A истина (!= 0 and != NULL), то вернет B, иначе вернет C. |
| IFNULL(A,B) | Если A не null, вернет A, иначе вернет B. |
| ISNULL(A) | Вернет 1, если A == NULL, иначе вернет 0. Эквивалент ('A == NULL'). |
| NOT ! | NOT, вернет TRUE (1) или FALSE (0). |
| OR, AND | Вернет TRUE (1) или FALSE (0). |
| SIGN() | Вернет -1, 0 или 1 (знак аргумента). |
| SUM() | Сумма столбца. |
| = <= < >= > | Вернет TRUE (1) или FALSE (0). |
| expr LIKE expr | Вернет TRUE (1) или FALSE (0). |
| expr NOT LIKE expr | Вернет TRUE (1) или FALSE (0). |
| expr REGEXP expr | Проверяет строку на соответствие регулярному выражению expr. |
| expr NOT REGEXP expr | Проверяет строку на соответствие регулярному выражению expr. |
select_expression может также содержать один или большее количество следующих математических функций.
| ABS() | Абсолютное значение (модуль числа). |
| CEILING() | () |
| EXP() | Экспонента. |
| FORMAT(nr,NUM) | Форматирует число в формат '#,###,###.##' с NUM десятичных цифр. |
| LOG() | Логарифм. |
| LOG10() | Логарифм по основанию 10. |
| MIN(),MAX() | Минимум или максимум соответственно. Должна иметь при вызове два или более аргументов, иначе рассматривается как групповая функция. |
| MOD() | Остаток от деления (аналог %). |
| POW() | Степень. |
| ROUND() | Округление до ближайшего целого числа. |
| RAND([integer_expr]) | Случайное число типа float, 0 <= x <= 1.0, используется integer_expr как значение для запуска генератора. |
| SQRT() | Квадратный корень. |
select_expression может также содержать одну или больше следующих строковых функций.
| CONCAT() | Объединение строк. |
| INTERVAL(A,a,b,c,d) | Возвращает 1, если A == a, 2, если A == b... Если совпадений нет, вернет 0. A,a,b,c,d... строки. |
| INSERT(org,strt,len,new) | Заменяет подстроку org[strt...len(gth)] на new. Первая позиция строки=1. |
| LCASE(A) | Приводит A к нижнему регистру. |
| LEFT() | Возвращает строку символов, отсчитывая слева. |
| LENGTH() | Длина строки. |
| LOCATE(A,B) | Позиция подстроки B в строке A. |
| LOCATE(A,B,C) | Позиция подстроки B в строке A, начиная с позиции C. |
| LTRIM(str) | Удаляет все начальные пробелы из строки str. |
| REPLACE(A,B,C) | Заменяет все подстроки B в строке A на подстроку C. |
| RIGHT() | Get string counting from right. |
| RTRIM(str) | Удаляет хвостовые пробелы из строки str. |
| STRCMP() | Возвращает 0, если строки одинаковые. |
| SUBSTRING(A,B,C) | Возвращает подстроку из A, с позиции B до позиции C. |
| UCASE(A) | Переводит A в верхний регистр. |
И наконец несколько просто полезных функций, которые тоже можно применить в select_expression.
| CURDATE() | Текущая дата. |
| DATABASE() | Имя текущей базы данных из которой выполняется выбор. |
| FROM_DAYS() | Меняет день на DATE. |
| NOW() | Текущее время в форматах YYYYMMDDHHMMSS или "YYYY-MM-DD HH:MM:SS". Формат зависит от того в каком контексте используется NOW(): числовом или строковом. |
| PASSWORD() | Шифрует строку. |
| PERIOD_ADD(P:N) | Добавить N месяцев к периоду P (в формате YYMM). |
| PERIOD_DIFF(A,B) | Возвращает месяцы между A и B. Обратите внимание, что PERIOD_DIFF работает только с датами в форме YYMM или YYYMM. |
| TO_DAYS() | Меняет DATE (YYMMDD) на номер дня. |
| UNIX_TIMESTAMP([date]) | Возвращает метку времени unix, если вызвана без date (секунды, начиная с GMT 1970.01.01 00:00:00). При вызове со столбцом TIMESTAMP вернет TIMESTAMP. date может быть также строкой DATE, DATETIME или числом в формате YYMMDD (или YYYMMDD). |
| USER() | Возвращает логин текущего пользователя. |
| WEEKDAY() | Возвращает день недели (0 = понедельник, 1 = вторник, ...). |
