MySQL函数列表

MySQL中,提供了丰富的函数,简化了用户对数据的操作
包括数学函数、字符串函数、日期和时间函数、条件判断函数、加密函数等

数学函数

ABS(x),返回x的绝对值
SQRT(x),返回x的非负2次方根
MOD(x,y),返回x被y除后的余数
CEILING(x),返回不小于x的最小整数
FLOOR(x),返回不大于x的最大整数
ROUND(x,y),对x进行四舍五入操作,小数点后保留y位
TRUNCATE(x,y),舍去x中小数点y位后面的数
SING(x),返回x的符号,-1、0或者1

字符串函数

LENGTH(str),返回字符串str的长度
CONCAT(s1,s2,……),返回一个或者多个字符串连接,产生的新的字符串
TRIM(str),删除字符串两侧的空格
REPLACE(str,s1,s2),使用字符串s2,替换字符串str中所有的字符串s1
SUBSTRING(str,n,len),返回字符串str的子串,起始位置为n,长度为len
REVERSE(str),返回字符串反转后的结果
LOCATE(s1,str),返回子串s1在字符串str中的起始位置

日期和时间函数

CURDATE()——获取系统当前日期
CURTIME()——获取系统当前时间
SYSDATE()——获取当前系统日期和时间
TIME_TO_SEC()——返回将时间转换成秒的结果
ADDDATE()——执行日期的加运算
SBUDATE()——执行日期的减运算
DATE_FORMAT()——格式化输入日期和时间值

条件判断函数

IF(expr,v1,v2)——如果expr表达式,为true返回v1,否则返回v2
IFNULL(v1,v2)——如果v1不为NULL,返回v1,否则返回v2
CASE expr WHEN v1 THEN r1[WHEN v2 THEN r2……][ELSE m] END——如果,expr值等于v1,v2等,则返回对应位置THEN后面的结果,否则,返回ELSE后的结果rn

加密函数

MD(str)——对字符串str,进行MD5加密
ENCODE(str,pwd_str)——使用pwd作为密码,加密字符串str
DECODE(str,pwd_str)——使用pwd作为密码,解码字符串str

查询student表中所有记录,将各个字段的值使用下划线连接起来

这里写图片描述

可以看到,使用CONCAT函数,将student表中各个字段的值,使用下划线连接起来了。
注意,CONCAT(str1,str2,……)返回的结果为,连接参数产生的字符串,如果,有任何一个参数为NULL,则返回的值为NULL

查询student表中,id和gender字段值,如果gender字段的值为na,则返回1,如果不为na,则返回0

这里写图片描述

可以看出,gender字段值为na的记录,都返回了1,gender字段值为nv或者NULL的记录,都返回了0

### 关于 MySQL 函数列表及其用法 MySQL 提供了大量的内置函数来支持各种操作需求,这些函数可以分为多个类别,包括字符串处理、日期时间处理、数值计算以及控制流等功能。以下是关于如何查询和使用 MySQL 函数的相关信息: #### 查询 MySQL函数列表 可以通过访问官方文档获取完整的函数列表[^1]。此外,在实际环境中也可以通过以下方式快速查看可用的函数: ```sql SHOW FUNCTION STATUS; ``` 此命令会返回所有存储在 `information_schema` 数据库中的函数状态信息,其中包括名称、类型以及其他元数据。 对于更具体的内置函数详情,则可以直接查阅 `INFORMATION_SCHEMA.Routines` 表格内的记录[^2]: ```sql SELECT ROUTINE_NAME, ROUTINE_TYPE, DATA_TYPE FROM INFORMATION_SCHEMA.ROUTINES WHERE ROUTINE_SCHEMA = 'mysql' AND ROUTINE_TYPE='FUNCTION'; ``` #### 常见分类及实例演示 ##### 字符串函数(String Functions) - **CONCAT**: 将两个或者更多的字符串连接成一个新的字符串。 ```sql SELECT CONCAT('Hello', ' ', 'World') AS Greeting; -- 输出 Hello World ``` - **LOWER & UPPER**: 转换大小写。 ```sql SELECT LOWER('HELLO'), UPPER('hello'); -- hello HELLO ``` ##### 数学运算(Mathematical Operations) - **ROUND**: 对浮点数四舍五入到指定的小数位数。 ```sql SELECT ROUND(123.456, 2); -- 结果为 123.46 ``` - **ABS**: 返回绝对值。 ```sql SELECT ABS(-9), ABS(7); -- 9 和 7 ``` ##### 时间与日期(Date-Time Handling) - **NOW() / CURRENT_TIMESTAMP():** 获取当前的时间戳。 ```sql SELECT NOW(); -- 当前服务器时间 ``` - **DATEDIFF:** 计算两天之间的差值(天数)。 ```sql SELECT DATEDIFF('2023-10-01','2023-09-01'); -- 差距为 30 天 ``` ##### 控制结构(Control Flow Statements) - **IF**: 条件判断语句。 ```sql SELECT IF(1>0,'True','False'); -- True ``` - **CASE WHEN THEN ELSE END:** 更复杂的多分支条件逻辑实现。 ```sql SET @score := 85; SELECT CASE WHEN (@score >= 90) THEN 'A' WHEN (@score BETWEEN 80 AND 89) THEN 'B' ELSE 'C' END AS Grade; ``` 注意某些保留字可能会影响正常建表或命名列名的情况,比如前面提到过的 Usage 属于系统关键词之一[^3],因此建议避免将其作为自定义对象的名字以免引发冲突。 #### 总结 掌握并灵活运用上述各类别的标准SQL函数能够极大提升开发效率和解决问题的能力。同时也要记得定期参考最新版次的手册资料以保持知识体系与时俱进。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值