MySQL8.0關系數據庫基礎教程(三)-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 語句更易閱讀和理解。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM