Оператор SELECT Подсчет и присвоение имен выводимым значениям столбцов таблиц. SELECT поддерживает концепцию функций. MySQL имеет ряд встроенных функций, способных оперировать с данными из таблиц, возвращая пользователю вычисляемое значение. Некоторые из функций могут вернуть значение как число или как строку, в зависимости от того, какой формат необходим пользователю. Эта возможность называется «контекстом» функции. Когда выбранные значения выводятся на дисплей, используется только текстовой контекст, но при вводе выбранных данных в поля таблиц или при использовании их в качестве аргументов других функций контекст зависит от того, что ожидается получателем данных. В частности, когда данные выбраны для их последующего ввода в поля числового типа, контекст функции будет числовым. Далее приведено большинство встроенных в MySQL функций: ABS(number) Возвращает абсолютное значение числа number (например, ABS (-10) возвращает 10). АCOS(number) Возвращает арккосинус числа number в радианах (например, ACOS (0) возвращает 1.570796). ASCII(char) Возвращает ASCII код данного символа (например, ASCII (' h') вернет 104). ASIN(number) Возвращает арксинус числа number в радианах (например, ASIN (0) вернет 0.000000). ATAN(number) Возвращает арктангенс числа number в радианах (например, ATAN (1) вернет 0.785398). ATAN2(X, Y) Возвращает арктангенс точки (X, Y) (например, ATAN (-3,3) возвращает-0.785398). СHAR(num1[,num2,. . .]) Возвращает строку, полученную в результате преобразования каждого из чисел в знак, соответствующий числовому ASCII коду (например, CHAR (122) возвращает'z'). CONCAT(string 1, string2 [, strings,. . . ]) Возвращает строку, сформированную соединением всех аргументов (конкатенация) (например, CONCAT('Hi',' ','Mom','!') вернет «Hi Mom!»). CONV( number, basel, base2 ) Возвращает значение числа number, переведенного из системы счисления basel в base2. Число должно быть целочисленным (может быть задано собственно числом либо строкой). Система счисления задается любым целым числом от 2 до 36 (например, CONV (8,10,2) возвращает 1000 (число 8 в десятичной системе, приведенное к двоичному виду)). BIN(decimal) Возвращает двоичное значение указанного десятичного числа decimal. Это эквивалент функции CONV (decimal, 10,2) (например, BIN(8) вернет 1000). CEILING( number) Возвращает наименьшее целое число, которое больше или равняется указанному числу number (например, CEILING (5.67) возвратит 6). COS( radians ) Возвращает косинус заданного в радианах числа number (например, COS(O) вернет 1. 000000). СОТ( radians) Возвращает котангенс числа number, заданного в радианах (например, СОТ(1) вернет 0.642093). CURDATE()/CURRENT_DATE() Возвращает текущую дату. При использовании в числовом контексте возвращается число вида YYYYMMDD , иначе вернется строка вида'YYYY-MM-DD' (например, CURDATE() может вернуть «1998-08-24»). CURTIME()/CURRENT_TIME() Возвращает текущее время. При использовании в числовом контексте возвращается число вида HHMMSS, иначе возвращается строка вида НН: ММ: SS (например, CURRENT_TIME() может вернуть 13:02:43). DATABASE() Возвращает имя текущей базы данных (например, DATABASE() может вернуть «mydata»). DATE_FORMAT( date, format ) Возвращает дату в указанном формате. Строка формата печатается в том виде, в каком задана, с выполнением следующих подстановок: %а Сокращенное название дня недели (Sun, Mon и т. д.). %b Сокращенное название месяца (Jan, Feb и т. д.). %D День месяца с порядковым индексом (1-й, 2-й, 3-й и т. д.). %d День месяца. %Н 24-часовый час (всегда две цифры, например 01). %h/%I 12-часовый час (всегда две цифры, например 09). %i Минуты. %j День года. %k 24-часовый час (одна или две цифры, например 1). %1 12-часовый час (одна или две цифры, например 9). %М День месяца. %m Номер месяца (1 - это январь). %р AM или РМ. %r 12-часовое полное время (включая АМ/РМ). %S Секунды (всегда две цифры, например 04). %s Секунды (одна или две цифры, например 4). %Т 24-часовое полное время. %U Неделя года (новая неделя начинается с воскресенья). %W Название дня недели. %w Номер дня недели (0 - это воскресенье). %Y Четырехзначный год. %У Год, две цифры. %% Символ « % ». DAYNAME(date) Возвращает название дня недели для указанной даты (например, DAYNAME(' 1998-0822') возвращает «Saturday»). DAYOFMONTH( date) Возвращает значение дня месяца для указанной даты (например, DAYOFMONTHC199808-22') возвращает 22). DAYOFWEEK( ctete)/WEEKDAY( date) Возвращает номер дня недели (1 - это воскресенье) для указанной даты (например, DAY_ OF_WEEK('1998-08-22') возвращает 7). DAYOFYEAR( date) Возвращает день года для указанной даты (например, DAYOFYEAR ('1983-02-15') возвращает 46). DEGREES( radians ) Возвращает данный аргумент, конвертированный из радианов в градусы (например, DEGREES(2 *PI()) возвращает 360.000000). ЕХР(power) Возвращает число е, возведенное в указанную степень (например, ЕХР(1) возвращает 2.718282). FIELD( string, string1, string2, . . . ) Возвращает позицию аргумента (начиная со stringl) в списке аргументов, который совпадает со string. Вернет 0, если совпадений нет (например, FIELD( 'abe', 'деогде', 'John', 'abe', 'bill') возвращает 3). FINO_IN_SET(string, set) Возвращает позицию string в наборе set. Аргумент set — это набор строк, разделенных запятыми (например, FIND_IN_SET ('abe', 'деогде, John, abe, bill') возвращает 3). FLOOR( number) Возвращает наибольшее целое число, которое меньше или равно number (например, FLOOR (5.67) возвращает 5). FORMAT( number, decimals ) Аккуратно форматирует заданное число, используя заданную длину дробной части (например, FORMAT(4432.99134,2) возвращает «4,432.99»). FROM_DAYS(days) Возвращает дату, заданную числом дней (где день 1 - это первое января первого года) (например, FROM_DAYS(728749) вернет «1995-04-02»). FROM_UNIXTIME( seconds [, format]) Возвращает дату (GMT), соответствующую указанному числу секунд, прошедших с начала отсчета (1-е января 1970 г. GMT). Если определен формат (с использованием тех же параметров, что и в команде DATE_FORMAT ), возвращаемое время форматируется соответствующим образом (например, FROM_UNIXTIME(903981584) возвращает «199808-24 18:00:02») GREATEST (num 1, num2[, numЗ, . . . ]) Возвращает наибольший из всех имеющихся аргументов (например, GREATEST(5, 6, 68,1,4) возвращает 68). НЕХ(decimal ) Возвращает шестнадцатеричное значение указанного десятичного числа. Эквивалент функции CONV(decimal, 10,16) (например, НЕХ(90) возвращает «За»). HOUR(time) Возвращает час из указанной даты (например, HOUR('15:33:30') возвращает 15). IF(test, value1, value2 ) Если test истинно, возвращает valuel, иначе возвращает value2. Значение test должно быть целочисленным, поэтому числа с плавающей запятой следует использовать после преобразования их к типу integer (например, IF(1>0, "true", "false") возвращает true). IFNULL( value, value2 ) Возвращает value, если оно не равно null, иначе возвращает value2 (например, IFNULL(NULL, "bar") возвращает «bar»). INSERT( string, position, length, new ) Возвращает строку, созданную путем замены некоторых символов из строки string на символы new. Будет заменено количество символов, указанное в length, начиная с позиции position (например, INSERT( 'help', 3,1, ' can jum') возвращает «he can jump»). INSTR( string, substring ) Идентично функции LOCATE, за исключением того, что .аргументы идут в обратном порядке (например, INSTR( 'makebelieve', 'lie') возвращает 7). ISNULL( expression ) Возвращает 1, если выражение в expression равно NULL, иначе возвращает 0 (например, ISNULL(3) вернет 0). LAST_INSERT_ID() Возвращает последнее значение поля AUTO_INCREMENT , которое было создано автоматически (например, LAST_INSERT_ID() может вернуть 4). LCASE( string )/LOWER( string) Возвращает строку string, где все символы переведены в нижний регистр (например, LCASE(' ВоВ') возвращает «bob»). LEAST(num1, num2[, num3, . . . ]) Возвращает наименьший из всех имеющихся аргументов (например, LEAST(5,6,68,1,4) возвращает 1). LEFT( string, length ) Возвращает количество символов length из строки string, начиная с начала строки (например, LEFTC 12345", 3) возвращает «123»). LENGTH (string)/OCTET_LENGTH(string)/CHAR_LENGTH(string)/ CHARACTER_LENGTH(string) Возвращает длину строки string (например, CHAR_LENGTH( 'Hi Mom! ' ) возвращает 7). В многобайтных наборах символов один символ может занимать более одного байта (например, в Unicode и некоторых азиатских наборах символов). В этих случаях строковые функции MySQL должны правильно считать число символов, а не байтов. Однако в версиях до 3.23 эта функция не работала и возвращала число байт. LOCATE(substring, string [, number ])/POSITION( substring, string) Возвращает позицию подстроки substring в строке string. Возвращает 0, если substring не найдена. Если в LOCATE задан третий числовой аргумент, поиск подстроки начнется только с позиции, указанной этим аргументом (например, LOCATE(' SQL', ' MySQL') вернет 3). LOG(number) Возвращает натуральный логарифм числа number (например, LOG(2) возвращает 0.693147). LOG10(number) Возвращает обычный (десятичный) логарифм числа (например, LOG10(1000) возвращает 3.000000). LPAD( string, length, padding ) Возвращает заданную строку string с дополнением padding к началу строки. Дополнение будет повторяться, пока новая строка не достигнет длины, указанной в length, (например, LPAD(' -Merry X-Mas',18, 'Но') возвращает «НоНоНо Merry X-Mas»). LTRIM( string) Возвращает строку string с удалением всех начальных пробелов (например, LTRIM(' Oops') возвращает «Oops»). MID( string, position, length )/SUBSTRING( string, position, length )/ SUBSTRING( string FROM position FOR length ) Возвращает подстроку из количества символов, указанного в length, взятых из строки string, начиная с позиции position (например, SUBSTRING(' 12345', 2,3) возвращает «234»). MINUTE( time) Возвращает количество минут указанного времени (например, MI-NUTE('15:33:30') возвращает 33). МOD(num1, num2) Возвращает модуль числа пит1, деленного на число пит2. Функция аналогична оператору % (например, MOD(11,3) возвращает 2). MONTH (date) Возвращает номер месяца (1 в случае января) для указанной даты (например, MONTH(' 1998-08-22') возвращает 8). MONTHNAME( date) Возвращает название месяца для указанной даты (например, MONTHNAME('1998-08- 22') возвращает «August»). NOW()/SYSDATE()/CURRENT_TIMESTAMP() Возвращает текущую дату и время. В числовом контексте возвращается число вида YYYYMMDDHHMMSS , в ином случае вернется строка вида 'YYYY-MM-DD HH:MM:SS' (например, SYSDATE() может вернуть «1998-08-24 12:55:32»). OCT( decimal) Возвращает восьмеричное значение заданного десятичного числа. Функция эквивалентна функции CONV(deciinal, 10,8) (например, ОСТ(8) возвращает 10). PASSWORD(string) Возвращает зашифрованную версию заданной строки. (Например, PASSWD( 'mypass') может вернуть «3afi4004idgv».) password('root') 67457e226a1a15bd PI() Возвращает число к: 3.141593. POW(num1, num2)/POWER( num1, num2] Возвращает значение числа пит 1, возведенного в степень пит2- (например, POWER(3,2) возвращает 9.000000). QUARTER( date) Возвращает номер квартала указанной даты (1 - это январь-март) (например, QUARTER(' 1998-08-22') возвращает 3). RADIANS( degrees) Возвращает значение заданного аргумента, переведенное из градусов в радианы (например, RADIANS(-90) возвращает -1.570796). RAND ([seed]) Возвращает случайную десятичную дробь от 0 до 1. Если задан аргумент, он используется как источник (seed) для генератора случайных чисел (например, RAND(3) может вернуть 0.435434). REPEAT( string, number ) Возвращает строку, полученную путем повторения заданной строки некоторое число раз (указано в number). Вернет пустую строку, если number меньше или равно нулю (например, REPEAT( 'ma', 4) возвращает 'mamamama'). REPLACE( string, old, new ) Возвращает строку, в которой все вхождения подстроки old заменяются на подстроку new (например, REPLACE('black jack','ack1,'oke') возвращает «bloke joke»). REVERSE( string) Возвращает символы строки string в обратном порядке (например, REVERSE('my bologna') возвращает «angolobym»). RIGHT( string, length )/SUBSTRING( string FROM length) Возвращает количество символов из string, указанное в length, начиная с конца строки (например, SUBSTRING( «12345» FROM 3) возвращает «345»). ROUND( number [.decimal ]) Округляет дробную часть числа number до указанного количества цифр. Если аргумент decimal не указан, число округляется до целого (например, ROUND(5.67,1) возвращает 5.7). RPAD( string, length, padding ) Возвращает строку string с дополнением padding к концу строки. Дополнение будет повторяться, пока новая строка не достигнет длины, указанной в length (например, RPAD( 'Yo', 5, '! ') возвращает «Yo!!!»). RTRIM( string) Возвращает строку string с удалением всех концевых пробелов (например, RTRIM( 'Oops ') вернет «Oops»). SECOND( time) Возвращает секунды из указанного времени (например, SE-COND('15:33:30') возвращает 30). SEC_TO_TIME( seconds ) Возвращает число часов, минут и секунд в заданном количестве секунд. При использовании в числовом контексте возвращает число в формате HHMMSS, иначе вернет строку вида HH:MM:SS (например, SEC_TO_TIME(3666) возвращает «01:01:06»). SIGN ( number) Возвращает -1, если число number отрицательное, 0, если это ноль, и 1, если оно положительное (например, SIGN(4) возвращает 1). SIN( radians) Возвращает синус числа, заданного в радианах (например, SIN(2*РI()) возвращает0. 000000). SPACE(number) Возвращает строку из пробелов, число которых указанно в number (например, SPACE( 5) возвращает<>). SQRT(number) Возвращает квадратный корень числа number (например, SQRT(16) возвращает 4.000000). STRCMP( string1, string2 ) Возвращает 0, если строки совпадают, -1 если бы string1 при сортировке оказалась раньше строки string2; или 1, если string1 была бы при сортировке после string2 (например, STRCMP( 'bob', 'bobbie') возвращает -1). SUBSTRING_INDEX( string, character, number ) Считает количество указанных символов character в строке string до тех пор, пока не досчитает до заданного числа number. Если это число было отрицательным, вернется все, что слева от символа, на котором остановился счетчик, а если число положительное, то функция вернет все, что находится справа от него. (Например, SUBSTRINGJENDEXC 1,2, 3,4,5', ',',-3) возвращает «1,2,3».) SUBSTRING( string,position ) Возвращает строку string, начиная с символа указанного в position (например, SUBSTRING(«123456», 3) возвращает «3456»). TAN(radians ) Возвращает тангенс числа, заданного в радианах (например, TAN(0) возвращает 0.000000). TIME_FORMAT( time, format) Форматирует заданное время в указанный формат. Формат тот же, что и в команде DATE FORMAT , описанной выше. TIME_TO_SEC( time) Возвращает количество секунд в аргументе time (например, ТIМЕ_ТО_ 8ЕС(' 01:01:06') возвращает 3666). TO_DAYS(date) Возвращает количество дней, прошедшее до указанной даты (день 1 - это 1-е января 1-го года). Дата может быть значением типа DATE, DATETIME, TIMESTAMP или числом в формате YYMMDD либо YYYYMMDD (например, TO_DAYS( 19950402) возвращает 728749). TRIM([BOTH|LEADING|TRAILING] [ remove ] [FROM] string) Возвращает строку string с удаленными концевыми и начальными пробелами. Вы можете указать, какие пробелы хотите удалить (концевые, начальные или и те и другие). Также вместо пробела можно указать другой символ (например, TRIM( both ' ' from ' --look here— ') возвращает «look here»). TRUNCATE( number, decimals ) Возвращает number с дробной частью, усеченной до указанного количества цифр. (Например, TRUNCATE(3.33333333,2) возвращает 3.33.) UCASE( string)/UPPER( string) Возвращает string, где все символы переведены в верхний регистр (например, UPPER ('Scooby') возвращает «SCOOBY»). UNIX_TIMESTAMP([ date]) Возвращает число секунд, прошедшее с начала отсчета (1 января 1970 г. GMT) до заданной даты (GMT). Если дата не указана, возвращает число секунд, прошедшее до текущей даты (например, UNIX_TI-MESTAMPC1998-08-24 18:00:02') возвращает 903981584). USER()/SYSTEM_USER()/SESSION_USER() Возвращает имя текущего пользователя (например, SYSTEM_USER() может вернуть «ryarger»). VERSION() Возвращает версию самого сервера MySQL (например, VERSION() может вернуть «3.22. 5c-alpha»). WEEK(date) Возвращает порядковый номер недели года из указанной даты (например, WEEK( '199812-29') возвращает 52). YEAR (date) Возвращает год из указанной даты (например, YEAR('1998-12-29') возвращает 1998).