MySQL实例精讲单行函数以及字符数学日期流程控制
一、字符函数
1、大小写控制函数
①UPPER()
:转换成大写
SELECT UPPER('Hello');
②LOWER()
:转换成小写
SELECT LOWER('Hello');
2、字符控制函数
①LENGTH()
:获取参数值的字节个数
SELECT LENGTH('叶绿体不忘呼吸aaaa');
②CONCAT()
:拼接字符串
SELECT CONCAT('Hello','世界') AS result;
③SUBSTR()
:截取(MySQL里索引是从1开始的,而不是0)
#从第4个开始截取,截取后面全部 SELECT SUBSTR('我相信光',4);
#从第1个开始截取,截取3个 SELECT SUBSTR('我相信光',1,3);
④INSTR()
:返回子串在主串中第一次出现的索引,如果不存在,则返回0
SELECT INSTR('国足10月13日客战沙特','沙特') AS result;
⑤TRIM()
:去除字符串前后某字符
SELECT TRIM('a' FROM 'aaaaa叶aa绿体aaaaa') AS result;
#去空格 SELECT TRIM(' 叶aa绿体a ') AS result;
⑥LPAD()
:用指定的字符左填充指定长度,RPAD()
则是右填充
SELECT LPAD('叶绿体',9,'a') AS result;
⑦REPLACE()
:替换
SELECT REPLACE('a叶aaa绿体aaaa','a','B') AS result;
二、数学函数
①ROUND()
:四舍五入
#默认保留一位小数 SELECT ROUND(1.62) AS result;
#保留两位小数 SELECT ROUND(1.627,2) AS result;
②CEIL()
:向上取整,返回大于等于该数的最小整数
SELECT CEIL(1.002) AS result;
③FLOOR()
:向下取整,返回小于等于该数的最大整数
SELECT FLOOR(1.002) AS result;
④TRUNCATE()
:截断
SELECT TRUNCATE(1.699,1) AS result;
⑤MOD()
:取余,等价于%
SELECT MOD(10,-3) AS result;
三、日期函数
①NOW():返回当前系统的日期和时间
SELECT NOW();
②CURDATE():返回当前系统日期,不包含时间
SELECT CURDATE();
③CURTIME():返回当前系统时间,不包括日期
SELECT CURTIME();
⑦YREAR()
:获取指定日期字段的年
SELECT YEAR(NOW());
SELECT YEAR('2021-09-30') AS result;
⑧MONTH()
:获取指定日期字段的月,MONTHNAME()
则可以返回月份英文
SELECT MONTH('2021-09-30') AS result;
SELECT MONTHNAME('2021-09-30') AS result;
日,小时,分钟,秒钟都可以同上
⑨STR_TO_DATE()
:将字符按照指定的格式转为日期
#相当于是解析:两个参数格式要匹配 SELECT STR_TO_DATE('9-30 2021','%m-%d %Y') AS result;
⑩DATE_FORMAT()
:将日期转换成字符
#相当于是格式化 SELECT DATE_FORMAT(NOW(),'%Y年%m月%d日') AS result;
四、其他函数
#查看版本 SELECT VERSION(); #查看数据库 SELECT DATABASE(); #查看用户 SELECT USER();
五、流程控制函数
①IF()
:判断,第一个参数是条件,第二个是true的返回,第三个是false的返回
SELECT IF(10>5,'大','小') AS result;
②CASE()
使用一:类似于Java中switch
CASE 要判断的 WHEN 常量1 THEN 语句1;或者要显示的值1 ... ELSE 语句;或者要显示的值 END
示例
#示例为要显示的值,不加‘;' SELECT `last_name`,`salary`,`department_id`, CASE `department_id` WHEN 100 THEN `salary`*(1+0.8) WHEN 90 THEN `salary`*(1+0.6) WHEN 80 THEN `salary`*(1+0.4) WHEN 70 THEN `salary`*(1+0.2) ELSE `salary` END AS 最终工资 FROM employees;
③CASE()
使用一:类似于Java中多重if
CASE WHEN 条件1 THEN SELECT 语句1;或者要显示的值1 ... ELSE 语句;或者要显示的值 END
示例
#示例为要显示的值,不加‘;' SELECT `last_name`,`salary`, CASE WHEN `salary`>20000 THEN 'A级别' WHEN `salary`>15000 THEN 'B级别' WHEN `salary`>10000 THEN 'C级别' ELSE 'D级别' END AS 等级 FROM employees;
上一篇:Navicat Premiun远程连接MySQL报错10038解决方案
栏 目:Mysql
下一篇:没有了
本文标题:MySQL实例精讲单行函数以及字符数学日期流程控制
本文地址:http://www.codeinn.net/misctech/212949.html