Sql不常见关键字提升
一、前言
Sql是最重要的关系数据库
<https://baike.baidu.com/item/%E5%85%B3%E7%B3%BB%E6%95%B0%E6%8D%AE%E5%BA%93>
操作语言,现在基本上任何与数据库相关的操作都离不开sql。所以说sql功能是很强大的。
我们常用的sql关键字不外乎 group by;in; where; from; update……等,这些关键字有时组成sql的基础。
但是Sql还有一些你不常用的关键字,他们也有各自的作用,并且作用大到你难以想象,有时候应用了这些关键字,你的效率可能会提高好几倍。
下面我就来列一些不常见但是很有用的,欢迎大家补充。
二、不常见关键字及其作用
group_concat()的使用(连接字段)
group_concat一般会与group by 联合使用意思是将分组的列拼成一个字符串默认以特定的符号(默认逗号)隔开,形成一个新的字段。
还有分隔符还可以自定义,默认是以“,”作为分隔符,若要改为“|||”,则使用SEPARATOR来指定。
mysql> SELECT student_id, GROUP_CONCAT(courses_id SEPARATOR '|||') AS courses
FROM student_courses WHERE student_id=2 GROUP BY student_id;
当然我们也可以通过distinct;order by给新查到的字符串去重和排序。
注意事项
*
当你使用group_concat时连接的字段列类型最好不要是int类型,如果是那就先转换成char类型,否则返回值就不是一个逗号隔开的串而是byte[],可以用自带函数cast()或者convert()转换这两个函数我就不细细介绍了,大家可以自行学习。因为这种函数确实用得太少。
* group_concat连接字段的长度默认是1024个字符,可以使用group_concat_max_len系统变量设置允许的最大长度。 SET
[SESSION | GLOBAL] group_concat_max_len = 102400;允许102400个字符。
LCASE()的使用(将字段值转换为小写)
lcase()是将函数中的值全部转化为小写。
UCASE()的使用(将字段值转换为大写)
ucase()是将函数中的值全部转化为小写。
MID()的使用(截取字符串中部分)
SUBSTRING_INDEX()的使用(寻找并截取字符串)
SUBSTRING()的使用(截取字符串中部分到结束)
CONCAT()的使用(改变链接字符串)
ROUNF()的使用(把数值舍入为指定的位数)
TOP的使用(选取前多少条记录)
LEFT();RIGHT()的使用(字符串排序)
三、备注赠言
1.现在我能想到的细节就这么点,后续会补充的。也欢迎大家留言提示我补充。
热门工具 换一换