1 查詢指定欄位 在 employee 表找出所有員工的姓名、性別和電子郵箱。 SELECT 表示查詢,隨後列出需要返回的欄位,欄位間逗號分隔 FROM 表示要從哪個表中進行查詢 分號為語句結束符 這種查詢表中指定欄位的操作在關係運算中被稱為投影(Projection) 使用 SELECT 子句進行 ...
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 語句更易閱讀和理解。