做者:就叫易易好了 日期:2020/11/1
往期:
一、mysql学习笔记(一)–基本操做
二、MySQL学习笔记(二)—条件查询,模糊查询,排序查询mysql
函数的做用:web
一、隐藏了实现细节sql
二、提升代码的重用性数据库
调用方法:svg
SELECT函数
函数名(实参列表)学习
FROM.net
表code
分类:xml
一、单行函数
字符函数,数学函数,日期函数,流程控制函数,其余函数
如:concat,length,ifnull等等
二、分组函数
功能:作统计使用,又称统计函数,聚合函数,组函数
做用:用于获取值的字节个数 SELECT LENGTH('bill'); 返回值为4 SELECT LENGTH('易小勇') 返回值为9,由于一个汉字占三个字节 注释:utf-8字符集下 默认一个字母占1个字节,一个汉字占3个字节
做用:用于拼接字符串 SELECT CONCAT(last_name,'_',first_name) FROM employees; 此时姓名链接起来了,而且中间有一个下划线
upper函数做用:将小写字母变成大写 SELECT UPPER('bill'); 返回值为BILL lower函数的做用:将大写字母变成小写 SELECT LOWER('CANdY') 返回值为candy
#案例:将姓变大写,名变小写,而后拼接 SELECT CONCAT(UPPER(last_name),LOWER(first_name)) FROM employees;
做用:截取字符串 #截取从指定索引处后面的全部字符 SELECT SUBSTR('我是社会主义接班人',7) AS 截取部分; 此时返回值是“接班人” #截取从指定索引处指定字符长度的字符 SELECT SUBSTR('我是社会主义接班人',3,2) AS 截取部分; 此时返回值是“社会”,这条语句中,3表明起始位置,2表明截取长度 注意:MySQL中索引是从1开始的,好比“接”是第七个字,因此是7而不是6
#案例:将姓名首字符大写,其余字符小写而后用_拼接 SELECT CONCAT(UPPER(SUBSTR(last_name,1,1)),'_',LOWER(SUBSTR(last_name,2))) FROM employees; 这波娃套的还能够撒(手动狗头)
做用:返回子串第一次出现的索引,若是找不到,返回0 SELECT INSTR('天上掉下个猪八戒','猪八戒') AS 起始位置; 返回值为6
SELECT TRIM(' ycy ') AS out_put; 返回值为'ycy',去掉了先后的空格 SELECT TIRM('a' FROM 'aaaa哈哈哈aaa哈哈哈aaaa') AS out_put; 返回值为‘哈哈哈aaa哈哈哈’,由于去掉的是先后的a
是lpad不是ipad!
做用:用指定的字符实现左填充的指定长度 SELECT LPAD('橙留香',9,'^') AS out_put; (此时9为总字符个数,^制定的字符。 返回值为‘^^^^^^橙留香’ RPAD函数也是相同的用法
做用:将指定的字符替换为另一组指定的字符 SELECT REPLACE('美羊羊爱上了喜羊羊','喜羊羊','沸羊羊') AS out_put; 返回值为'美羊羊爱上了沸羊羊'
做用:四舍五入 SELECT ROUND(1.45); 返回值为1; SELECT ROUND(1.565,2); 返回值为1.57; 括号里的意思就是保留小数点后面5位;
做用:向上取整,返回>=该参数的最小整数 SELECT CEIL(1.03); 返回值为2; SELECT CEIL(-1.03); 返回值为-1
做用:向下取整,返回<=该参数的最大整数 SELECT FLOOR(-9.99); 返回值为-10;
做用:截断小数点后面的数字 SELECT TRUNCATE(1.77,1); 返回值为1.7;
做用:取余 SELECT MOD(14,3); 返回值为2; 等同于SELECT 14%3;
做用:返回当前系统的日期和时间 SELECT NOW(); 返回值为2020-11-01 17:28:24 (11月第一天呢!)
这里就不演示了(手动狗头)
SELECT YEAR(NOW()); 获取年份 SELECT MONTH(NOW());获取月份 ......
SELECT IF(15<6,'是的','放p'); 返回值为放p
2.1 第一种使用方法:
咱们基于myemployees数据库,来假设一个案例: #案例:查询员工的工资,要求 部门号=30,显示工资为1.1倍 部门号=40,显示工资为1.2倍 部门号=50,显示工资为1.3倍 其余部门的工资所有为原工资 SELECT salary AS 原始工资,department_id, CASE department_id WHEN 30 THEN salary*1.1 WHEN 40 THEN salary*1.2 WHEN 50 THEN salary*1.3 ELSE salary END AS 新工资 FROM employees;
2.2 第二种使用方法
#案例:查询员工的工资状况 SELECT salary, CASE WHEN salary>20000 THEN 'A' WHEN salary>15000 THEN 'B' WHEN salary>10000 THEN 'C' ELSE 'D' END AS 工资级别 FROM employees;