一起来学MySQL—常用内置函数

单行函数

字符函数

函数名作用
concat拼接字符串。注意:NULL 和 任何字符串拼接,最后的结果都是 NULL
substr截取字符串。索引从 1开始
upper变大写
lower变小写
replace替换
length获取 字节长度
trim默认是去除前后空格,也可以去除指定的字符:TRIM (‘H’ FROM ‘HelloWorld’),结果为 elloWorld
ltrim去除左边空格
rtrim去除右边空格
lpad左填充,LPAD(24000,10,’*’) 结果为 *****24000
rpad右填充,RPAD(24000,10,’*’) 结果为 24000*****
instr获取子串第一次出现的索引

数学函数

函数名作用
ceil向上取整
floor向下取整
round四舍五入
truncate截断
mod取余
rand获取随机数,返回 0-1 之间的小数

日期函数

函数名作用
now返回当前日期+时间
curdate返回当前日期
curtime返回当前时间
year返回年
month返回月
day返回日
hour小时
minute分钟
second
date_format将日期转换成字符,DATE_FORMAT(2018/6/6,%Y 年%m 月%d 日) 2018 年06 月06 日。注意:转换成的字符串就是自己定义的格式
str_to_date将字符转换成日期,STR_TO_DATE(‘9-13-1999’,’%m-%d-%Y’) 1999-09-13。注意:DATE 的格式要和 STR 的格式一一对应才能转换
datediff返回两个日期相差的天数
monthname以英文形式返回月

在这里插入图片描述

分组函数

函数名作用
max最大值
min最小值
sum求和
avg平均值
count计算个数

特点:

  • 以上分组函数都忽略 null(count(*) 除外)
  • 都可以搭配 distinct 使用,实现去重的统计
    select sum(distinct 字段) from 表;

注意:

  • sum 和 avg 一般用于处理数值型,max、min、count 可以处理任何数据类型。
  • 对于 count() 函数:MyISAM 存储引擎,count(*) 效率最高;InnoDB 存储引擎,count(*) 和 count(1) 效率 > count(字段)

流程控制函数

  • if() 函数
    类似于三元表达式,if(条件表达式,表达式1,表达式2):如果条件表达式成立,返回表达式1,否则返回表达式2

  • case 语句
    case语句的使用有两种情况,一种是等值判断,一种是条件判断。

case情况1:等值判断

case 变量 或 表达式 或 字段
when 常量1 then1
when 常量2 then2
...
else 值n
end

示例:查询员工的工资,要求:部门号=30,显示的工资为1.1倍,部门号=40,显示的工资为1.2倍,部门号=50,显示的工资为1.3倍,其他部门,显示的工资为原工资

SELECT salary 原始工资,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;

case情况2:条件判断

case 
when 条件1 then1
when 条件2 then2
...
else 值n
end

示例:查询员工的工资的情况:如果工资>20000,显示A级别;如果工资>15000,显示B级别
;如果工资>10000,显示C级别;否则,显示D级别

SELECT salary,
CASE 
WHEN salary>20000 THEN 'A'
WHEN salary>15000 THEN 'B'
WHEN salary>10000 THEN 'C'
ELSE 'D'
END AS 工资级别
FROM employees;

其他函数

函数名作用
version当前数据库服务器的版本
database当前打开的数据库
user当前用户
password(‘字符’)返回该字符的密码形式
md5(‘字符’)返回该字符的 md5 加密形式
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值