Все ленты — последние статьи

11 популярных функций MySQL

11 популярных функций MySQL

В MySQL начиная с версии 5.0 поддерживаются встроенные функции, определённые пользователем функции и хранимые процедуры. Хотя все эти инструменты доступны разработчику, они используются ещё не достаточно активно. В данной статье описываются 11 функций MySQL, которые выполняют часто используемые при разработке проектов операции .

 

Хэш функции

MySQL поддерживает следующие хэш функции:

  • MD5(string);

  • SHA(string);

1 SELECT MD5('area72') as md5,
2        SHA('area72') as sha
3  
4 -- OUTPUT: MD5 e82b6069c7e968485f0de6d756d622dd
5 -- OUTPUT: SHA 4feb5546a60f18df755395d1ff39e29a2cab7234

Функции криптографии

Для многих станет открытием, что 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);

1 SELECT AES_DECRYPT(
2                    AES_ENCRYPT('текст для шифрования', 'ключ'),
3                   'ключ') as encryption;
4 -- OUTPUT: текст для шифрования

Описание: Запрос выводит ту же самую строку, которую мы отправляли на шифрование, потому что как только произошло шифрование строки, тут же мы производим дешифрование в оригинальный текст.

AES_ENCRYPT() и AES_DECRYPT() представляют собой наиболее устойчивый криптографический алгоритм, который доступен в MySQL.

Функции даты

Некоторые базовые функции работы с датами могут облегчить поиск и сравнение данных:

  • ADDDATE()

  • CURDATE()

1 SELECT ADDDATE('2010-05-01', 7) as nextweek, CURDATE() as today;
2 SELECT ADDDATE(CURDATE(), 7) as nextweek;
3  
4 -- OUTPUT: 2010-05-08, 2010-05-01
5 -- OUTPUT: 2010-05-08

В примере функции используются вместе. Второй пример отображает рекомендуемый метод использования.

Функции для работы с текстом

  • COMPRESS() и UNCOMPRESS()

Хранение длинного текста в вашей базе данных влияет и на производительсноть системы и на требования к объему дискового пространства. Таким образом, рекомендуется сжимать длинный текст с помощью функции compress, а для использования — проводить обратное преобразование с помощью функции uncompress.

1 SELECT LENGTH(COMPRESS(REPEAT('A', 1000000)));
2 -- OUTPUT: ~1000

Как вы видите, 1 миллион символов A ’сжимается в строку размером примерно в 1000 позиций.

  • REGEXP()

Да! REGEXP доступен в запросах MySQL, в представлении не нуждается.

id

name

1

Samsung Widescreen 1080p

2

Geforce GT 8800

3

Mini Tv

4

Audio System

5

HTC PRO 2

1 SELECT id FROM table WHERE name REGEXP '[0-9]';
2 -- OUTPUT: 1, 2, 5

С помощью запроса, описанного выше выделяются id элементов, которые имеют числа в имени. Хотя пример является очень простым, но можно представить возможности использования REGEXP в запросах..

Прочие функции

Данные две функции также не нуждаются в представлении

  • RAND()

  • COUNT()

1 SELECT * FROM table ORDER BY RAND();
2 SELECT COUNT(*) FROM table;

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

Функция COUNT() возвращает общее количество строк в запросе.