Десять полезных функций MySQL

MySQL

Эта статья была впервые опубликована в личном публичном аккаунте WeChat «andyqian», с нетерпением жду вашего внимания!

предисловие

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

функция

0. Показать текущее время
Заказ:select now().
эффект: Отображает текущее время.
Сценарии применения: значения по умолчанию, такие как время создания, время модификации и т. д.
пример:

mysql> select now();
+---------------------+
| now()               |
+---------------------+
| 2017-12-27 20:14:56 |
+---------------------+
1 row in set (0.00 sec)

1. Длина символа
Заказ:select char_length('andyqan').
эффект: Отображает указанную длину символов.
Сценарии применения: при проверке длины символа.
пример:

mysql> select char_length('andyqian');
+-------------------------+
| char_length('andyqian') |
+-------------------------+
|                       8 |
+-------------------------+
1 row in set (0.00 sec)

2. Форматирование даты
Заказ:select date_format(now(),'%y-%m-%d).
эффект: формат даты.
Сценарии применения: При форматировании даты.
пример:

mysql> select date_format(now(),'%y-%m-%d');
+-------------------------------+
| date_format(now(),'%y-%m-%d') |
+-------------------------------+
| 17-12-28                      |
+-------------------------------+
1 row in set (0.00 sec)

Здесь поддерживаются следующие форматы:
%y: указывает год (две цифры), например: 17 лет.
%Y: указывает год в виде 4 цифр, например: 2017.
%m: указывает месяц (1-12)
%d: указывает день месяца
%H: часы (0-23)
%i: минуты (0-59)
%s: секунды (0-59)

Год, месяц, день, час, минута, секунда: %y-%m-%d %H:%i:%s,
Следующее:

mysql> select DATE_FORMAT(now(),'%y-%m-%d %H:%i:%s');
+----------------------------------------+
| DATE_FORMAT(now(),'%y-%m-%d %H:%i:%s') |
+----------------------------------------+
| 17-12-27 20:28:54                      |
+----------------------------------------+
1 row in set (0.00 sec)

3. Добавить/вычесть дату и время
Заказ:
DATE_ADD(date,interval expr unit)
DATE_SUB(date,interval expr unit)
эффект: увеличение/уменьшение даты и времени
Сценарии применения: За день до текущего времени, за несколько минут до. Часто используется для статистики.
пример:

mysql> select date_add(now(),interval 1 day);
+--------------------------------+
| date_add(now(),interval 1 day) |
+--------------------------------+
| 2017-12-28 20:10:17            |
+--------------------------------+
1 row in set (0.00 sec)

Где Дата представляет формат даты, в том числе:
2017-12-27, now() и другие форматы.
expr: Указывает количество.
единица измерения: указывает единицу измерения, поддерживает миллисекунду (микросекунду), секунду (секунду), час (час), день (день), неделю (неделю), год (год) и т. д.

4. Преобразование типов
Заказ:CAST(expr AS type)
эффект: В основном используется для преобразования типа дисплея
Сценарии применения: Преобразование типа дисплея
пример:

mysql> select cast(18700000000 as char);
+---------------------------+
| cast(18700000000 as char) |
+---------------------------+
| 18700000000               |
+---------------------------+
1 row in set (0.00 sec)

Следует отметить, что поддерживаются не все базовые типы данных, поддерживаемые типом, см. предыдущую статью "Разговор о преобразовании типа отображения MySQL".

5. Функция шифрования
Заказ:md5(data)
эффект: используется для шифрования данных
Сценарии применения: Шифрование, некоторые личные данные, такие как номер банковской карты, удостоверение личности и т. Д., Необходимо хранить зашифрованный текст (конечно, не рекомендуется использовать шифрование на уровне базы данных, оно должно быть зашифровано на уровне приложения)
пример:

mysql> select md5("andyqian");
+----------------------------------+
| md5("andyqian")                  |
+----------------------------------+
| 8a6f60827608e7f1ae29d1abcecffc3a |
+----------------------------------+
1 row in set (0.00 sec)

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

Например: (только для демонстрации):

update t_base_user set name=md5(name),updated_time=now() where id=1;

Поддерживаемые функции шифрования:

  1. md5()

  2. des_encrypt (шифрование) / des_decrypt (дешифрование);

  3. sha1()

  4. пароль () и т. д.

Я не буду представлять их здесь по одному. Заинтересованные студенты могут перейти на официальный сайт для получения более подробной информации.

6. Конкатенация строк
Заказ:concat(str,str2,str3)
эффект: объединенные строки
Сценарии применения: объединение строк, например добавление указанной строки в некоторые поля.
пример:

mysql> select concat("andy","qian");
+-----------------------+
| concat("andy","qian") |
+-----------------------+
| andyqian              |
+-----------------------+
1 row in set (0.00 sec)

Эта функция обычно используется чаще, в основном сцена заключается в добавлении определенной строки к некоторым данным. Методы, как показано ниже:

7. Функция JSON (поддерживается только в версии 5.7)

Заказ:json_object(函数)
эффект: преобразовать строку json
Сценарии применения: указать строку json для преобразования данных
пример:

mysql> select json_object("name","andyqian","database","MySQL");
+---------------------------------------------------+
| json_object("name","andyqian","database","MySQL") |
+---------------------------------------------------+
| {"name": "andyqian", "database": "MySQL"}         |
+---------------------------------------------------+
1 row in set (0.00 sec)

который включает json_array:

mysql> select json_array("name","andyqian","database","MySQL");
+--------------------------------------------------+
| json_array("name","andyqian","database","MySQL") |
+--------------------------------------------------+
| ["name", "andyqian", "database", "MySQL"]        |
+--------------------------------------------------+
1 row in set (0.00 sec)

json_valid(), чтобы определить, является ли это строкой json:

select json_valid('{"name": "andyqian", "database": "MySQL"}');

1, когда это допустимая строка json.
0, когда недопустимая строка json.
Есть еще много методов, которые не будут демонстрироваться по одному.

8. Агрегатные функции
Заказ:sum(),count(),avg(),max(),min()
эффект: Статистика, Среднее, Максимальное, Минимум
Сценарии применения: Этот тип функций очень распространен и в основном используется для статистики данных, а также подходит для оптимизации SQL.
пример:

mysql> select max(id) from t_base_user;
+---------+
| max(id) |
+---------+
|       2 |
+---------+
1 row in set (0.00 sec)

Вот небольшой трюк, если первичный ключ последовательно увеличивается, когда вам нужно, сколько пользователей, вы можете использовать функцию max(id) вместо count(*).

9. distinct()
Заказ:distinct
эффект: дедупликация
Сценарии применения: Когда требуется тип статистики, статус и дискриминация.
пример:

mysql> select count(distinct(name))/count(*) from t_base_user;
+--------------------------------+
| count(distinct(name))/count(*) |
+--------------------------------+
|                         0.6667 |
+--------------------------------+
1 row in set (0.00 sec)

Выше приведен пример расчета степени дискриминации.Если вы не поняли, то можете обратиться к предыдущей статье "Напишите индекс MySQL

Наконец:Спокойной ночи всем!

Связанное чтение:

Говоря о структуре таблицы MySQL

Разговор о преобразовании типа отображения MySQL

Разговор о типе данных MySQL JSON

Говоря о MySQL Online DDL (Часть 2)

 

这里写图片描述

Отсканируйте код, чтобы следовать ему, и добивайтесь прогресса вместе

личный блог:www.andyqian.com