本資料為產(chǎn)品崗位作為日常工作參考督赤,語言口語化
At 2019/4/22 By David.Yang
普通查詢(使用簡單的SELECT語句來查詢單個表中的數(shù)據(jù))
SELECT語句用來從數(shù)據(jù)庫中進(jìn)行數(shù)據(jù)查詢并返回头谜,
Excel表格我們在構(gòu)建時有【行】與【列】,
一行在我們的理解下是一行數(shù)據(jù)呛踊,一列是相同屬性的一組數(shù)據(jù),
多條行數(shù)據(jù)或者多列數(shù)據(jù)是一個集合献起,
在數(shù)據(jù)庫中使用SELECT的到的結(jié)果我們稱之為結(jié)果集口蝠,
他是一個行的列表,每行有相同數(shù)量的列組成摊鸡。
比如我們獲得了10條學(xué)生記錄绽媒,這是一個查詢的結(jié)果集,
他有4列:學(xué)號免猾、名稱是辕、性別、年齡猎提。
SELECT語句可以空值需要查詢哪些行和列获三。
比如業(yè)務(wù)需求上只需要學(xué)號、姓名、年齡就行了疙教,
或者只想看大俠班的同學(xué)的信息棺聊,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 之后接逗號(,)分割需要查詢的數(shù)據(jù)的列贞谓,或星號(*)躺屁,表示要返回所有數(shù)據(jù)的列。
- FROM 指定要查詢數(shù)據(jù)的數(shù)據(jù)表或視圖经宏。
- JOIN? 根據(jù)某些連接條件從其他表中獲取數(shù)據(jù)犀暑,涉及多數(shù)據(jù)表聯(lián)合查詢使用。
- WHERE 過濾結(jié)果集中的行烁兰,有條件對數(shù)據(jù)進(jìn)行查詢耐亏。
- GROUP BY 將一組行組合成小分組,并對每個小分組應(yīng)用聚合函數(shù)沪斟。
- HAVING 過濾器基于GROUP BY子句定義的小分組广辰。
- ORDER BY 指定用于排序的列的列表。
- LIMIT限制返回行的數(shù)量主之。
語句中的SELECT和FROM語句是必須的择吊,其他部分是可選的。
本篇對SELECT進(jìn)行講解槽奕,其他子語句將分批講解几睛。
SELECT語句演示
讓數(shù)據(jù)庫給你想要的數(shù)據(jù)列
語法當(dāng)中說到過,SELECT支持通過引文逗號(,)開分割需要查詢數(shù)據(jù)的列粤攒,
比如我們只想查看學(xué)生的學(xué)號所森、姓名、性別夯接、年齡
SQL
SELECT
number,name,gender,age
FROM
students;
我們看看學(xué)生表原始有哪些數(shù)據(jù)列:
SQL
show createtable students;
盡管我們定義了很完整的數(shù)據(jù)列焕济,但是業(yè)務(wù)上只需要學(xué)號、姓名盔几、性別晴弃、年齡,
所以通過SELECT控制我們的數(shù)據(jù)庫也只返回了我們所需要的數(shù)據(jù)列逊拍,
真乖~
讓數(shù)據(jù)庫給你所有數(shù)據(jù)列
下面我們看一下SELECT后數(shù)據(jù)列控制發(fā)生一點變化上鞠,
會有什么結(jié)果?
SQL
SELECT * FROM students;
數(shù)據(jù)庫把所有的數(shù)據(jù)列都返回來了顺献。
這是因為我們告訴了數(shù)據(jù)庫旗国,我想要列出數(shù)據(jù)的所有列枯怖,
怎么告訴他的呢注整?
我們在SELECT后面用星號(*)代替了逗號(,),
所以產(chǎn)生了以上的查詢結(jié)果。
注:
? 使用星號(*)會返回所有數(shù)據(jù)列肿轨,但也包括了你不需要的數(shù)據(jù)列寿冕。這回在數(shù)據(jù)庫服務(wù)器造成不必要的磁盤I/O,在數(shù)據(jù)庫和應(yīng)用程序間也會帶來不必要的網(wǎng)絡(luò)流量傳遞
? 使用星號(*)會造成意外的敏感數(shù)據(jù)暴露
? 返回所有數(shù)據(jù)列會給你帶來意外的結(jié)果集管理麻煩椒袍。如果數(shù)據(jù)表有數(shù)量較多的數(shù)據(jù)列驼唱,查詢的結(jié)果都列出來對你來說數(shù)據(jù)查看也是個負(fù)擔(dān)
到此應(yīng)該已經(jīng)幫助你熟悉了數(shù)據(jù)庫的查詢語法,你可以上手實操一把查詢的體驗了驹暑。