SQL语言---常见函数

#常见函数

1、自定义方法(函数)
2、调用方法(函数)☆

常见函数:
	字符函数
		concat
		substr
		length
		char_length
		upper
		lower
		trim
		left
		right
		lpad
		rpad
		instr
		strcmp
	数学函数
		abs
		ceil
		floor
		round
		truncate
		mod
	日期函数
		now
		curtime
		curdate
		datediff
		date_format
		str_to_date
	流程控制函数
		if
		case

#一、字符函数
1、CONCAT 拼接字符

SELECT CONCAT('hello',first_name,last_name) 备注 FROM `employees`;

2、LENGTH 获取字节长度

SELECT LENGTH('hello,一二');

3、CHAR_LENGTH 获取字符个数

SELECT CHAR_LENGTH('hello,一二');

4、SUBSTRING 截取子串

/* 注意:起始索引从1开始 substr(str,起始索引,截取的字符长度) substr(str,起始索引) */
SELECT SUBSTR('已给我里giao',1);
SELECT SUBSTR('已给我里giao',2,4);

5、INSTR 获取字符第一次出现的索引

SELECT INSTR('已给我里giao','giao');

6、TRIM去前后指定的字符,默认空格

SELECT TRIM(' 哈 哈 '); 
SELECT TRIM('e'FROM 'eee哈哈哈哈eee');

7、LPAD/RPAD 左填充/右填充
SELECT LPAD('哈哈哈',6,'6');
SELECT RPAD('啊哈哈',6,'6');

8、UPPER/LOWER 变大写/变小写
SELECT UPPER('a');
SELECT LOWER('A');

9、STRCMP 比较两个字符大小

SELECT STRCMP ('abc','efc');

10、LEFT/RIGHT 截取子串
SELECT LEFT('哈哈哈额',1);
SELECT RIGHT('哈哈嗯嗯',2);

#二、数学函数

1、ABS 绝对值
SELECT ABS(-2);

2、CEIL 向上取整 返回>=该参数的最小整数
SELECT CEIL(-1.66);

3、FLOOR:向下取整,返回<=该参数的最大整数
SELECT FLOOR(-1.66);

4、ROUND 四舍五入
SELECT ROUND(1.5156498);

5、TRUNCATE 截断(小数点往后X位)
SELECT TRUNCATE(1.56465,2);

6、MOD 取余
SELECT MOD(-10,3);

#三、日期函数

1、NOW
SELECT NOW();

2、CURDATE
SELECT CURDATE();

3、CURTIME
SELECT CURTIME();

4、DATEDIFF
SELECT DATEDIFF('1998-4-14','2020-4-14');

5、DATE_FORMAT
SELECT  DATE_FORMAT(`hiredate`,'%Y年%M月%d日 %H小时%i分钟%s秒')
FROM `employees`;

6 、 STR_TO_DATE按指定格式解析字符串的日期类型 
SELECT 
  * 
FROM
  `employees` 
WHERE `hiredate`<STR_TO_DATE('3/15 1998', '%m/%d %Y') ;

#流程控制函数

1、IF 函数

SELECT IF(123>145,'ture','false');

2、CASE 函数

情况1:类似于switch语句,可以实现等值判断
CASE 表达式
WHEN 值1 THEN 结果1
WHEN 值2 THEN 结果2
...
ELSE 结果
END

#案例
SELECT `department_id`,`salary`,
CASE `department_id`
WHEN 30 THEN `salary`*2
WHEN 50 THEN `salary`*3
WHEN 60 THEN `salary`*4
ELSE `salary`
END newSalary
FROM `employees`;

情况2:类似于多重IF语句,实现区间判断
CASE 
WHEN 值1 THEN 结果1
WHEN 值2 THEN 结果2
...
ELSE 结果n
END

#案例
SELECT salary,
CASE 
WHEN salary>20000 THEN 'A'
WHEN salary>15000 THEN 'B'
WHEN salary>10000 THEN 'C'
ELSE 'D'
END  grade
FROM `employees`;
全部评论

相关推荐

2024-12-06 10:44
东北财经大学 运营
在拧螺丝的西红柿很热情:工作量数据化,你的实习我只看到了一个30%,比如总浏览量十万加,同比增长20%,用户复购率达到70%等等,自己根据你当时的工作情况挖掘吧
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务