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`;
全部评论

相关推荐

27届末九,由于是女生,身边人几乎没有就业导向的,自学只能跟着网课,没人指导,很迷茫。下图是我目前的简历,不知道有需要修改的地方吗?求拷打。下面是目前的学习情况:目前算法过完了一遍力扣100和代码随想录,不过不是很熟,面经看了小林coding、JavaGuide,有一些没用过的技术看得不是很明白,掌握得不是很扎实。再加上常年跟黑马网课听思路,真正自己动手写代码的时间很少,这让我一直不敢投简历,总觉得内里空虚。项目没准备好面试相关的问题,简历上相应的考点不熟。如此种种。。。看到很多很多学长学姐大佬们的面经,愈发觉得面试可怕,自己没准备好,总担心自己是不是无望后端开发了。看到牛客很多同届以及更小一届的同学都找到实习了,很希望自己也能找到实习。而自己又好像摸不到后端学习的门路,只能不断赞叹黑马虎哥写的代码真优雅!微服务架构实在巧妙!消息队列、redis、sentinel、nacos、mybatisplus等等的引入都会让我赞叹这些工具的设计者的巧思,以及包括但不限于Java语言的优雅。然而只是停留在了解的程度,并不熟练。我是很希望能够继续深入探索这些知识的,只不过有一大部分时间都花在学校课程上了。我感觉我被困住了,我一方面必须保证我能够有个不错的学业分使我能有我几乎不想选择的读研退路(还有个原因是复习不全我会焦虑考试挂科,因此我会做好全面的准备,而这一步很费时间),一方面在B站学习各种网课,一方面得考虑提升自己并不扎实的算法基础,另一方面还得准备八股面经。这让我有点苦恼,我好像没那么多时间,因为绝大部分时间都花在了复习学校科目中了。我好像处处用时间,但收效甚微。想问问各位大佬是怎么平衡时间的呢?算法、项目和八股是怎么准备的呢?有什么高效的方法吗?谢谢您们花时间阅读我的稿件!
菜菜狗🐶:大胆投,我当时也是害怕面试,投多了发现根本约不到面🤡
投递哔哩哔哩等公司10个岗位
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务