MySQL学习笔记-函数

it2023-05-03  71

目录

函数

字符函数数学函数日期函数流程控制函数

函数

分类:

分组函数:将一组值进行统计,得出一个值。单行函数:将一个值进行处理,得出一个值。 调用语句: select 函数名(实参列表);

分组函数: 分组函数这一块在我的另一篇文章MySQL学习笔记-查询中讲解过,这里不做赘述,有兴趣的同学可以过去看一下。

单行函数:

字符函数数学函数日期函数流程控制函数

1. 字符函数

常用字符函数:

length:获取字节长度SELECT LENGTH('abc张三'); concat:拼接字符串upper:将小写字符转换成大写lower:将大写字符转换成小写SELECT UPPER('ABC'); SELECT LOWER('ABC'); #案例:将姓转大写,名转小写,然后拼接 SELECT CONCAT(UPPER(last_name),' ',LOWER(first_name)) 姓名 FROM employees; instr:获取字串第一次出现的索引,索引从1开始,若找不到则返回0SELECT INSTR('张三丰爱上了三丰的郭襄','杨过'); substr:截取一段字符串SELECT SUBSTR('郭襄爱上了杨过',6); SELECT SUBSTR('郭襄爱上了杨过',1,2); lpad:左填充SELECT LPAD('尹志平爱上了',5,'*'); rpad:右填充trim:去除前后空格或特殊字符SELECT LENGTH(TRIM(' 小 龙 女 ')) 美女; SELECT TRIM('a' FROM 'aaaaaaaqqqqqq小qq龙q女qqqqqqqqqqqqqq') 美女;

2. 数学函数

常用的数学函数:

ceil:#向上取整,返回>=该参数的最小整数 SELECT CEIL(-1.0); floor:#向下取整,返回<=该参数的最大整数 SELECT FLOOR(-1.0); round:#四舍五入,先按绝对值四舍五入,然后加正负号 SELECT ROUND(-1.56); SELECT ROUND(1.537,1); rand:#随机数,返回0-1之间的小数,不包含1 SELECT RAND(); #返回50-100 a——b floor(rand()*(b-a+1)+a) SELECT CEIL(RAND()*50+50); SELECT FLOOR(RAND()*51+50); truncate:#截断 #返回1.9 SELECT TRUNCATE(1.99,1); #返回314 SELECT TRUNCATE(314.15,0); #返回310 SELECT TRUNCATE(314.15,-1);

3. 日期函数

常用的日期函数:

now#获取当前日期 SELECT NOW(); curdate#获取时间,没有日期 SELECT CURTIME(); yearmonthmonthnameday#获取日期的指定部分 SELECT YEAR(NOW()); SELECT MONTH(NOW()); SELECT MONTHNAME(NOW()); SELECT DAY(NOW()); SELECT CONCAT(YEAR(NOW()),'年',MONTH(NOW()),'月',DAY(NOW()),'日') 日期; datediff#判断两个日期的差别天数,前者比后者大,返回正数,小返回负数,相等返回0. SELECT DATEDIFF(NOW(),'2022-8-8'); SELECT DATEDIFF('2017-9-25',NOW());

4. 流程控制函数

常用的流程控制函数:

if …SELECT IF(100>9,'不错呦','不够大') 备注; case when …#语法: #CASE #WHEN 条件1 THEN 显示的值1 #WHEN 条件2 THEN 显示的值2 #... #ELSE 显示的值n #END #类似于: #IF(条件1){ # 语句1; #}ELSE IF(条件2){ #}ELSE{ # #} #案例: SELECT salary, CASE WHEN salary>20000 THEN '购买汽车' WHEN salary>10000 THEN '购买手机' WHEN salary>5000 THEN '购买pad' ELSE '购买棒棒糖' END 购买资格 FROM employees; case … when …#语法: # #CASE 字段或表达式 #WHEN 值1 THEN 显示的值1 #WHEN 值2 THEN 显示的值2 #... #ELSE 显示的值n #END # #类似于: #switch(变量或表达式){ # # CASE 值1 :语句1;break; # ... # DEFAULT:语句n;break; # #} #案例:查询部门和对应的级别 SELECT department_id, CASE department_id WHEN 10 THEN 'A' WHEN 20 THEN 'B' WHEN 30 THEN 'C' WHEN 50 THEN 'D' END 级别 FROM employees;
最新回复(0)