MySQL(6) 之 单行函数

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/z_x_Qiang/article/details/84797672

单行函数

概念: 类似java中的方法,将一组逻辑语句封装到方法体中,对外暴露方法名

好处:1.隐藏实现细节;2、提高diam的重要性

分类:1.单行函数  concat、length、ifnull

           2.分组函数  统计中使用,又称统计函数,聚合函数,组函数;

1.单行函数


# 1.字符函数


# 1.1 length:一个字母是一个字节,
# 如果一个汉字三个字节(utf8)
# 如果是gbk的话汉字占两个字节
SELECT LENGTH('张无敌');

# 1.2 concat 字符拼接函数
SELECT CONCAT(last_name,'-',first_name) FROM employees;

# 1.3 upper,lower 大小写转换;
SELECT UPPER('hello');
SELECT LOWER('HELLO');

# 1.4 substr
# 在mysql中索引是从1开始数的;
# 7是从7位置截取;
SELECT SUBSTR('李莫愁爱上了陆展元',7) outname;
# 1是开始位置,3是截取长度;
SELECT SUBSTR('李莫愁爱上了陆展元',1,3) outname;

# 1.5 instr (返回字串在长串中第一次起始索引,如果没有返回0)
SELECT INSTR('杨不悔爱上了殷六侠','殷六侠') AS output;

# 1.6 trim(去除头和尾)
SELECT TRIM('   asdfasdf             ') AS output;
# 去掉字符串头尾的'-'
SELECT TRIM('-'FROM'--------HHHH-------') AS output;

# 1.7 lpad rpad(指定长度 指定字符 左右填充 )
# 如果长度小于原本字符串的长度,会截断字符串;
SELECT LPAD('殷素素',10,'*') AS output;

# 1.8 replace 替换
SELECT REPLACE ('张 wudi','张','李');

#数学函数


# 1.round 四舍五入
SELECT ROUND (1.23);
# 小数点后保留两位;
SELECT ROUND (1.234,2);

# 2. ceil  向上取整;2
SELECT CEIL(1.34);

# 3. floor 向下取整 -4
SELECT FLOOR(-3.45);

# 4.truncate 截断 1.2
SELECT TRUNCATE (1.299,1);

# 5.mode 取余数
SELECT MOD(10,3);
SELECT 10%3;

# 日期函数


# 1. 返回当前系统日期+时间;
SELECT NOW();

# 2. 返回当前系统日期;
SELECT CURDATE();

# 3. 返回当前系统时间;
SELECT CURTIME();
# 4.自定义日期 年,月,日,时,分 ,秒
SELECT YEAR(NOW()) 年 ,MONTH(NOW()) 月;

# 5.str_to_date() 将字符串转成日期类型
SELECT STR_TO_DATE('1998-8-4','%Y-%c-%d') AS riqi;

# 6. date_format 将日期转换成字符串
SELECT DATE_FORMAT(NOW(),"%y年/%m月/%d日");
SELECT last_name,DATE_FORMAT(hiredate,"%y年/%m月/%d日") FROM employees;

# 其他函数

SELECT VERSION();
SELECT DATABASE();
SELECT USER();

# 流程控制函数


# 1. if 函数,  if else
SELECT  IF(10<5,'da','xiao');
SELECT last_name,IF(commission_pct IS NULL,'hehe','haha') 备注 FROM employees;

# 2.case 函数的使用
SELECT 
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;

# 3.case 的使用二
/*
case (case 后面不加东西)
when 条件1 then ...
when 条件2 then ...
else ...
end 
*/
SELECT
CASE
WHEN salary>10000 THEN 'c'
WHEN salary>15000 THEN 'b'
WHEN salary>20000 THEN 'a'
ELSE 'd'
END AS 工资级别
FROM employees;

猜你喜欢

转载自blog.csdn.net/z_x_Qiang/article/details/84797672