ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

习惯性朴实简单!一起学习MySQL常见单行函数,字符数学日期流程控制

2021-10-11 21:34:59  阅读:199  来源: 互联网

标签:salary CASE 函数 习惯性 WHEN 单行 result MySQL SELECT


文章目录


一、字符函数

在这里插入图片描述
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;

在这里插入图片描述

标签:salary,CASE,函数,习惯性,WHEN,单行,result,MySQL,SELECT
来源: https://blog.csdn.net/m0_46653805/article/details/120699370

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有