




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
第14章SQL語句
目前關(guān)系數(shù)據(jù)庫管理系統(tǒng)都采用SQL語言作為數(shù)據(jù)庫語言,SQL語言成為關(guān)系數(shù)據(jù)庫的主流語言。本章以Access支持的SQL語言來討論其功能和使用方法。9.1.1SQL語言的特點(diǎn)
SQL語言是一種介于關(guān)系代數(shù)與關(guān)系演算之間的結(jié)構(gòu)化查詢語言。Access所支持的SQL語言不是全部的SQL語言,下面我們所講的SQL語言都指的是Access所支持的SQL語言。14.3SQL中的數(shù)據(jù)查詢語句
數(shù)據(jù)庫中的數(shù)據(jù)很多時侯是為了查詢的,因此,數(shù)據(jù)查詢是數(shù)據(jù)庫的核心操作。而在SQL語言中,查詢語言中有一條查詢命令,即SELECT語句。14.3.1基本查詢語句(投影查詢)【格式】SELECT[ALL|DISTINCT]<字段列表>FROM<表>【功能】無條件查詢【說明】ALL:表示顯示全部查詢記錄,包括重復(fù)記錄。
DISTINCT:表示顯示無重復(fù)結(jié)果的記錄14.3.2選擇查詢【格式】SELECT<字段列表>FROM<表>WHERE<條件>【功能】有條件查詢【說明】在該條件中除了可以用關(guān)系表達(dá)式外,還可以使用以下運(yùn)算符:1.BETWEEN…AND…2.IN3.LIKE
舉例:1.顯示學(xué)生選課及成績表中考試成績在60-80之間的所有記錄。
SELECT*FROM學(xué)生選課及成績表
WHERE考試成績BETWEEN60AND802.顯示學(xué)生選課及成績表中考試成績?yōu)?5、88、90的所有記錄。
SELECT*FROM學(xué)生選課及成績表
WHERE考試成績IN(85,88,90)3.顯示學(xué)生信息表中的所有”王”姓同學(xué),只顯示姓名和性別字段SELECT姓名,性別FROM學(xué)生信息表
WHERE姓名like“王*”注:”*”表示可與一串字符匹配,”?”表示可與一個字符匹配14.3.3排序查詢
通過在SELECT命令中加入ORDERBY子句可控制行的顯示順序。ORDERBY可以按升序(默認(rèn)或ASC)、降序(DESC)排列各行,也可以按多個列來排序。注意:該子句必須是SELECT命中的最后一個子句【例】將學(xué)生選課及成績表中的考試成績字段按降序排列。
SELECT*FROM學(xué)生選課及成績表ORDERBY考試成績DESC14.3.4使用聚合函數(shù)
聚合函數(shù)用于實(shí)現(xiàn)數(shù)據(jù)統(tǒng)計等功能.access中提供的聚合函數(shù)有AVG(),COUNT(),MIN(),MAX()SUM()等例:查詢”計算機(jī)網(wǎng)絡(luò)”班的學(xué)生人數(shù)。
Selectcount(*)from學(xué)生信息表where所在班級=“計算機(jī)網(wǎng)絡(luò)”或Selectcount([學(xué)號])from學(xué)生信息表where所在班級=“計算機(jī)網(wǎng)絡(luò)”例:查詢編號為”C011”的課程的考試成績的平均分。
selectavg([考試成績])as平均分from學(xué)生選課及成績表where課程號="C011"
上述例子中使用了聚合函數(shù),我們還可以加上GROUPBY子句,通常一個聚合函數(shù)的范圍是滿足WHERE子句指定的條件的所有記錄。在加上GROUPBY子句后,SELECT命令把查詢結(jié)果按指定列分成集合組。當(dāng)一個聚合函數(shù)和一個GROUPBY子句一起使用時,聚合函數(shù)的范圍變?yōu)槊拷M的所有記錄。換句話說,一個結(jié)果是由組成一組的每個記錄聚合產(chǎn)生的。使用HAVING子句可以對這些組進(jìn)一步加以控制。用這一子句定義這些組所必須滿足的條件,便將其包含在結(jié)果中。當(dāng)WHERE子句、GROUPBY子句和HAVING子句同時出現(xiàn)在一個查詢中時,SELECT的執(zhí)行順序如下:1、執(zhí)行WHERE子句,從表中選取行2、由GROUPBY對選取的行進(jìn)行分組3、執(zhí)行聚合函數(shù)4、執(zhí)行HAVING子句選取滿足條件的分組例:顯示學(xué)生考試成績平均分高于60分的學(xué)生的學(xué)號。
SELECT學(xué)號FROM學(xué)生選課及成績表GROUPBY學(xué)號HAVINGAVG([考試成績])>60例:顯示學(xué)生的考試成績的最低分大于60,最高分小于95的學(xué)生的學(xué)號。
SELECT學(xué)號
FROM學(xué)生選課及成績表
GROUPBY學(xué)號
HAVINGMIN([考試成績])>=60ANDMAX([考試成績])<=9514.3.5表的連接查詢
在數(shù)據(jù)查詢中,經(jīng)常涉及到提取兩個或多個表的數(shù)據(jù),這就需要使用表的連接來實(shí)現(xiàn)若干個表數(shù)據(jù)的聯(lián)合查詢。在一個查詢中,當(dāng)需要對兩個或多個表連接時,可以指定連接列,在WHERE子句中給出連接條件,在FROM子句中指定要連接的表,其格式如下:
SELECT字段名1,字段名2,…FROM表1,表2…WHERE連接條件and一般條件對于連接的多個表,為了區(qū)別是哪個表中的列,在連接條件中通過表名前綴指定連接列,如:TEACHER.NO表示TEACHER表的NO列。例:顯示所有學(xué)生的課程名稱和考試成績字段。
SELECT課程表.課程名稱,學(xué)生選課及成績表.考試成績
FROM課程表,學(xué)生選課及成績表
WHERE課程表.課程號=學(xué)生選課及成績表.課程號
SELECT為了簡化輸入,允許在查詢中使用表的別名,以縮寫表名,我們可以在SELECT子句中為表定義一個臨時別名,然后在查詢中引用。例:顯示所有學(xué)生的課程名稱和考試成績字段。
SELECTa.課程名稱,b.考試成績
FROM課程表a,學(xué)生選課及成績表bWHEREa.課程號=b.課程號如果涉及到更多的數(shù)據(jù)表該怎么做呢?例:顯示所有學(xué)生的姓名、課程名稱和考試成績字段。
SELECT學(xué)生信息表.姓名,課程表.課程名稱,學(xué)生選課及成績表.考試成績
FROM學(xué)生信息表,課程表,學(xué)生選課及成績表
WHERE學(xué)生信息表.學(xué)號=學(xué)生選課及成績表.學(xué)號and課程表.課程號=學(xué)生選課及成績表.課程號例:顯示每門課程的考試成績的平均分。SELECT學(xué)生選課及成績表.課程號,AVG(學(xué)生選課及成績表.考試成績)AS平均分FROM學(xué)生信息表,學(xué)生選課及成績表WHERE學(xué)生信息表.學(xué)號=學(xué)生選課及成績表.學(xué)號GROUPBY學(xué)生選課及成績表.課程號或例:顯示每門課程的考試成績的平均分。SELECTY.課程號,AVG(Y.考試成績)AS平均分FROM學(xué)生信息表X,學(xué)生選課及成績表YWHEREX.學(xué)號=Y.學(xué)號GROUPBYY.課程號例:顯示“計算機(jī)應(yīng)用”班所選課程的考試成績平均分。SELECT學(xué)生選課及成績表.課程號,AVG(學(xué)生選課及成績表.考試成績)AS平均分FROM學(xué)生信息表,學(xué)生選課及成績表WHERE學(xué)生信息表.學(xué)號=學(xué)生選課及成績表.學(xué)號AND學(xué)生信息表.所在班級="計算機(jī)應(yīng)用"GROUPBY學(xué)生選課及成績表.課程號或例:顯示“計算機(jī)應(yīng)用”班所選課程的考試成績平均分。SELECTY.課程號,AVG(Y.考試成績)AS平均分FROM學(xué)生信息表X,學(xué)生選課及成績表YWHEREX.學(xué)號=Y.學(xué)號ANDX.所在班級=“計算機(jī)應(yīng)用”
GROUPBYY.課程號
9.3.6子查詢
當(dāng)一個查詢是另一個查詢的條件時,稱之為子查詢.子查詢可以使用幾個簡單的命令構(gòu)造強(qiáng)大的復(fù)合命令。子查詢最常用于SQL命令的WHERE子句中。例:查詢和學(xué)號為“012101”的學(xué)生同年出生的所有學(xué)生的學(xué)號,姓名和出生日期字段。
select學(xué)號,姓名,出生日期from學(xué)生信息表whereyear([出生日期])=(selectyear([出生日期])from學(xué)生信息表where學(xué)號="012101")
例:查詢和學(xué)號為“012101”的學(xué)生同年同月同日出生的所有學(xué)生的學(xué)號,姓名和出生日期字段。select學(xué)號,姓名,出生日期from學(xué)生信息表where出生日期=(select出生日期from學(xué)生信息表
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 5 觀察一瓶水教學(xué)設(shè)計-2023-2024學(xué)年科學(xué)一年級下冊教科版
- 標(biāo)識項(xiàng)目制作合同范本
- 4 保溫和散熱 教學(xué)設(shè)計-2023-2024學(xué)年科學(xué)五年級上冊人教鄂教版
- Unit 1 Lesson 5 Where Is Danny(教學(xué)設(shè)計)-2024-2025學(xué)年冀教版(三起)英語四年級下冊
- 布料加工合同范本
- 法律合作建房合同范本
- 蜜餞工廠轉(zhuǎn)讓合同范本
- 20 美麗的小興安嶺 教學(xué)設(shè)計-2024-2025學(xué)年三年級語文上冊統(tǒng)編版
- 維修閥門合同范本
- 成華區(qū)租房合同范本
- 2024全國各地區(qū)英語中考真題匯編《第一期》
- 食堂廚師安全教育培訓(xùn)
- 股權(quán)聯(lián)營合作協(xié)議書
- 氣血疏通中級班教材
- 四川省康定市大槽門金礦資源儲量核實(shí)報告
- 浙江省中小學(xué)心理健康教育教師上崗資格證書管理辦法(修訂)
- 選擇性必修二《Unit 4 Journey across a vast land》單元教學(xué)設(shè)計
- 2024年一年級數(shù)學(xué)下冊教學(xué)計劃15篇
- 2024年時事政治題(考點(diǎn)梳理)
- 嶺南版六年級美術(shù)下冊教學(xué)工作計劃
- 門診常見疾病護(hù)理常規(guī)課件
評論
0/150
提交評論