Эта статья была впервые опубликована в личном публичном аккаунте 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;
Поддерживаемые функции шифрования:
-
md5()
-
des_encrypt (шифрование) / des_decrypt (дешифрование);
-
sha1()
-
пароль () и т. д.
Я не буду представлять их здесь по одному. Заинтересованные студенты могут перейти на официальный сайт для получения более подробной информации.
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