SQL必知必会知识点汇总
前言
❤欢迎大家阅读我的文章呀❤
今天是SQL必知必会的最后一块练习。
希望你们在我的文章当中能有所收获!!!
SLogan:利用有限的时间,撸起袖子加油干!
本篇内容主要总结了【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进阶挑战】,让我们一起期待吧!
感谢您宝贵的阅读,关注和点赞噢!晚安❤
来源地址:https://blog.csdn.net/m0_62279905/article/details/126835791
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341