SQL常用的内置函数

SQL函数基本概念

函数通常分为内置函数自定义函数,函数的作用是将经常使用的代码封装起来,需要的时候直接调用,能提高代码效率和可维护性

SQL中的函数一般是在数据上执行的,可以很方便的转换和处理数据

SQL的内置函数分为四类:算数函数字符串函数日期函数转换函数


目录


算术函数

ABS():取绝对值
select abs(-2);        结果为2
MOD():取余
select mod(101,3);        结果为2
ROUND():四舍五入为指定的小数位数,两个参数分别为字段数值,小数位数
select round(36.45,1);        结果为36.5

聚焦函数

SUM():返回数值列的和
MAX():返回一列中的最大值
MIN():返回一列中的最小值
AVG():返回数值列的平均值
COUNT():返回匹配指定条件的行数


字符串函数

CONCAT():字符串拼接
select concat('abc',123);        结果为abc123
LENGTH():计算字段的长度,汉字算三个字符,数字或字母为一个字符
select length('您好12ab');        结果为10
CHAR_LENGTH():计算字段的长度,汉字、数字、字母都算一个字符
select char_length('您好12ab');        结果为6
LOWER():将字符串中的字符转化为小写
select lower('ABCd');        结果为abcd
UPPER():将字符串中的字符转化为大写
select upper('abCD');        结果为ABCD
REPLACE():替换函数,三个参数分别为表达式或字段名、想要查找的被替换字符串、替换的目标字符串
select replace('fabcde','abc','12');        结果为f12de
SUBSTRING():截取字符串,三个参数分别为表达式或字段名、开始截取的位置(从1开始),想要截取的字符串长度
select substring('fabcde',1,3);        结果为fab

日期函数

CURRENT_DATE():系统当前日期
select current_date();        结果为2021-08-02
CURRENT_TIME():系统当前时间(无日期)
select current_time();        结果为17:35:47
SYSDATE():系统当前时间(函数执行时的时间)
CURRENT_TIMESTAMP():系统当前时间(日期+时间),同NOW()
NOW():系统当前日期(语句开始执行时的时间,上同)
select sysdate();         结果是2021-08-02 17:36:50
select current_timestamp();        结果是2021-08-02 17:37:00
select now();        结果是2021-08-02 17:37:10
DO_DAYS():返回一个从0年开始到指定日期的天数
select to_days(date(now()));        从0年到2021-08-02的天数,结果为738369
select * from user where to_days(now())-to_days(created_at)<=1;       查询user表中昨天新添加的数据
EXTRACT():抽取具体的年、月、日
select extract(year from now());        结果是2021
select extract(day from now());        结果是2
select extract(hour from now());        结果是17
DATE():返回时间的日期部分
select  date(now());        结果是2021-08-02
YEAR():返回时间的年份部分
select  year('1999-11-02');        结果是1999
MONTH():返回时间的月份部分,后面的都差不多,不一一展示
select  month('2020-12-02');        结果是12
DAY():返回时间的天数部分
HOUR():返回时间的小时部分
MINUTE():返回时间的分钟部分
SECOND():返回时间的秒部分

转换函数

CAST():数据类型转换,参数是一个表达式,表达式通过AS关键词分割了两个参数,分别是原始数据和目标数据类型
select cast(123.1234 as int);        报错,ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'int)' at line 1
select cast(123.1234 as decimal(8,1));        结果为123.1
COALESCE():返回第一个非空数值,空字符串也会被返回
select coalesce(null,' ',1,2);        结果为
select coalesce(null,1,2);        结果为1
  • 3
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值