最基本的SELECT...FROM結構
1.0 SELECT...
SELECT 1; #沒有任何子句
SELECT 9/2; #沒有任何子句
1.1 SELECT ... FROM
語法:
SELECT 標識選擇哪些列
FROM 標識從哪個表中選擇
選擇全部列:
SELECT *
FROM departments;
一般情況下,除非需要使用表中所有的欄位資料,最好不要使用萬用字元 *。使用萬用字元雖然可以節省輸入查詢語句的時間,但是獲取不需要的列資料通常會降低查詢和所使用的應用程式的效率。萬用字元的優勢是,當不知道所需要的列的名稱時,可以通過它獲取它們。
在生產環境下,不推薦你直接使用SELECT *進行查詢。
選擇特定的列:
SELECT department_id, location_id FROM departments;
MySQL中的sQL語句是不區分大小寫的,因此SELECT和select的作用是相同的,但是,許多開發人員習慣將關鍵字大寫、資料列和表名小寫,讀者也應該養成一個良好的程式設計習慣,這樣寫出來的程式碼更容易閱讀和維護。
1.2 列的別名
- 重新命名一個列。
- 便於計算
- 緊跟列名,也可以在列名和別名之間加入關鍵字
- AS,別名使用雙引號,以便在別名中包含空格或特殊的字元並區分大小寫。
- AS(alias)可以省略
- 建議別名簡短,見名知意。
舉例
SELECT last_name AS name, commission_pct comm
FROM employees;
1.3 去除重複行
預設情況下,查詢會返回全部行,包括重複行。
在SELECT語句中使用關鍵字DISTINCT去除重複行
SELECT DISTINCT department_id
FROM employees;
針對於:
SELECT DISTINCT department_id,salary
FROM employees;
這裡需要注意:
DISTINCT 其實是對後面所有列名的組合進行去重,你能看到最後的結果是 74 條,因為這 74 個部門id不同,都有 salary 這個屬性值。如果你想要看都有哪些不同的部門(department_id),只需要寫 DISTINCT department_id 即可,後面不需要再加其他的列名了。
1.4 空值參與運算