最好的教材當然是官方文檔: https://dev.MySQL.com/doc/refman/5.7/en/ 作為一個至今依然被選修英文的英文盲覺得文檔寫得還是很通俗易懂,只要你夠耐心。 參考:《MySQL必知必會》
DISTINCT關鍵字應用于所有列而不僅僅是它的前置列。
SELECT DISTINCT vend_id,PRod_price from product.products# 返回vend_id,prod_price組合不同的值SELECT DISTINCT vend_id,DISTINCT prod_price from product.products# 錯誤的語法,也是不符合邏輯的,比如對于(‘aa’,1),(‘aa’,2),'('bb',1),(‘bb’,2)倘若該句得以執行的話,那么('aa',1),('bb',2)或(‘aa’,2),(‘bb’,1),那就具有二義性了限定返回的結果的數目 limit n 返回前n行 limit m,n 返回從行m開始的n行數據 limit n offset m 返回從行m開始的n行數據
如果想在多個列上均進行降序排列,對每列都需要指定DESC。
SELECT * FROM products ORDER BY prod_price DESC,prod_name# 返回結果按照按prod_price降序排列,prod_price相同時按prod_name升序(默認是ASC)排列SELECT * FROM products ORDER BY prod_price DESC,prod_name DESC# 返回結果按照按prod_price降序排列,prod_price相同時按prod_name降序排列=, <>/!=, <, <=, >, >=, between……and……,IS NULL
AND, OR, IN, NOT
select * from products where vend_id != 1003;# select * from products where vend_id != '1003'; # 單引號用來限定字符串。如果將值與串類型的列進行比較,則需要限定引號。select * from products where vend_id != 1003 and prod_name='fuse';tips 復雜性隨著嵌套程度的深入而增加,因此: 首先,建立和測試內層查詢 然后,用硬編碼數據建立和測試外層查詢 接著,確認正確后嵌入子查詢中仔測試這個嵌套子查詢正確性 最后,每增加一個子查詢都重復上述步驟直到構建完畢。
products表 

| 子句 | 說明 | 是否必須使用 | 
|---|---|---|
| select | 返回的列或者表達式 | Yes | 
| from | 檢索的表 | 僅從表選擇數據時使用 | 
| where | 行級過濾 | No | 
| group by | 分組 | No | 
| having | 組級過濾 | No | 
| order by | 排序順序 | No | 
| Limit | 限制檢索的行數 | No | 
新聞熱點
疑難解答