MySQL学习笔记(三)-MySQL常见函数

MySQL学习笔记(三)-MySQL常见函数

做者:就叫易易好了
日期:2020/11/1

往期:
一、mysql学习笔记(一)–基本操做
二、MySQL学习笔记(二)—条件查询,模糊查询,排序查询mysql

函数的做用:web

一、隐藏了实现细节sql

二、提升代码的重用性数据库

调用方法:svg

SELECT函数

​ 函数名(实参列表)学习

FROM.net

​ 表code

分类:xml

一、单行函数

字符函数,数学函数,日期函数,流程控制函数,其余函数

如:concat,length,ifnull等等

二、分组函数

功能:作统计使用,又称统计函数,聚合函数,组函数

1、字符函数

一、length函数

做用:用于获取值的字节个数

SELECT LENGTH('bill');
返回值为4

SELECT LENGTH('易小勇')
返回值为9,由于一个汉字占三个字节

注释:utf-8字符集下
默认一个字母占1个字节,一个汉字占3个字节

二、concat函数

做用:用于拼接字符串

SELECT 
    CONCAT(last_name,'_',first_name)
FROM
    employees;
此时姓名链接起来了,而且中间有一个下划线

三、upper,lower函数

upper函数做用:将小写字母变成大写

SELECT 
    UPPER('bill');
返回值为BILL

lower函数的做用:将大写字母变成小写
SELECT
    LOWER('CANdY')
返回值为candy
#案例:将姓变大写,名变小写,而后拼接
SELECT
     CONCAT(UPPER(last_name),LOWER(first_name))
FROM
     employees;

四、substr/substring函数

做用:截取字符串

#截取从指定索引处后面的全部字符
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;
这波娃套的还能够撒(手动狗头)

五、instr函数

做用:返回子串第一次出现的索引,若是找不到,返回0

SELECT INSTR('天上掉下个猪八戒','猪八戒')  AS  起始位置;
返回值为6

六、trim函数

SELECT TRIM('       ycy          ')  AS  out_put;
返回值为'ycy',去掉了先后的空格

SELECT TIRM('a'  FROM 'aaaa哈哈哈aaa哈哈哈aaaa') AS out_put;
返回值为‘哈哈哈aaa哈哈哈’,由于去掉的是先后的a

七、lpad函数

是lpad不是ipad!

做用:用指定的字符实现左填充的指定长度

SELECT LPAD('橙留香',9,'^')  AS out_put;
(此时9为总字符个数,^制定的字符。
返回值为‘^^^^^^橙留香’
RPAD函数也是相同的用法

八、replace函数

做用:将指定的字符替换为另一组指定的字符

SELECT REPLACE('美羊羊爱上了喜羊羊','喜羊羊','沸羊羊') AS out_put;
返回值为'美羊羊爱上了沸羊羊'

2、数字函数

一、round函数

做用:四舍五入
SELECT ROUND(1.45);
返回值为1;

SELECT ROUND(1.565,2);
返回值为1.57;
括号里的意思就是保留小数点后面5位;

二、ceil函数

做用:向上取整,返回>=该参数的最小整数
SELECT CEIL(1.03);
返回值为2;

SELECT CEIL(-1.03);
返回值为-1

三、floor函数

做用:向下取整,返回<=该参数的最大整数
SELECT FLOOR(-9.99);
返回值为-10;

四、truncate函数

做用:截断小数点后面的数字
SELECT TRUNCATE(1.77,1);
返回值为1.7;

五、mod函数

做用:取余
SELECT MOD(14,3);
返回值为2;
等同于SELECT 14%3;

3、日期函数

一、now函数

做用:返回当前系统的日期和时间
SELECT NOW();
返回值为2020-11-01 17:28:24

(11月第一天呢!)

二、curdata函数

这里就不演示了(手动狗头)

三、获取指定的日期部分

SELECT YEAR(NOW()); 获取年份
SELECT MONTH(NOW());获取月份
......

4、流程控制函数

一、if函数

SELECT IF(15<6,'是的','放p');
返回值为放p

二、case函数

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;