Справочник от Автор24
Найди эксперта для помощи в учебе
Найти эксперта
+2

Функции SQL

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

Информационные функции

Функция VERSION() возвращает текущую версию MySQL.

Пример 1

SELECT VERSION();

Результат: 10.1.13-MariaDB

Функция DATABASE() возвращает имя текущей базы данных. Если в настоящий момент никакая база данных не является активной, то вернется пустая строка.

Пример 2

SELECT DATABASE();

Результат: example.

Следующие функции возвращают имя текущего активного пользователя в формате логин@имя_хоста:

  • USER() ;
  • SYSTEM_USER() ;
  • SESSION_USER().
Пример 3

SELECT SESSION_USER();

Результат: root@localhost.

Пример 4

Иногда требуется извлечь из имени пользователя подстроку логина без имени хоста. Это можно сделать следующим запросом:

SELECT SUBSTRING_INDEX(SESSION_USER(),"@",1);

Результат: root.

Функция CONNECTION_ID() возвращает идентификатор текущего соединения с MySQL.

Пример 5

SELECT CONNECTION_ID();

Результат: 3.

Функция INET_ATON(ip-адрес) возвращает по заданному ip-адресу его числовое значение. Функция INET_NTOA(число) наоборот возвращает по числовому значению ip-адреса его представление в виде октетов, разделенных точками.

Пример 6

SELECT INET_ATON("10.20.0.1");

Результат: 169082881.

SELECT INET_NTOA("169082881");

Результат: 10.20.0.1

Функции шифрования

Шифрование бывает двух видов:

«Функции SQL» 👇
Помощь эксперта по теме работы
Найти эксперта
Решение задач от ИИ за 2 минуты
Решить задачу
Найди решение своей задачи среди 1 000 000 ответов
Найти
  • Обратимое;
  • Необратимое.

При обратимом шифровании зашифрованный текст может быть дешифрован. При необратимом шифровании в результате получается хеш, по которому невозможно узнать исходную строку.

Чаще всего шифрование требуется для паролей и адресов электронной почты. Для шифрования паролей более удобно необратимое шифрование. Пароль один раз шифруется и сохраняется в базе данных в виде хеша. При вводе пароля пользователем, строка снова шифруется и сравнивается с хешем, который хранится в базе. Таким образом, дешифрование для паролей не требуется.

Адреса электронной почты тоже имеет смысл хранить в зашифрованном виде, чтобы защитить пользователей от спама. Но на электронные адреса постоянно нужно отправлять письма, поэтому для них более актуальным будет обратимое шифрование.

К функциям необратимого шифрования относятся:

  • PASSWORD(строка);
  • Md5(строка);
  • SHA1(строка) .

Отличаются эти функции алгоритмами шифрования. То есть для одной и той же строки они дадут различные результаты.

Пример 7

SELECT PASSWORD(“kanban”);

Результат: \E8B697EADB219A4FF7630A837B7D84A70EF02074*

SELECT md5("kanban");

Результат: 7f506d692b6f2fa4d74817a052371ae3

SELECT sha1("kanban");

Результат: 4073e825874eb561d37f354dd6aa8e431850ed5a

Функции обратимого шифрования являются парными. Каждой шифрующей функции поставлена в соответствие дешифрующая:

  • AES_ENCRYPT(строка, ключ) и AES_DECRYPT(строка, ключ);
  • DES_ENCRYPT(строка, ключ) и DES_DECRYPT(строка, ключ);
  • ENCODE(строка, ключ) и DECODE(строка, ключ);

Аргумент "ключ" является ключом дешифрования.

Пример 8

SELECT AES_DECRYPT(AES_ENCRYPT('zhaolon@yandex.ru', '123'),'123');

SELECT DES_DECRYPT(DES_ENCRYPT('zhaolon@yandex.ru', '123'),'123');

SELECT DECODE(ENCODE('zhaolon@yandex.ru', '123'),'123');

Результат: zhaolon@yandex.ru

Битовые функции

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

| - побитовое ИЛИ ;

Пример 9

SELECT 28 | 15;

Результат: 31.

& - побитовое И;

Пример 10

SELECT 28 & 15;

Результат: 12.

~ - инвертирование битов;

Пример 11

SELECT 9 & ~ 1;

Результат: 8.

- побитовый сдвиг влево;

> > - побитовый сдвиг вправо.

Пример 12

SELECT 9

Результат: 18.

SELECT 9 > > 1;

Результат: 4.

Дата написания статьи: 03.09.2016
Получи помощь с рефератом от ИИ-шки
ИИ ответит за 2 минуты
Все самое важное и интересное в Telegram

Все сервисы Справочника в твоем телефоне! Просто напиши Боту, что ты ищешь и он быстро найдет нужную статью, лекцию или пособие для тебя!

Перейти в Telegram Bot