SQL必知必会知识点汇总

前言

  本篇内容主要总结了【SQL必知必会】当中的一些知识点以及我做题过程当中碰到的一些细节问题。虽然这一块的题目做下来难度不大,非常容易掌握,但这是打基础的一个阶段,所以还是要耐下心来好好学习!!!这一块的内容并没有涉及到很多新的知识点,无非就是对之前几个知识点反复运用罢了,接下来我们就开始归纳!

注意点

ORDER BY 中如果定义了多个字段,则按照字段的先后顺序排序,用英文逗号隔开。

ORDER BY cust_id,order_date DESC

WHERE [NOT ] IN ()

①列名 [NOT] IN(常量1, 常量2,…常量n)

注意:IN后面的括号当中如果是字符串的话,一定要将字符串用单引号 ’ 标注起来; 例如:SELECT * FROM table WHERE uname IN(aa,bb,cc);

注意点

WHERE的用法在ORDER之前

意思就是说ORDER BY 放在 WHERE语句之后

字符串的截取

substring(字符串,起始位置,截取字符数)

参数1:字符串 参数2:截取的起始位置 参数3:截取的字符数量

例如:

SUBSTRING(cust_name,1,2)

表示的含义:取cust_name的前两个字符,从第1个字符开始,取2个字符

SUBSTRING(cust_city,1,3)

表示的含义:取cust_city的前三个字符,从第1个字符开始,取3个字符

字符串的拼接

concat(字符串1,字符串2,字符串3,…)

例如:

CONCAT(SUBSTRING(cust_name,1,2),SUBSTRING(cust_city,1,3))

承接上一个截取字符的例子,将cust_name当中取出来的前2个字符和从cust_city当中取出来的3个字符拼接起来。

字母大写

upper(字符串)

时间函数

年:YEAR(date) 月:MONTH(date) 日:DAY(date)

下面列举三种不同的表达方式(2020年1月): 常规方法 ①YEAR(order_date)=2020 AND MONTH(order_date)=1 切割字符串 ②WHERE left(order_date, 7) = ‘2020-01’ 用LIKE来查找 ③WHERE order_date LIKE ‘2020-01%’

注意点

GROUP BY必须得配合聚合函数来用,分组之后你可以计数(COUNT),求和(SUM),求平均数(AVG)等。

HAVING和GROUP BY

where—过滤过滤指定的行 having–过滤分组,与group by连用 GROUP BY 和HAVING 搭配使用!

子查询

格式如下:

SELECT cust_id FROM Orders WHERE order_num IN ( SELECT order_num FROM OrderItems WHERE item_price>=10 )

JOIN连接

以下三个联结之间的区别:

内联结:INNER JOIN。取两列的交集。 外联结:LEFT JOIN。左连接,以左边表的列为主,取两列的交集,对于不在右边列存在的名称取null。     RIGHT JOIN。右连接,以右边表的列为主,取两列的交集,对于不在左边列存在的名称取null。

UNION 和UNION ALL的区别

UNION–将两个表做行拼接,同时自动删除重复的行。 UNION ALL—将两个表做行拼接,保留重复的行。

union使用前提 使用union合并两个表时,需要两个表的结果集字段完全一样;

使用UNION组合查询时,只能使用一条ORDER BY 字句,且必须位于最后一条SELECT语句之后!!!

总结

  今天结束了【SQL必知必会】专题的知识点汇总,这一部分的知识点和最开始的基础是离不开的,所以把基础打好之后,一道题目有很多种解法,我们只要多积累自己搞不清楚的地方,多积累自己的错题就可以学的更好!!!   预告一下:接下来要学习的是【SQL进阶挑战】,让我们一起期待吧!

经验分享 程序员 微信小程序 职场和发展