MySQL8.0關係數據庫基礎教程(三)-select語句詳解

1 查詢指定字段

  • 在 employee 表找出全部員工的姓名、性別和電子郵箱。
  • SELECT 表示查詢,隨後列出須要返回的字段,字段間逗號分隔
  • FROM 表示要從哪一個表中進行查詢
  • 分號爲語句結束符

這種查詢表中指定字段的操做在關係運算中被稱爲投影(Projection) 使用 SELECT 子句進行表示。投影是針對表進行的垂直選擇,保留須要的字段用於生成新的表sql

投影操做中包含一個特殊的操做,就是查詢表中全部的字段。數據庫

2 查詢所有字段

  • ‘*’ 表示所有字段

數據庫在解析該語句時,會使用表中的字段名進行擴展:函數

SELECT emp_id, emp_name, sex, dept_id, manager,
       hire_date, job_id, salary, bonus, email
  FROM employee;

雖然星號能夠便於快速編寫查詢語句,可是在實際項目中不推薦使用:3d

  • 程序可能並不須要全部的字段,避免返回過多的無用數據
  • 當表結構發生變化時,星號返回的信息也會發生改變

除了查詢表的字段以外,SELECT 語句還支持擴展的投影操做,包括基於字段的算術運算、函數和表達式等。code

3 多字段查詢

返回員工的姓名、一年的工資(12 個月的月薪)以及電子郵箱的大寫形式: blog

結果中,返回字段的名稱不是很好理解;能不能給它指定一個更明確的標題呢?產品

4 別名(Alias)

爲了提升查詢結果的可讀性,可使用別名爲表或者字段指定一個臨時的名稱。SQL 中使用關鍵字 AS 指定別名。 別名中的關鍵字 AS 能夠省略。 io

爲 employee 表指定了一個表別名 e,而後爲查詢的結果字段指定了 3 個更明確的列別名(使用雙引號)。在查詢中爲表指定別名以後,引用表中的字段時能夠加上別名限定,例如 e.emp_name,表示要查看哪一個表中的字段。class

在 SQL 語句中使用別名不會修改數據庫中存儲的表名或者列名,別名只在當前語句中生效。email

5 註釋

分爲單行註釋和多行註釋

  • 單行註釋以兩個連字符(--)開始,直到這一行結束
  • SQL 使用 C 語言風格的多行註釋(/* … */)

# 也能夠用於表示單行註釋。

6 無表查詢

  • 計算一個表達式的值:

用於快速查找信息。這種語法並不屬於 SQL 標準,而是數據庫產品本身的擴展。

7 總結

SQL 不單單可以查詢表中的數據,還能夠返回算術運算、函數和表達式的結果。在許多數據庫中,不包含 FROM 子句的無表查詢能夠用於快速獲取信息。另外,別名和註釋均可以讓咱們編寫的 SQL 語句更易閱讀和理解。

相關文章
相關標籤/搜索