產品操作MySQL第5篇 – 資料查詢-SELECT

MYSQL
本資料為產品崗位作為日常工作參考,語言口語化
At 2019/4/22 By David.Yang
普通查詢(使用簡單的SELECT語句來查詢單個表中的資料)
SELECT語句用來從資料庫中進行資料查詢並返回,
Excel表格我們在構建時有【行】與【列】,
一行在我們的理解下是一行資料,一列是相同屬性的一組資料,
多條行資料或者多列資料是一個集合,
在資料庫中使用SELECT的到的結果我們稱之為結果集,
他是一個行的列表,每行有相同數量的列組成。
比如我們獲得了10條學生記錄,這是一個查詢的結果集,
他有4列:學號、名稱、性別、年齡。

SELECT語句可以空值需要查詢哪些行和列。
比如業務需求上只需要學號、姓名、年齡就行了,
或者只想看大俠班的同學的資訊,SELECT可以控制提供給你你想看到的維度。
SELECT
column_1, column_2, ...
FROM
table_1
[INNER | LEFT |RIGHT] JOIN table_2 ON conditions
WHERE
conditions
GROUP BY column_1
HAVING group_conditions
ORDER BY column_1
LIMIT offset, length;
SELECT語句由以下列表中所述的幾個子句組成:
- SELECT 之後接逗號(,)分割需要查詢的資料的列,或星號(*),表示要返回所有資料的列。
- FROM 指定要查詢資料的資料表或檢視。
- JOIN 根據某些連線條件從其他表中獲取資料,涉及多資料表聯合查詢使用。
- WHERE 過濾結果集中的行,有條件對資料進行查詢。
- GROUP BY 將一組行組合成小分組,並對每個小分組應用聚合函式。
- HAVING 過濾器基於GROUP BY子句定義的小分組。
- ORDER BY 指定用於排序的列的列表。
- LIMIT限制返回行的數量。
語句中的SELECT和FROM語句是必須的,其他部分是可選的。
本篇對SELECT進行講解,其他子語句將分批講解。
SELECT語句演示
讓資料庫給你想要的資料列
語法當中說到過,SELECT支援通過引文逗號(,)開分割需要查詢資料的列,
比如我們只想檢視學生的學號、姓名、性別、年齡
SQL
SELECT number,name,gender,age FROM students;

我們看看學生表原始有哪些資料列:
SQL
show createtable students;

儘管我們定義了很完整的資料列,但是業務上只需要學號、姓名、性別、年齡,
所以通過SELECT控制我們的資料庫也只返回了我們所需要的資料列,
真乖~
讓資料庫給你所有資料列
下面我們看一下SELECT後資料列控制發生一點變化,
會有什麼結果?
SQL
SELECT * FROM students;

資料庫把所有的資料列都返回來了。
這是因為我們告訴了資料庫,我想要列出資料的所有列,
怎麼告訴他的呢?
我們在SELECT後面用星號(*)代替了逗號(,),
所以產生了以上的查詢結果。
注:
ϒ 使用星號(*)會返回所有資料列,但也包括了你不需要的資料列。這回在資料庫伺服器造成不必要的磁碟I/O,在資料庫和應用程式間也會帶來不必要的網路流量傳遞
ϒ 使用星號(*)會造成意外的敏感資料暴露
ϒ 返回所有資料列會給你帶來意外的結果集管理麻煩。如果資料表有數量較多的資料列,查詢的結果都列出來對你來說資料檢視也是個負擔
到此應該已經幫助你熟悉了資料庫的查詢語法,你可以上手實操一把查詢的體驗了。