版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
SQLServer2000實(shí)用教程歡迎學(xué)習(xí)數(shù)
據(jù)
查
詢第6章第6章數(shù)據(jù)查詢6.1
Select語句的基本格式6.2
基本查詢第6章數(shù)據(jù)查詢6.3
高級查詢6.4
實(shí)訓(xùn)項(xiàng)目第6章數(shù)據(jù)查詢能力要求:通過對本章的學(xué)習(xí),讀者應(yīng)掌握如下技能:使用SELECT語句進(jìn)行基本查詢的能力;使用SELECT語句進(jìn)行高級查詢的能力。第6章數(shù)據(jù)查詢第6章數(shù)據(jù)查詢6.1Select語句的基本格式第6章數(shù)據(jù)查詢6.1
Select語句的基本格式在SQLServer中,SELECT語句是使用頻率最高的語句之一。SELECT語句的作用是讓數(shù)據(jù)庫服務(wù)器根據(jù)客戶的要求從數(shù)據(jù)庫中搜索出所需要的信息資料,并且可以按規(guī)定的方式進(jìn)行分類、統(tǒng)計、排序,再返回給客戶。另外,利用SELECT語句還可以設(shè)置和顯示系統(tǒng)信息、給局部變量賦值等。SELECT語句具有強(qiáng)大的查詢功能,完整的語法非常復(fù)雜,我們之需要掌握SELECT語句的一部分,就可以輕松地利用數(shù)據(jù)庫完成自己的工作。第6章數(shù)據(jù)查詢6.2基本查詢6.2.1
選擇列6.2.2
選擇行第6章數(shù)據(jù)查詢6.2.3
排序6.2.4TOP和DISTINCT的使用6.2
基
本
查
詢當(dāng)使用SELECT語句時,可以用兩種方式來控制返回的數(shù)據(jù):選擇列和選擇行。選擇列就是限制返回結(jié)果中的列,這由SELECT語句中的SELECT子句指定要返回的列來控制;選擇行則是限制返回結(jié)果中的行,這由SELECT語句中WHERE子句指定選擇條件來控制。第6章數(shù)據(jù)查詢6.2.1
選擇列語法形式如下:SELECTcolumn_name1[,column_name2,…]FROMtable_name
1.
指定列第6章數(shù)據(jù)查詢6.2.1
選擇列在SELECT子句中可以使用星號(*),顯示表中所有的列。
2.選擇所有列第6章數(shù)據(jù)查詢6.2.1
選擇列
在進(jìn)行數(shù)據(jù)查詢時,經(jīng)常需要對表中的數(shù)據(jù)進(jìn)行計算,之后才能得到滿意的結(jié)果。在SELECT子句中可以使用算術(shù)運(yùn)算符對數(shù)值型數(shù)據(jù)進(jìn)行如加(+),減(—),乘(*),除(/),和取模(%)運(yùn)算,構(gòu)造計算列。
3.使用計算列第6章數(shù)據(jù)查詢6.2.1
選擇列
為了增加查詢結(jié)果的可讀性,可以在Select子句中增加一些說明列,增加的說明文字串需要用單引號括起來。
4.增加說明列第6章數(shù)據(jù)查詢6.2.1
選擇列
在缺省情況下,查詢結(jié)果中顯示的列標(biāo)題就是在創(chuàng)建表時使用的列名,但對于像圖6-2和圖6-3中的計算列,系統(tǒng)是不指定列標(biāo)題的,如果我們想改變查詢結(jié)果中所顯示的列標(biāo)題,可以在SELECT語句中使用‘列標(biāo)題’=列名或列名AS’列標(biāo)題‘兩種方法。
5.改變列標(biāo)題第6章數(shù)據(jù)查詢6.2.2
選擇行
在實(shí)際工作中,大部分查詢并不是針對表中所有數(shù)據(jù)記錄的查詢,而是要找出滿足某些條件的數(shù)據(jù)記錄。此時我們可以在SELECT語句中使用WHERE子句。使用WHERE子句的目的是從表中篩選出符合條件的行,其語法形式如下:
SELECTcolumn_name1[,column_name2,…]
FROMtable_name
WHEREsearch_condition第6章數(shù)據(jù)查詢6.2.2
選擇行
WHERE子句中允許使用的比較運(yùn)算符如表6-1所示。
1.使用比較運(yùn)算符第6章數(shù)據(jù)查詢表6-1
比較運(yùn)算符運(yùn)算符描述運(yùn)算符描述=等于!>不大于<小于!<不小于>大于>=大于等于<>、!=不等于<=小于等于6.2.2
選擇行在WHERE語句中還可以使用邏輯運(yùn)算符把若干個查詢條件連接起來,構(gòu)成一個復(fù)雜的條件進(jìn)行查詢??梢允褂玫倪壿嬤\(yùn)算符包括:邏輯與(AND),邏輯或(OR)和邏輯非(NOT).語法形式如下:[NOT]search_condition{AND1OR}[NOT]search_condition
2.使用邏輯運(yùn)算符第6章數(shù)據(jù)查詢6.2.2
選擇行在前面介紹的查詢中,查詢條件都的確定的.但是實(shí)際應(yīng)用中,并不是所有的查詢條件都的確定的.例如,要查詢公司一個姓張的銷售人員,但不知道叫什么名字.此時,精確查詢就不管用了,必須使用LIKE關(guān)鍵字進(jìn)行模糊查詢.其語法形式為:expression[NOT]LIKE’string’‘sring’:是匹配字符串。
3.使用字符串模糊匹配第6章數(shù)據(jù)查詢6.2.2
選擇行在WHERE子句中使用BETWEEN關(guān)鍵字可以對表中某一范圍內(nèi)的數(shù)據(jù)進(jìn)行查詢,系統(tǒng)將逐行檢查表中數(shù)據(jù)是否在BETWEEN關(guān)鍵字設(shè)定的范圍內(nèi).如果在其設(shè)定的范圍內(nèi),則取出該行,否則不取該行。其語法形式為:column_name[NOT]BETWEENexpression1ANDexpression2
4.使用查詢范圍第6章數(shù)據(jù)查詢6.2.2
選擇行如果列值的取值范圍不是一個連續(xù)的區(qū)間,而是一些離散的值,此時就應(yīng)使用SQLServer提供的另一個關(guān)鍵字IN。其語法形式為:
Colum_name[NO]IN(value1,value2,…)
5.使用查詢列表第6章數(shù)據(jù)查詢6.2.2
選擇行
在SQLServer中,用NULL表示空值,它僅僅是一個符號,不等于空格,也不等于0,空值判定的語法形式如下:
columm_nameIS[NOT]NULL
6.空值的判定第6章數(shù)據(jù)查詢6.2.3
排序
在通常情況下,SQLServer數(shù)據(jù)庫中的數(shù)據(jù)紀(jì)錄行在顯示時是無序的,它按照數(shù)據(jù)記錄插入數(shù)據(jù)庫時的順序排列,因此用SELECT語句查的結(jié)果也是無序的。通過使用ORDERBY子句,可以將查詢結(jié)果進(jìn)行排序顯示。其語法
形式為:
SELECTcolumn_name[,column_name2,…]
FROMtable_name
WHEREsearch_condition
ORDERBYcolumn_name[ASC|DESC][,column_name[ASC|DESC]…]第6章數(shù)據(jù)查詢6.2.4
TOP和DISTINCT的使用
使用TOP關(guān)鍵字可以返回表中前面一定數(shù)量的數(shù)據(jù)。當(dāng)查詢的數(shù)據(jù)非常多(如有100萬行),但有沒有必要對所有的數(shù)據(jù)進(jìn)行瀏覽時,使用TOP關(guān)鍵字可以大大減少查詢的時間。其語法形式為:
SELECT[TOPinteger|TOPintegerPERCENT]
column_name
FROMtable_name
其中,TOPinteger:表示返回表中最前面的幾行,用integer表示返回的行數(shù)。
1.TOP關(guān)鍵字第6章數(shù)據(jù)查詢6.2.4
TOP和DISTINCT的使用
前面介紹的查詢方式會返回表中所有符合條件的行,而不管這些行是否重復(fù),使用DISTINCT關(guān)鍵字可以從返回的結(jié)果數(shù)據(jù)集中刪除重復(fù)的行,使結(jié)果更簡潔。其語法形式為:
SELECT[ALL|DISTINCT]column_name[,column_name2,…]
FROMtable_name
WHEREsearch_condition
其中,關(guān)鍵字ALL:允許重復(fù)數(shù)據(jù)行的出現(xiàn),是默認(rèn)的關(guān)鍵字。
2.DISTINCT關(guān)鍵字第6章數(shù)據(jù)查詢6.3.1
多表查詢6.3.2
分組和匯總6.3高級查詢6.3.3
嵌套查詢第6章數(shù)據(jù)查詢6.3.4
合并數(shù)據(jù)集6.3.5
生成一個新表6.3
高
級
查
詢前面介紹的查詢還局限在數(shù)據(jù)庫的一張表內(nèi)。但在實(shí)際應(yīng)用中,我們經(jīng)常需要在多張表中查詢數(shù)據(jù)或者需要對表中的數(shù)據(jù)進(jìn)行分類、匯總等,這就需要較為復(fù)雜的高級查詢。第6章數(shù)據(jù)查詢6.3.1
多表查詢在設(shè)計數(shù)據(jù)庫的時候,我們需要設(shè)計很多張表,然后將數(shù)據(jù)分布到這些表中。將數(shù)據(jù)分布到多張表中的主要目的是為了儲存數(shù)據(jù)更加方便。然而這些數(shù)據(jù)本來就是一個整體,所以我們在查詢數(shù)據(jù)的時候,需要從這些表中將數(shù)據(jù)提取出來,重新聚合到一起顯示給用戶。SQLServer提供了實(shí)現(xiàn)多表查詢的方法——連接查詢。所謂連接查詢是將多個表以某個或某些列為條件連接,從中檢索出關(guān)聯(lián)數(shù)據(jù)。連接有ANSI連接、SQLServer連接兩種語法形式,這里主要介紹ANSI連接語法形式。第6章數(shù)據(jù)查詢6.3.1
多表查詢所謂內(nèi)連接是多個表通過連接條件中共享列的值進(jìn)行的比較連接。當(dāng)未指明連接類型時,默認(rèn)為內(nèi)連接。內(nèi)連接值顯示兩個表中所有匹配數(shù)據(jù)的行,如圖6-15所示。
1.內(nèi)連接(INNERJOIN)第6章數(shù)據(jù)查詢圖6-15
表之間的內(nèi)連接內(nèi)連接6.3.1
多表查詢外連接顯示一個表中所有的行和另外一個表中的任何匹配的行,如圖6-17所示。外連接又分為左外連接、右外連接。
2.外連接(OUTERJOIN)第6章數(shù)據(jù)查詢圖6-17
表之間的外連接外連接6.3.1
多表查詢兩個表之間的交叉連接,是用左表中的每一行與右表中的每一行進(jìn)行連接。因此,結(jié)果集中的行數(shù)是左表的行數(shù)乘以右表的行數(shù),該乘積也稱為“笛卡兒乘積”,交叉連接使用關(guān)鍵字CROSSJOIN。
3.交叉連接第6章數(shù)據(jù)查詢6.3.2
分組和匯總同其他語言一樣,SOLServer也提供了一系列的系統(tǒng)函數(shù),包括聚合函數(shù)、數(shù)學(xué)函數(shù)、字符串函數(shù)、日期和時間函數(shù)等,本節(jié)只介紹聚合函數(shù)。聚合函數(shù)可以返回一列、幾列或全部列的匯總數(shù)據(jù),用于計數(shù)或?qū)ふ夷沉械钠骄怠_@類函數(shù)僅作用于數(shù)值型列,并且在列上使用聚合函數(shù)時,不考慮NULL值。常用的聚合函數(shù)如表4-4所示。
1.使用聚合函數(shù)第6章數(shù)據(jù)查詢表4-4
常用聚合函數(shù)表函數(shù)名描述AVG([ALL|DISTINCT][expression])MAX(expression)MIN(expression)SUM([ALL|DISTINCT][expression])COUNT([ALL|DISTINCT][expression])COUNT(*)返回表達(dá)式的平均值返回表達(dá)式的最大值返回表達(dá)式的最小值返回表達(dá)式中所有值的平均值返回表中指定列的數(shù)據(jù)記錄行數(shù)。使用DISTINCT關(guān)鍵字刪除重復(fù)值返回表中所有數(shù)據(jù)記錄的行數(shù)6.3.2
分組和匯總使用聚合函數(shù)只能返回一個單個的匯總結(jié)果,如果需要顯示分組的匯總數(shù)據(jù),就必須使用GROUPBY子句。該句子的功能是根據(jù)指定的列表中的數(shù)據(jù)分成多個組后進(jìn)行匯總。其與語法格式為:SELECTclumn_name1[,…n]FROMtable_nameWHEREsearch_conditionGROUPBY[ALL]column_mane1[,…n][HAVINGsearchm_condition]
2.使用分組匯總子句第6章數(shù)據(jù)查詢6.3.2
分組和匯總使用GROUPBY對查詢出來的數(shù)據(jù)進(jìn)行分類匯總后,只能顯示統(tǒng)計結(jié)果,看不到詳細(xì)的數(shù)據(jù)。使用COMPUTE和COMPUTEBY子句既能瀏覽詳細(xì)數(shù)據(jù)又可以看到統(tǒng)計結(jié)果。
3.
使用明細(xì)匯總子句第6章數(shù)據(jù)查詢6.3.3
嵌套查詢前面所提到的查詢都是單層查詢。但在實(shí)際運(yùn)用中,經(jīng)常要用到嵌套查詢。所謂嵌套查詢指的是在一個SELECT查詢內(nèi)再嵌入一個SELECT語句。外層的SELECT語句叫外部查詢,內(nèi)層的SELECT語句叫子查詢。通常情況下,嵌套查詢都可以寫成連接的形式,但有時寫成連接的形式比較復(fù)雜,不容易理解,而寫成嵌套查詢,可以將復(fù)雜的查詢分解成幾個簡單的、易于理解的子查詢。但是,由于子查的詢的執(zhí)行需要增加一些附加的操作,而連接不需要增加附加操作,故連接操作比子查詢快。第6章數(shù)據(jù)查詢6.3.4
合并數(shù)據(jù)集在SELECT語句中,使用UNION子句可以把兩個或多個SELECT語句查詢的結(jié)果組合成一個結(jié)果集。其語法形式如下:SELECT_statement1UNION[ALL]SELECT_statement2第6章數(shù)據(jù)查詢6.3.5
生成一個新表在對表進(jìn)行查詢時,我們可以使用INTO子句將查詢生成一個新表,此方法常用于創(chuàng)建的副本或創(chuàng)建臨時表,其語法形式為:SELECT[ALL|DISTINCT][TOPn[PERCENT]select_list[INTOnew_table]FROMtable_name[WHEREsearch_condition]第6章數(shù)據(jù)查詢6.4
實(shí)
訓(xùn)
項(xiàng)
目2、針對上一章創(chuàng)建的學(xué)生成績管理數(shù)據(jù)庫中的三個表,完成以下查詢。1)查詢?nèi)w學(xué)生的選課情況,其成績列都加5,并為各列設(shè)置中問別名。2)顯示所有選課學(xué)生的的學(xué)號。3)顯示所有選課學(xué)生的的學(xué)號并去掉重復(fù)行。4)查詢學(xué)生選課成績大于80分的學(xué)生學(xué)號、課程號、成績。
5)查詢計算機(jī)系全體學(xué)生的學(xué)號、姓名。
6)查詢學(xué)生選課成績在80—90分之間的學(xué)生學(xué)號、課程號和成績。
7)查詢計算機(jī)系、建筑工程系的學(xué)生的學(xué)號及姓名。
8)查詢不是計算機(jī)系、建筑工程系的學(xué)生的學(xué)號及姓名。
9)
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年某咨詢公司與某企業(yè)咨詢服務(wù)合同
- 2024年物業(yè)買賣信息保密合同
- 鎂鉻質(zhì)耐火產(chǎn)品行業(yè)行業(yè)發(fā)展趨勢及投資戰(zhàn)略研究分析報告
- 高中語文教案模板
- 輔導(dǎo)員個人年終工作總結(jié)5篇范文
- 八年級生物教學(xué)工作總結(jié)【10篇】
- 教師個人工作辭職報告(合集15篇)
- 員工辭職報告(合集15篇)
- 計算機(jī)畢業(yè)實(shí)習(xí)報告合集五篇
- 2021年國慶節(jié)主題活動總結(jié)五篇
- 全國第三屆職業(yè)技能大賽(數(shù)字孿生應(yīng)用技術(shù))選拔賽理論考試題庫(含答案)
- 應(yīng)用數(shù)理統(tǒng)計知到智慧樹章節(jié)測試課后答案2024年秋中國農(nóng)業(yè)大學(xué)
- 文藝復(fù)興史學(xué)習(xí)通超星期末考試答案章節(jié)答案2024年
- 創(chuàng)新轉(zhuǎn)化管理智慧樹知到期末考試答案章節(jié)答案2024年山東大學(xué)
- 四川省成都市2023-2024學(xué)年高二上學(xué)期期末校級調(diào)研聯(lián)考數(shù)學(xué)試題【含答案解析】
- 2022版《義務(wù)教育教學(xué)新課程標(biāo)準(zhǔn)》解讀課件
- 二級公立醫(yī)院績效考核三級手術(shù)目錄(2020版)
- 6人小品《沒有學(xué)習(xí)的人不傷心》臺詞完整版
- 2023-2024學(xué)年四川省成都市錦江區(qū)四年級數(shù)學(xué)第一學(xué)期期末考試試題含答案
- 廣東省國家公務(wù)員錄用體檢表
- 化工生產(chǎn)車間人員配置方案(精編版)
評論
0/150
提交評論