mysql> SELECT t1.name, t2.salary FROM employee t1, info t2 WHERE t1.name = t2.name; Аналогично выводятся данные о вычисляемых полях. Select поле1, поле2, выражение As pole3 from t таблица.
Пример базы данных Animals
Функции, используемые в языке MySQL.
Для работы со строками:
ASCII(‘символ’) – код ASCII, аналогично функция ORD(строка),
CONV(N,from_base,to_base)
Преобразует числа из одной системы счисления в другую. Возвращает строковое представление числа N, преобразованного из системы счисления с основой from_base в систему счисления с основой to_base. Если хотя бы один из аргументов равен NULL, то возвращается NULL.
CHAR(N,...)
CHAR() интерпретирует аргументы как целые числа и возвращает строку, состоящую из символов, соответствующих ASCII-коду этих чисел. Величины NULL пропускаются:
mysql> SELECT CHAR(77,121,83,81,'76'); -> 'MySQL'
CONCAT(str1,str2,...)
Возвращает строку, являющуюся результатом конкатенации аргументов. Если хотя бы один из аргументов равен NULL, возвращается NULL. Может принимать более 2 аргументов. Числовой аргумент преобразуется в эквивалентную строковую форму:
mysql> SELECT CONCAT('My', 'S', 'QL');'MySQL'
BIN(N) -Возвращает строку, представляющую двоичную величину N,
OCT(N)Возвращает строковое представление восьмеричного значения числа N, где N - целое число большого размера
LENGTH(str) Возвращает длину строки str:
LOCATE(substr,str)
POSITION(substr IN str)
Возвращает позицию первого вхождения подстроки substr в строку str. Если подстрока substr в строке str отсутствует, возвращается 0
LEFT(str,len)
Возвращает крайние слева len символов из строки str:mysql> SELECT LEFT('foobarbar', 5); -> 'fooba'
RIGHT(str,len)
Возвращает крайние справа len символов из строки str:
mysql> SELECT RIGHT('foobarbar', 4); -> 'rbar'
LTRIM(str)
Возвращает строку str с удаленными начальными пробелами:
mysql> SELECT LTRIM(' barbar'); -> 'barbar'
RTRIM(str)
Возвращает строку str с удаленными конечными пробелами:
mysql> SELECT RTRIM('barbar '); -> 'barbar'
TRIM([[BOTH | LEADING | TRAILING] [remstr] FROM] str)
Возвращает строку str с удаленными всеми префиксами и/или суффиксами, указанными в remstr. Если не указан ни один из спецификаторов BOTH, LEADING или TRAILING, то подразумевается BOTH. Если аргумент remstr не задан, то удаляются пробелы:
mysql> SELECT TRIM(' bar '); -> 'bar'
REPLACE(str,from_str,to_str)
Возвращает строку str, в которой все вхождения строки from_str заменены на to_str:
Возвращает строку, состоящую из строки str, повторенной count раз. Если значение count <= 0, возвращает пустую строку. Возвращает NULL, если str или count равны NULL:
Возвращает строку str, в которой все символы переведены в нижний регистр в соответствии с текущей установкой набора символов
UPPER(str)
Возвращает строку str, в которой все символы переведены в верхний регистр в соответствии с текущей установкой набора символов.
LOAD_FILE(file_name)
Читает заданный файл и возвращает его содержимое в виде строки. Данный файл должен находится на сервере, должен быть указан полный путь к этому
mysql> UPDATE tbl_name SET blob_column=LOAD_FILE("/tmp/picture")
WHERE id=1;
Функции сравнения строк
LIKE – см. раньше
STRCMP(expr1,expr2)
Функция STRCMP() возвращает: 0, если строки идентичны, -1 - если первый аргумент меньше второго (в соответствии с имеющимся порядком сортировки), и 1 - в остальных случаях:
Возвращает случайную величину с плавающей точкой в диапазоне от 0 до 1,0. Если целочисленный аргумент N указан, то он используется как начальное значение этой величины
LEAST(X,Y,...)
Если задано два или более аргументов, возвращает наименьший (с минимальным значением) аргумент.
GREATEST(X,Y,...)
Возвращает наибольший (с максимальным значением) аргумент.
Функции даты и времени
MONTH(date)
Возвращает порядковый номер месяца в году для аргумента date в диапазоне от 1 до 12:
mysql> SELECT MONTH('1998-02-03'); -> 2
MONTHNAME(date)
Возвращает название месяца для аргумента date:
mysql> SELECT MONTHNAME("1998-02-05");
'February'
YEAR(date)
Возвращает год для аргумента date в диапазоне от 1000 до 9999:
mysql> SELECT YEAR('98-02-03'); -> 1998
HOUR(time)
Возвращает час для аргумента time в диапазоне от 0 до 23:
mysql> SELECT HOUR('10:05:03'); -> 10
MINUTE(time)
Возвращает количество минут для аргумента time в диапазоне от 0 до 59:
mysql> SELECT MINUTE('98-02-03 10:05:03'); -> 5
SECOND(time)
Возвращает количество секунд для аргумента time в диапазоне от 0 до 59:
mysql> SELECT SECOND('10:05:03'); -> 3
PERIOD_ADD(P,N)
Добавляет N месяцев к периоду P (в формате YYMM или YYYYMM). Возвращает величину в формате YYYYMM. Следует учитывать, что аргумент периода P не является значением даты:
mysql> SELECT PERIOD_ADD(9801,2); -> 199803
PERIOD_DIFF(P1,P2)
Возвращает количество месяцев между периодами P1 и P2. P1 и P2 должны быть в формате YYMM или YYYYMM. Следует учитывать, что аргументы периода P1 и P2 не являются значениями даты:
mysql> SELECT PERIOD_DIFF(9802,199703); -> 11
DATE_ADD(date,INTERVAL expr type)
DATE_SUB(date,INTERVAL expr type)
ADDDATE(date,INTERVAL expr type)
SUBDATE(date,INTERVAL expr type)
Данные функции производят арифметические действия над датами. Функции ADDDATE() и SUBDATE() - синонимы для DATE_ADD() и DATE_SUB(). В версии MySQL 3.23 вместо функций DATE_ADD() и DATE_SUB() можно использовать операторы + и -, если выражение с правой стороны представляет собой столбец типа DATE или DATETIME (см. пример ниже). Аргумент date является величиной типа DATETIME или DATE, задающей начальную дату. Выражение expr задает величину интервала, который следует добавить к начальной дате или вычесть из начальной даты. Выражение expr представляет собой строку, которая может начинаться с - для отрицательных значений интервалов. Ключевое слово type показывает, каким образом необходимо интерпретировать данное выражение. Вспомогательная функция EXTRACT(type FROM date) возвращает интервал указанного типа (type) из значения даты. В следующей таблице показана взаимосвязь аргументов type и expr:
CURDATE()
Возвращает сегодняшнюю дату как величину в формате YYYY-MM-DD или YYYYMMDD, в зависимости от того, в каком контексте используется функция - в строковом или числовом: