系统运维系列 之MySQL部分学习整理2
Posted 琅晓琳
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了系统运维系列 之MySQL部分学习整理2相关的知识,希望对你有一定的参考价值。
1 字符函数使用
举例:
CONCAT_WS相比于CONCAT可以简化语句
SELECT CONCAT(id,’-’,age) AS path FROM user;
SELECT CONCAT_WS(’-’,id,age) AS path FROM user;
SELECT FORMAT(id,3) AS num FROM user;
SELECT LEFT(‘abcdef’,2); —> ab
举例:
SELECT LENGTH(TRIM(’ ABC ‘)); —> 3
删除前面和后面的?号:
SELECT TRIM(LEADING ‘?’ FROM ‘???ABC??’) —> ABC??
SELECT TRIM(TRAILING ‘?’ FROM ‘???ABC??’) —> ???ABC
SELECT TRIM(BOTH ‘?’ FROM ‘???ABC??’) —> ABC
删除字符串中的?号:
SELECT REPLACE(TRIM(BOTH ‘?’ FROM ‘???AB?C??’),’?’,’’);
字符串截取:
SELECT SUBSTRING(‘ABCDEF’,-3); —> DEF
如果字段中有‘AB%CD’,需要模糊查询此字段:
SELECT * FROM tab1 WHERE name LIKE ‘%1%%’ ESCAPE 1; //不在解析
2 数值运算符与函数
修改:幂运算 —> POWER
举例:
SELECT CEIL(3.001); —> 4
SELECT 10 DIV 3; —> 3
SELECT FLOOR(3.001); —> 3
SELECT TRUNCATE(123.5672,2) —> 123.56
SELECT TRUNCATE(123.5672,-1) —> 120
SELECT TRUNCATE(123.5672,-2) —> 100
SELECT TRUNCATE(123.5672,-3) —> 0
3 比较运算符与函数
举例:
SELECT 123 BETWEEN 122 AND 200; —> 1(是)
SELECT NULL IS NULL; —> 1
SELECT ‘NULL’ IS NULL; —> 0
4 时间日期函数
举例:
SELECT NOW();
SELECT DATE_ADD(‘2020-11-20’,INTERVAL 300 DAY);
SELECT DATE_ADD(‘2020-11-20’,INTERVAL -300 DAY);
SELECT DATE_ADD(‘2020-11-20’,INTERVAL 3 YEAR);
SELECT DATEDIFF(‘2020-11-20’,‘2019-11-20’);
Y和y:Y四位数的年,y代表两位数的年
SELECT DATE_FORMAT(‘2020-11-20’,’%m/%d/%Y’);
5 聚合函数
举例:
SELECT * FROM tab1 WHERE price=(SELECT MAX(price) FROM tab1); —> TRUE
SELECT id,MAX(price) FROM tab1; —> FALSE
6 加密函数
MD5()函数:
SELECT MD5(‘123456’);
7 自定义函数
7.1 两个必要条件:
函数可以返回任意类型的值,同样可以接收这些类型的参数。
7.2 语法:
7.3 关于函数体:
举例:
无参函数
CREATE FUNCTION myDate()
RETURNS VARCHAR(30)
RETURN DATE_FORMATE(NOW(),’%Y年%m月%d日 %H点%i分%s秒’);
调用:SELECT myDate();
有参函数
CREATE FUNCTION myAve(num1 SMALLINT UNSIGNED,num2 SMALLINT UNSIGNED)
RETURNS FLOAT(10,2) UNSIGNED
RETURN (num1 + num2) / 2;
调用:SELECT myAve(50,80);
具有复合结构函数体的自定义函数
作用:插入数据并返回id号
CREATE FUNCTION add_class(class VARCHAR(20))
RETURNS INT UNSIGNED
BEGIN
INSERT class(className) VALUES(class);
RETURN LAST_INSERT_ID();
END
//
调用:
DELIMITER ; (更改执行符号的命令)
SELECT add_class(‘Python’);
参考资料:
https://www.bilibili.com/video/BV19M4y1u7mF?p=35&spm_id_from=pageDriver 搭建mysql数据存储架构
以上是关于系统运维系列 之MySQL部分学习整理2的主要内容,如果未能解决你的问题,请参考以下文章