SQL刷题心得体会

刷题链接

https://www.nowcoder.com/ta/sql?page=0

今天是刷SQL题的第三天,做了如下的笔记,写的比较乱,等我学完了再整理

1.max()函数获取某一元素最大值 count()函数获取某一元素的数量

2.order by 字段名 正排序
order by 字段名 desc 反向排序   排序放在最后
limit a,b 从第a+1开始显示从a+1往后b个的数据(b个里面包括a+1)  其中a,b为索引值从0开始

3.join....on

SELECT column_name(s)
FROM table1
INNER JOIN table2
ON table1.column_name=table2.column_name;

查找两个表在某个条件下的交集

4.INNER JOIN 两边表同时有对应的数据,即任何一边缺失数据就不显示。
LEFT JOIN 会读取左边数据表的全部数据,即便右边表无对应数据。
RIGHT JOIN 会读取右边数据表的全部数据,即便左边表无对应数据。

5.GROUP BY 语句用于结合聚合函数,根据一个或多个列对结果集进行分组。
HAVING 子句可以让我们筛选分组后的各组数据。

6.DISTINCT可以去除重复但是效率不高,在大表里面不建议使用
主要还是使用group by

7.not 用于表示某一字段不在某个集合内.
<>表示不等于和!=效果一样

8.where和and 有区别
要养成良好习惯,on后只写连接条件,过滤条件则写在where上


9.当前员工指的是to_date='9999-01-01' 

10.关键词执行顺序
查询中用到的关键词主要包含六个,并且他们的顺序依次为
select--from--where--group by--having--order by
其中select和from是必须的,其他关键词是可选的,这六个关键词的执行顺序
与sql语句的书写顺序并不是一样的,而是按照下面的顺序来执行
from--where--group by--having--select--order by,
from:需要从哪个数据表检索数据
where:过滤表中数据的条件
group by:如何将上面过滤出的数据分组
having:对上面已经分组的数据进行过滤的条件
select:查看结果集中的哪个列,或列的计算结果
order by :按照什么样的顺序来查看返回的数据

11.当问到需要排行第几的问题时,需要考虑到重复数据的问题,要考虑使用distinct

12.当使用嵌套查询时,多层嵌套不能用最外层的别名

你可能感兴趣的:(数据库)