Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

MySQL. Библиотека профессионала - Аткинсон Л

..pdf
Скачиваний:
165
Добавлен:
24.05.2014
Размер:
10.41 Mб
Скачать

Глава Встроенные функции

I I

1 row in set (0.00 sec)

Эта функция преобразует целое число из одной системы счисления в другую. С ее помощью можно дублировать работу функций HEX и ОСТ В ге 12.53 показан переводчисла 100 из восьмеричной в десятичную систему.

SELECT

8,

|

8, 10) |

I 64

|

1 row in set

(0.00 sec)

пароль)

Эта функция расшифровывает строку, созданную фун кцией ENCODE (листинг

 

SELECT

 

I

 

I

I

MySQL

I

1

row in set

(0.01 sec)

Эта функция возвращает элемент списка с указанным индексом (листинг 12.55). Нумерация элементов начинается с единицы.

Строки 173

mysql> SELECT ELT(3,

I

|

I с

I

row in set

(0.00 sec)

пароль)

Эта функция возвращает строку, зашифрованную с помощью заданного пароля (листинг 12.56). Полученная строка является двоичной и имеет ту же длину, что и оригинал. Для расшифровки строки предназначена функция DECODE

UPDATE user

SET password

WHERE

Query OK, 1 row affected (0 . 00 sec) matched 1 Changed 1 Warnings 0

He применяйте данную функцию для шифрования столбца паролей в таблице привилегий MySQL. Этой цели служит функция

Эта функция является оболочкой функции crypt языка С. Она реализует алго ритм необратимого шифрования (листинг 12.57). Вторым аргументом может быть строка, повышающая степень случайности шифрования. Более длин ные строки усекаются.

Эта функция несовместима с функцией Кроме того, в каждой опера ционной системе может быть своя реализация функции crypt

 

SELECT

I

|

I

|

1 row in set (0 . 00 sec)

Глава Встроенные функции

Эта функция возвращает строку флагов, соответствующих значениям битов перво го аргумента. Биты интерпретируются от младшего к старшему, а сама строка строит ся слева направо. Во втором и третьем аргументах задаются строки, которые подстав ляются при обнаружении соответственно единичного и нулевого бита.

По умолчанию разделителем служит запятая, но эту установку можно менять. ме того, по умолчанию анализируются все 64 бита целого числа, но в пятом аргументе можно задать максимальное количество битов.

В листинге 12.58 вместо единичных битов подставляется Y, вместо нулевых би тов — N, а разделителем служит вертикальная черта. Анализируются первые восемь битов числа 9.

Эта функция возвращает индекс указанного элемента в приведенном далее списке (листинг 12.59). Нумерация элементов начинается с единицы. Если элемент не най ден, возвращается 0.

список)

Эта функция возвращает индекс указанного элемента в списке, представляющем собой строку разделенных запятыми элементов (листинг 12.60). Нумерация тов начинается с единицы.

Строки 175

точность)

Эта функция возвращает число с указанным количеством цифр после десятичной точки и запятыми, вставленными между группами разрядов (листинг 12.61).

НЕХ(целое)

Эта функция возвращает

представление целого числа

(листинг 12.62).

 

Эта функция преобразует IP адрес, записанный в строковом виде, в числовую форму (листинг 12.63). Понимаются как 4 байтовые, так и 8 байтовые адреса.

Глава Встроенные функции

Эта функция возвращает строковое представление IP адреса, записанного в чи словом виде (листинг 12.64).

длина, подстрока)

Эта функция вставляет в строку заданную подстроку. Второй аргумент определяет позицию вставки, а третий аргумент указывает на то, сколько символов можно зате реть, начиная с этой позиции. В листинге 12.65 показана вставка в строку подстроки ABC в позицию 3 с перезаписью одного символа.

Строки 177

подстрока)

Эта функция возвращает позицию первого вхождения указанной подстроки в строку (листинг 12.66).

Эта функция возвращает строку, все символы которой переведены в нижний ре гистр (листинг 12.67).

(строка, длина)

Эта функция извлекает из строки подстроку заданной длины (листинг

Эта функция возвращает количество байтов в строке (листинг 12.69). Двухбайто вые символы учитываются дважды. Длину строки многобайтовых символов можно уз нать с помощью функции CHAR_LENGTH

Эта функция возвращает содержимое расположенного в файловой системе сервера (листинг 12.7). Пользователь MySQL должен иметь право доступа к этому файлу, а сам файл должен быть доступен для всеобщего чтения.

Эта функция находит позицию первого вхождения заданной подстроки в строку. обязательный третий аргумент определяет начальную позицию поиска (листинг 12.71).

Строки 179

Это синоним функции

длина, заполнитель)

Эта функция дополняет строку до указанной длины, вставляя слева строку заполнитель. В случае необходимости строка заполнитель будет продублирована (листинг 12.72).

Эта функция удаляет из строки начальные пробелы (листинг

Эта функция возвращает строку список, созданную путем выбора элементов задан ного списка на основании флагов битового поля. Единичный бит означает выбор элемента, индекс которого соответствует номеру бита. В листинге 12.74 двоичное представление первого аргумента (число 5) равно поэтому из списка выбирают ся первый и третий элементы.

Глава Встроенные функции

MATCH AGAINST (строка)

Конструкция MATCH сравнивает заданную строку со списком столбцов и возвраща ет число в интервале от 0,0 до 1,0 (листинг12.75). Для перечисленных столбцов дол жен существовать индекс типа (см. главу 11, "Типы столбцов и индексов"). Программа MySQL разбивает строку на слова, разделенные пробелами, причем слова длиной три и менее символов игнорируются. Слова могут быть заключены в кавычки.

Конструкция MATCH вызывает сортировку записей по релевантности в порядке убывания. Записи с нулевой релевантностью не включаются в результаты запроса.

Эта функция возвращает правило построения которого описано в документе RFC 1321 (листинг 12.76). Идентификаторы MD5 теоретически являются уникальными длявсех строк.

Строки

MID(строка, позиция,

Это синоним функции SUBSTRING

ОСТ(целое)

Эта функция возвращает восьмеричное представление целого числа (листинг 12.77).

Это синоним функции LENGTH

Эта функция возвращает порядковый номер самого левого символа строки. В отли чие от функции I функция ORD работает и с многобайтовыми символами.

Эта функция шифрует пароль, заданный в текстовом виде (листинг 12.78). Про цесс шифрования является необратимым. Функция SWORD предназначена для задания паролей в файле где содержится таблица пользовательских привилегий.

POSITION(подстрока IN строка)

Это альтернативный вариант функции LOCATE (листинг 12.79).