В MySQL начиная с версии 5.0 поддерживаются встроенные функции, определённые пользователем функции и хранимые процедуры. Хотя все эти инструменты доступны разработчику, они используются ещё не достаточно активно. В данной статье описываются 11 функций MySQL, которые выполняют часто используемые при разработке проектов операции .
 
Хэш функции
MySQL поддерживает следующие хэш функции:
- 
MD5(string); 
- 
SHA(string); 
| 1 | SELECTMD5('area72') asmd5, | 
 
 
 
Функции криптографии
Для многих станет открытием, что MySQL поддерживает базовые криптографические функции для алгоритмов AES и DES. Такие функции обеспечивают высокий уровень безопасности, особенно алгоритм AES, и их рекомендуется использовать для улучшения устойчивости приложений ко взлому.
- 
AES_ENCRYPT(string, key) и AES_DECRYPT(string, key); 
- 
DES_ENCRYPT(string, key) и DES_DECRYPT(string, key); 
- 
ENCODE(string, key) и DECODE(string, key); 
| 2 |                    AES_ENCRYPT('текст для шифрования', 'ключ'), | 
 
 
 
Описание: Запрос выводит ту же самую строку, которую мы отправляли на шифрование, потому что как только произошло шифрование строки, тут же мы производим дешифрование в оригинальный текст.
AES_ENCRYPT() и AES_DECRYPT() представляют собой наиболее устойчивый криптографический алгоритм, который доступен в MySQL.
Функции даты
Некоторые базовые функции работы с датами могут облегчить поиск и сравнение данных:
| 1 | SELECTADDDATE('2010-05-01', 7) asnextweek, CURDATE() astoday; | 
 
| 2 | SELECTADDDATE(CURDATE(), 7) asnextweek; | 
 
 
 
В примере функции используются вместе. Второй пример отображает рекомендуемый метод использования.
Функции для работы с текстом
- COMPRESS() и UNCOMPRESS()
Хранение длинного текста в вашей базе данных влияет и на производительсноть системы и на требования к объему дискового пространства. Таким образом, рекомендуется сжимать длинный текст с помощью функции compress, а для использования — проводить обратное преобразование с помощью функции uncompress.
| 1 | SELECTLENGTH(COMPRESS(REPEAT('A', 1000000))); | 
 
 
 
Как вы видите, 1 миллион символов A ’сжимается в строку размером примерно в 1000 позиций.
Да! REGEXP доступен в запросах MySQL, в представлении не нуждается.
| id | name | 
|---|
| 1 | Samsung Widescreen 1080p | 
| 2 | Geforce GT 8800 | 
| 3 | Mini Tv | 
| 4 | Audio System | 
| 5 | HTC PRO 2 | 
| 1 | SELECTid FROMtableWHEREnameREGEXP '[0-9]'; | 
 
 
 
С помощью запроса, описанного выше выделяются id элементов, которые имеют числа в имени. Хотя пример является очень простым, но можно представить возможности использования REGEXP в запросах..
Прочие функции
Данные две функции также не нуждаются в представлении
| 1 | SELECT* FROMtableORDERBYRAND(); | 
 
| 2 | SELECTCOUNT(*) FROMtable; | 
 
 
 
Функция RAND() наиболее часто используется для представления результатов выборки из таблицы в случайном порядке, например, для вывода случайных изображений в галерею на веб странице.
Функция COUNT() возвращает общее количество строк в запросе.