查詢語句select語法:
SELECT selection_list 選擇哪些列
FROM table_list 從何處選擇行
WHERE primary_constraint 行必須滿足什麼條件
GROUP BY grouping_columns 怎樣對結果分組
HAVING secondary_constraint 行必須滿足的第二條件
ORDER BY sorting_columns 怎樣對結果排序
LIMIT count 結果限定
注:命令要大寫!where後可匹配如下3種運算符。
表1 算術運算符
運算符 |
說明 |
運算符 |
說明 |
+
- |
加
減 |
*
/ |
乘
除 |
表2 比較運算符
運算符 |
說明 |
運算符 |
說明 |
< <= = |
小於 小於或等於 等於 |
!= 或 <> >= > |
不等於 大於或等於 大於 |
表3 邏輯運算符
運算符 |
說明 |
NOT或 ! OR 或 || AND或 && |
邏輯非 邏輯或 邏輯與 |
ORDER BY column_name [ASC|DESC] [,…]
其中ASC表示升序,爲默認值,DESC爲降序。ORDER BY不能按text和p_w_picpath數據類型進行排序。另外,可以根據表達式進行排序。
注意DESC關鍵詞僅適用於緊跟在它之前的列名字GROUP BY col_name,…
分組查詢,適合與count(*)函數配合使用。簡單的說,被分組的列如果有重複的值,只返回靠前的記錄,並且返回的記錄集是排序的。count(*)記錄非null的行數。2者結合使用,結果是被分組的列的值是唯一的,後面有數值顯示此值在表中出現過幾行。
查詢多個表,或者1個表用2次
SELECT pet.name, (TO_DAYS(date) - TO_DAYS(birth))/365 AS age, remark
-> FROM pet, event
-> WHERE pet.name = event.name AND type = "litter";
pet 和 event 2張表。 使用 pet.name和event.name ,表名.列名錶示列名。
AS 把已有函數或者列名更換一種表達名稱而已。
mysql> SELECT p1.name, p1.sex, p2.name, p2.sex, p1.species
-> FROM pet AS p1, pet AS p2
-> WHERE p1.species = p2.species AND p1.sex = "f" AND p2.sex = "m";
pet一張表。查詢匹配的species 和sex。
p1.name ,p1.sex,p2.name等等,都是虛擬一個p1的表和p2的表。
查詢用pet AS p1 或者(p2)。
以上就是select的基本用法。如有錯誤,希望和大家交流。