1 查詢指定字段
- 在 employee 表找出所有員工的姓名、性別和電子郵箱。


- SELECT 表示查詢,隨后列出需要返回的字段,字段間逗號分隔
- FROM 表示要從哪個表中進行查詢
- 分號為語句結束符
這種查詢表中指定字段的操作在關系運算中被稱為投影(Projection)
使用 SELECT 子句進行表示。投影是針對表進行的垂直選擇,保留需要的字段用於生成新的表
投影操作中包含一個特殊的操作,就是查詢表中所有的字段。
2 查詢全部字段
- ‘*’ 表示全部字段


數據庫在解析該語句時,會使用表中的字段名進行擴展:
SELECT emp_id, emp_name, sex, dept_id, manager,
hire_date, job_id, salary, bonus, email
FROM employee;
雖然星號可以便於快速編寫查詢語句,但是在實際項目中不推薦使用:
- 程序可能並不需要所有的字段,避免返回過多的無用數據
- 當表結構發生變化時,星號返回的信息也會發生改變
除了查詢表的字段之外,SELECT 語句還支持擴展的投影操作,包括基於字段的算術運算、函數和表達式等。
3 多字段查詢
返回員工的姓名、一年的工資(12 個月的月薪)以及電子郵箱的大寫形式:


結果中,返回字段的名稱不是很好理解;能不能給它指定一個更明確的標題呢?
4 別名(Alias)
為了提高查詢結果的可讀性,可以使用別名為表或者字段指定一個臨時的名稱。SQL 中使用關鍵字 AS 指定別名。

別名中的關鍵字 AS 可以省略。

為 employee 表指定了一個表別名 e,然后為查詢的結果字段指定了 3 個更明確的列別名(使用雙引號)。在查詢中為表指定別名之后,引用表中的字段時可以加上別名限定,例如 e.emp_name,表示要查看哪個表中的字段。
在 SQL 語句中使用別名不會修改數據庫中存儲的表名或者列名,別名只在當前語句中生效。
5 注釋
分為單行注釋和多行注釋
- 單行注釋以兩個連字符(--)開始,直到這一行結束
- SQL 使用 C 語言風格的多行注釋(/* … */)

# 也可以用於表示單行注釋。
6 無表查詢
- 計算一個表達式的值:


用於快速查找信息。這種語法並不屬於 SQL 標准,而是數據庫產品自己的擴展。
7 總結
SQL 不僅僅能夠查詢表中的數據,還可以返回算術運算、函數和表達式的結果。在許多數據庫中,不包含 FROM 子句的無表查詢可以用於快速獲取信息。另外,別名和注釋都可以讓我們編寫的 SQL 語句更易閱讀和理解。
