摘要:視頻教程在線輔導(dǎo)面授招生考試大綱指定教材報(bào)名時(shí)間8.3.3查詢數(shù)據(jù)庫査詢是數(shù)據(jù)庫的核心操作。SQL提供了SELECT語句進(jìn)行數(shù)據(jù)庫的查詢,該語句具有靈活的使用方式和豐富的功能。其一般格式如下:SELECT[ALL[DISTINCT1<目標(biāo)列表達(dá)式>],<目標(biāo)列表達(dá)式>]...FROM<表名或視圖名>[,<表名或視圖名>
在線輔導(dǎo) 面授招生 考試大綱 指定教材 報(bào)名時(shí)間
8.3.3 查詢
數(shù)據(jù)庫査詢是數(shù)據(jù)庫的核心操作。SQL提供了SELECT語句進(jìn)行數(shù)據(jù)庫的查詢,該語句具有靈活的使用方式和豐富的功能。其一般格式如下:
SELECT[ALL[DISTINCT1<目標(biāo)列表達(dá)式>],<目標(biāo)列表達(dá)式>]...
FROM<表名或視圖名>[,<表名或視圖名>]...
[WHERE<條件表達(dá)式>]
[GROUPBY<列名1>[HAV[NG<條件表達(dá)式>]]
[ORDERBY<列名2>[ASC]DESC)];
整個(gè)SELECT語旬的含義是,根據(jù)WHERE子句的條件表達(dá)式,從FROM子句指定的
基本表或視圖中找出滿足條件的元組,再按SELECT子句中的目標(biāo)列表達(dá)式,選出元組中的
屬性值形成結(jié)果表。如果有GROUP子句,則將結(jié)果按<列名丨>的值進(jìn)行分組,該屬性列值相等的元組為一個(gè)組。通常會(huì)在每組中使用集函數(shù)。如果GROUP子句帶HAVING短語,則只有滿足指定條件的組才可輸出。如果有ORDER子句,則結(jié)果表還要按<列名2>的值的升序或降序排序。
SELECT語句既可以完成簡(jiǎn)單的單表査詢,也可以完成復(fù)雜的連接?xùn)嗽兒颓短撞樵儭?/p>
1.單表査詢
單表查詢是指僅涉及一個(gè)表的查詢。
(1)選擇表中的若干列
選擇表中的全部列或部分列,這就是投影運(yùn)算。
①查詢指定列。在很多情況下,用戶只對(duì)表中的一部分屬性列感興趣,這時(shí)可以通過在SELECT子句的<目標(biāo)列表達(dá)式>中指定要査詢的屬性。
②査詢?nèi)苛?。將表中的所有屬性列都選出來,可以有兩種方法。一種方法就是在SELECT關(guān)鍵字后面列出所有列名。如果列的顯示順序與其在基表中的順序相同,也可以簡(jiǎn)單地將<目標(biāo)列表達(dá)式>指定為*。
③查詢經(jīng)過計(jì)算的值。SELECT子句的<目標(biāo)列表達(dá)式>不僅可以是表中的屬性列,也可以是表達(dá)式。
(2)選擇表中的若干元組
①消除取值重復(fù)的行。兩個(gè)本來并不完全相同的元組,投影到指定的某些列上后,可能變成相同的行了。如果想去掉結(jié)果表中的重復(fù)行,必須指定DISTINCT短語。
②查詢滿足條件的元組?査詢滿足指定條件的元組可以通過WHERE子句實(shí)現(xiàn)。WHERE子句常用的査詢條件如表8-5所示。
統(tǒng)計(jì)元組個(gè)數(shù)統(tǒng)計(jì)一列中值的個(gè)數(shù)計(jì)算一列值的總和(此列必須是數(shù)值型)計(jì)算一列值的平均值(此列必須是數(shù)值型)
求一列值中的最大值求一列值中的最小值如果指定DISTINCT短語,則表示在計(jì)算時(shí)要取消指定列中的重復(fù)值。如果不指定DISTINCT短語或指定ALL短語(ALL為缺省值),則表示不取消重復(fù)值。
⑤對(duì)査詢結(jié)果分組。GROUPBY子句將查詢結(jié)果表按某一列或多列值分組,值相等的為一組。
對(duì)査詢結(jié)果分組的目的是為了細(xì)化集函數(shù)的作用對(duì)象。如果未對(duì)查詢結(jié)果分組,集函數(shù)將作用于整個(gè)査詢結(jié)果。如果分組后還要求按一定的條件對(duì)這些組進(jìn)行篩選,最終只輸出滿足指定條件的組,則可以使用HAVING短語指定篩選條件。
返回目錄:通信工程師互聯(lián)網(wǎng)技術(shù)數(shù)據(jù)庫基礎(chǔ)教程匯總
編輯相關(guān)推薦:
互聯(lián)網(wǎng)技術(shù)考試局域網(wǎng)和城域網(wǎng)匯總
通信工程師考試培訓(xùn)互聯(lián)網(wǎng)技術(shù)重點(diǎn)匯總
通信工程師備考資料免費(fèi)領(lǐng)取
去領(lǐng)取
共收錄117.93萬道題
已有25.02萬小伙伴參與做題