基本查詢
筆記來源:https://www.liaoxuefeng.com/wiki/1177760294764384/1218728391867808
SELECT * FROM
使用SELECT * FROM students時,SELECT是關鍵字,表示将要執行一個查詢,*表示“所有列”,FROM表示将要從哪個表查詢,本例中是students表。
select * from
條件查詢
很多時候,我們并不希望獲得所有記錄,而是根據條件選擇性地擷取指定條件的記錄,例如,查詢分數在80分以上的學生記錄。在一張表有數百萬記錄的情況下,擷取所有記錄不僅費時,還費記憶體和網絡帶寬。
SELECT語句可以通過WHERE條件來設定查詢條件,查詢結果是滿足查詢條件的記錄。
條件查詢的文法就是:
SELECT * FROMWHERE
where 條件查詢
條件表達式可以用 AND 表達滿足條件1并且滿足條件2。
AND的使用
第二種條件是 OR ,表示滿足條件1或者滿足條件2。
OR的使用
第三種條件是NOT ,表示“不符合該條件”的記錄。NOT條件NOT class_id = 2其實等價于class_id <> 2,是以,NOT查詢不是很常用。
NOT的使用
要組合三個或者更多的條件,就需要用小括号()表示如何進行條件運算。如果不加括号,條件運算按照NOT、AND、OR的優先級進行,即NOT優先級最高,其次是AND,最後是OR。加上括号可以改變優先級。
多個條件查詢
通過WHERE條件查詢,可以篩選出符合指定條件的記錄,而不是整個表的所有記錄。
投影查詢
使用SELECT * FROM WHERE 可以選出表中的若幹條記錄。我們注意到傳回的二維表結構和原表是相同的,即結果集的所有列與原表的所有列都一一對應。
如果我們隻希望傳回某些列的資料,而不是所有列的資料,我們可以用SELECT 列1, 列2, 列3 FROM ...,讓結果集僅包含指定列。這種操作稱為投影查詢。結果集的列的順序和原表可以不一樣。
投影查詢
投影查詢同樣可以接WHERE條件,實作複雜的查詢。
投影查詢+where
排序
使用SELECT查詢時,查詢結果集通常是按照id排序的,也就是根據主鍵排序。這也是大部分資料庫的做法。如果要根據其他條件排序可以加上ORDER BY子句。例如按照成績從低到高進行排序:
order by 簡單使用
如果要反過來,按照成績從高到底排序,我們可以加上DESC表示“倒序”:
desc 倒序
如果score列有相同的資料,要進一步排序,可以繼續添加列名。例如,使用ORDER BY score DESC, gender表示先按score列倒序,如果有相同分數的,再按gender列排序:
如果有WHERE子句,那麼ORDER BY子句要放到WHERE子句後面。
where語句之後加排序