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

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

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

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

函数的作用:

1、隐藏了实现细节

2、提高代码的重用性

调用方法:

SELECT

​ 函数名(实参列表)

FROM

​ 表

分类:

1、单行函数

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

如:concat,length,ifnull等等

2、分组函数

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

一、字符函数

1、length函数

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

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

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

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

2、concat函数

作用:用于拼接字符串

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

3、upper,lower函数

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

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

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

4、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;
这波娃套的还可以撒(手动狗头)

5、instr函数

作用:返回子串第一次出现的索引,如果找不到,返回0

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

6、trim函数

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

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

7、lpad函数

是lpad不是ipad!

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

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

8、replace函数

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

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

二、数字函数

1、round函数

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

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

2、ceil函数

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

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

3、floor函数

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

4、truncate函数

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

5、mod函数

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

三、日期函数

1、now函数

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

(11月第一天呢!)

2、curdata函数

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

3、获取指定的日期部分

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

四、流程控制函数

1、if函数
SELECT IF(15<6,'是的','放p');
返回值为放p

2、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;
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值