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.當使用嵌套查詢時,多層嵌套不能用最外層的別名

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章