第07章基本SQL語(yǔ)句
《第07章基本SQL語(yǔ)句》由會(huì)員分享,可在線(xiàn)閱讀,更多相關(guān)《第07章基本SQL語(yǔ)句(37頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1、第07章基本SQL語(yǔ)句第1頁(yè),共37頁(yè)。7.1 Transact-SQL7.1 Transact-SQL語(yǔ)言語(yǔ)言Transact-SQL語(yǔ)語(yǔ)言是言是對(duì)標(biāo)對(duì)標(biāo)準(zhǔn)準(zhǔn)SQL語(yǔ)語(yǔ)言的言的實(shí)現(xiàn)實(shí)現(xiàn)。不。不過(guò)過(guò),由于,由于不同的數(shù)據(jù)不同的數(shù)據(jù)庫(kù)庫(kù)系系統(tǒng)統(tǒng),廠商,廠商實(shí)現(xiàn)實(shí)現(xiàn)的的SQL語(yǔ)語(yǔ)言并不一言并不一樣樣,這這就就導(dǎo)導(dǎo)致了數(shù)據(jù)致了數(shù)據(jù)庫(kù)庫(kù)的具體的具體SQL語(yǔ)語(yǔ)言言間間存在一定程度上的差異。存在一定程度上的差異。所以,用所以,用戶(hù)戶(hù)在使用在使用SQL語(yǔ)語(yǔ)言言時(shí)時(shí),一定要明確特定,一定要明確特定SQL語(yǔ)語(yǔ)言的特殊性,而且言的特殊性,而且應(yīng)應(yīng)盡量使用盡量使用標(biāo)標(biāo)準(zhǔn)化準(zhǔn)化SQL語(yǔ)語(yǔ)句,而不要去句,而不要去使用那
2、些特殊性的使用那些特殊性的SQL語(yǔ)語(yǔ)句。句。第2頁(yè),共37頁(yè)。7.2 7.2 數(shù)據(jù)定義語(yǔ)言數(shù)據(jù)定義語(yǔ)言Transact-SQL語(yǔ)語(yǔ)言是一種數(shù)據(jù)定言是一種數(shù)據(jù)定義語(yǔ)義語(yǔ)言。所言。所謂謂數(shù)據(jù)定數(shù)據(jù)定義語(yǔ)義語(yǔ)言,是指用于定言,是指用于定義義數(shù)據(jù)格式的數(shù)據(jù)格式的語(yǔ)語(yǔ)言。言。這這里所里所說(shuō)說(shuō)的數(shù)據(jù)格式的數(shù)據(jù)格式是存是存儲(chǔ)儲(chǔ)數(shù)據(jù)的構(gòu)造以及所存數(shù)據(jù)的構(gòu)造以及所存儲(chǔ)儲(chǔ)數(shù)據(jù)數(shù)據(jù)項(xiàng)項(xiàng)之之間間的關(guān)系。數(shù)據(jù)格的關(guān)系。數(shù)據(jù)格式定式定義義包括包括創(chuàng)創(chuàng)立格式、立格式、刪刪除格式、更改格式,而除格式、更改格式,而對(duì)應(yīng)對(duì)應(yīng)的的語(yǔ)語(yǔ)句分句分別為別為CEATE語(yǔ)語(yǔ)句、句、DROP語(yǔ)語(yǔ)句、句、ALTER語(yǔ)語(yǔ)句。句。REVOKE語(yǔ)語(yǔ)句
3、是句是處處理理權(quán)權(quán)限的主要限的主要語(yǔ)語(yǔ)句。句。CEATE語(yǔ)語(yǔ)句、句、DROP語(yǔ)語(yǔ)句、句、ALTER語(yǔ)語(yǔ)句和句和REVOKE等等語(yǔ)語(yǔ)句并不是一個(gè)句并不是一個(gè)語(yǔ)語(yǔ)句,而是一句,而是一組語(yǔ)組語(yǔ)句。句。第3頁(yè),共37頁(yè)。7.2.1 CREATE7.2.1 CREATE語(yǔ)句:創(chuàng)立數(shù)據(jù)庫(kù)語(yǔ)句:創(chuàng)立數(shù)據(jù)庫(kù)CREATE語(yǔ)語(yǔ)句主要用于數(shù)據(jù)定句主要用于數(shù)據(jù)定義義,包括定,包括定義義數(shù)據(jù)的格式,以數(shù)據(jù)的格式,以及其他屬性。其中,數(shù)據(jù)定及其他屬性。其中,數(shù)據(jù)定義義的格式和屬性限制了插入數(shù)的格式和屬性限制了插入數(shù)據(jù)據(jù)庫(kù)庫(kù)中的數(shù)據(jù)的格式。所以,在數(shù)據(jù)中的數(shù)據(jù)的格式。所以,在數(shù)據(jù)庫(kù)設(shè)計(jì)時(shí)庫(kù)設(shè)計(jì)時(shí),數(shù)據(jù)定,數(shù)據(jù)定義義階階段的
4、工作很重要。段的工作很重要。為為了做好數(shù)據(jù)定了做好數(shù)據(jù)定義義工作,在定工作,在定義義數(shù)據(jù)數(shù)據(jù)構(gòu)造前,用構(gòu)造前,用戶(hù)戶(hù)需要需要對(duì)對(duì)企企業(yè)業(yè)的常用數(shù)據(jù)的格式的常用數(shù)據(jù)的格式進(jìn)進(jìn)展分析。展分析。第4頁(yè),共37頁(yè)。7.2.2 DROP7.2.2 DROP語(yǔ)句:刪除數(shù)據(jù)庫(kù)語(yǔ)句:刪除數(shù)據(jù)庫(kù)在在SQL Server里,里,DROP語(yǔ)語(yǔ)句和句和CREATE語(yǔ)語(yǔ)句是句是對(duì)應(yīng)對(duì)應(yīng)的,的,二者甚至在形式和數(shù)目上都很一二者甚至在形式和數(shù)目上都很一樣樣。如。如CREATE DATABASE語(yǔ)語(yǔ)句句對(duì)應(yīng)對(duì)應(yīng)于于DROP DATABASE語(yǔ)語(yǔ)句。不句。不過(guò)過(guò),DROP語(yǔ)語(yǔ)句一般都是句一般都是較為簡(jiǎn)單較為簡(jiǎn)單的,不像的,不像
5、CREATE語(yǔ)語(yǔ)句那句那樣樣具有復(fù)具有復(fù)雜雜的的語(yǔ)語(yǔ)法構(gòu)造。一般情況下,法構(gòu)造。一般情況下,DROP語(yǔ)語(yǔ)句的格式如句的格式如下。下。DROP 對(duì)對(duì)象象 對(duì)對(duì)象名象名第5頁(yè),共37頁(yè)。7.2.3 ALTER7.2.3 ALTER語(yǔ)句:修改數(shù)據(jù)庫(kù)語(yǔ)句:修改數(shù)據(jù)庫(kù)從從ALTER語(yǔ)語(yǔ)句的含句的含義義來(lái)看,來(lái)看,ALTER語(yǔ)語(yǔ)句是很友好的。因句是很友好的。因?yàn)闉锳LTER語(yǔ)語(yǔ)句能句能夠夠在定在定義對(duì)義對(duì)象后,象后,對(duì)對(duì)對(duì)對(duì)象象進(jìn)進(jìn)展修改。不展修改。不過(guò)過(guò),實(shí)際實(shí)際的情況卻并不如想象中那么好。在的情況卻并不如想象中那么好。在對(duì)對(duì)象象設(shè)計(jì)階設(shè)計(jì)階段,可段,可以使用以使用ALTER修改,但是在修改,但是在現(xiàn)實(shí)
6、現(xiàn)實(shí)工作中,用工作中,用戶(hù)戶(hù)最好不要最好不要使用使用ALTER語(yǔ)語(yǔ)句。句。該語(yǔ)該語(yǔ)句可能造成數(shù)據(jù)的句可能造成數(shù)據(jù)的喪喪失或數(shù)據(jù)精失或數(shù)據(jù)精度的降低。度的降低。第6頁(yè),共37頁(yè)。7.2.4 REVOKE7.2.4 REVOKE語(yǔ)句:平安性語(yǔ)句語(yǔ)句:平安性語(yǔ)句上面介上面介紹紹的的語(yǔ)語(yǔ)句都是關(guān)于數(shù)據(jù)句都是關(guān)于數(shù)據(jù)庫(kù)對(duì)庫(kù)對(duì)象的,象的,這這里的里的REVOKE語(yǔ)語(yǔ)句那么是關(guān)于平安性的。句那么是關(guān)于平安性的。REVOKE語(yǔ)語(yǔ)句、句、GRANT語(yǔ)語(yǔ)句以句以及及DENY等等語(yǔ)語(yǔ)句定句定義義了了對(duì)對(duì)象的象的權(quán)權(quán)限。關(guān)于限。關(guān)于權(quán)權(quán)限,將在后文限,將在后文中表達(dá)。中表達(dá)。這這里只是里只是強(qiáng)強(qiáng)調(diào)說(shuō)調(diào)說(shuō)明明權(quán)權(quán)限也是
7、數(shù)據(jù)定限也是數(shù)據(jù)定義義的一局部。的一局部。第7頁(yè),共37頁(yè)。7.3 7.3 數(shù)據(jù)操縱語(yǔ)言數(shù)據(jù)操縱語(yǔ)言在使用數(shù)據(jù)定在使用數(shù)據(jù)定義語(yǔ)義語(yǔ)言言 DDL 定定義義了數(shù)據(jù)存了數(shù)據(jù)存儲(chǔ)儲(chǔ)的格式和位置后,的格式和位置后,用用戶(hù)戶(hù)就可以使用數(shù)據(jù)操就可以使用數(shù)據(jù)操縱語(yǔ)縱語(yǔ)言言 DML 來(lái)操作定來(lái)操作定義義的的對(duì)對(duì)象。象。數(shù)據(jù)操數(shù)據(jù)操縱語(yǔ)縱語(yǔ)言主要包括數(shù)據(jù)言主要包括數(shù)據(jù)查詢(xún)查詢(xún)與數(shù)據(jù)更新,其中,數(shù)據(jù)與數(shù)據(jù)更新,其中,數(shù)據(jù)查詢(xún)查詢(xún)主要是主要是SELECT,而數(shù)據(jù)更新那么包括插入,而數(shù)據(jù)更新那么包括插入 INSERT語(yǔ)語(yǔ)句句、更新、更新 UPDATE語(yǔ)語(yǔ)句句、刪刪除除 DELETE語(yǔ)語(yǔ)句句。這這四四類(lèi)語(yǔ)類(lèi)語(yǔ)句可以句可
8、以簡(jiǎn)簡(jiǎn)稱(chēng)稱(chēng)為為“查查增改增改刪刪。第8頁(yè),共37頁(yè)。7.3.1 SELECT7.3.1 SELECT語(yǔ)句:查詢(xún)數(shù)據(jù)語(yǔ)句:查詢(xún)數(shù)據(jù)所有基于數(shù)據(jù)所有基于數(shù)據(jù)庫(kù)庫(kù)的的應(yīng)應(yīng)用系用系統(tǒng)統(tǒng)都會(huì)使用都會(huì)使用SELECT語(yǔ)語(yǔ)句從數(shù)據(jù)句從數(shù)據(jù)庫(kù)庫(kù)中提取數(shù)據(jù),并將中提取數(shù)據(jù),并將獲獲得的數(shù)據(jù)按用得的數(shù)據(jù)按用戶(hù)戶(hù)的要求的要求輸輸出出給給用用戶(hù)戶(hù)。根據(jù)用根據(jù)用戶(hù)戶(hù)使用具體使用具體SELECT語(yǔ)語(yǔ)句的不同,數(shù)據(jù)句的不同,數(shù)據(jù)庫(kù)庫(kù)從不同角從不同角度向用度向用戶(hù)戶(hù)展示數(shù)據(jù)展示數(shù)據(jù)庫(kù)庫(kù)中的數(shù)據(jù)。中的數(shù)據(jù)。SELECT語(yǔ)語(yǔ)句句執(zhí)執(zhí)行后,將行后,將返回一返回一組記錄組記錄,而,而這組記錄這組記錄就是就是記錄記錄集集 結(jié)結(jié)果集果集
9、。不。不過(guò)過(guò),SELECT語(yǔ)語(yǔ)句是很復(fù)句是很復(fù)雜雜的。的。第9頁(yè),共37頁(yè)。7.3.2 INSERT7.3.2 INSERT語(yǔ)句:插入數(shù)據(jù)語(yǔ)句:插入數(shù)據(jù)在在SQL Server中,中,INSERT語(yǔ)語(yǔ)句句負(fù)責(zé)負(fù)責(zé)向數(shù)據(jù)向數(shù)據(jù)庫(kù)庫(kù)中插入中插入記錄記錄。在在獲獲取一條新的取一條新的記錄記錄后,就需要使用后,就需要使用INSERT語(yǔ)語(yǔ)句向數(shù)據(jù)句向數(shù)據(jù)庫(kù)庫(kù)插入一個(gè)新行插入一個(gè)新行 記錄記錄。第10頁(yè),共37頁(yè)。7.3.3 UPDATE7.3.3 UPDATE語(yǔ)句:更新數(shù)據(jù)語(yǔ)句:更新數(shù)據(jù)在使用在使用INSERT語(yǔ)語(yǔ)句向數(shù)據(jù)句向數(shù)據(jù)庫(kù)庫(kù)中插入數(shù)據(jù)后,數(shù)據(jù)就保存到中插入數(shù)據(jù)后,數(shù)據(jù)就保存到了數(shù)據(jù)了數(shù)據(jù)庫(kù)庫(kù)中
10、。不中。不過(guò)過(guò),如果外界數(shù)據(jù),如果外界數(shù)據(jù)發(fā)發(fā)生生變變化,就需要化,就需要對(duì)對(duì)數(shù)數(shù)據(jù)據(jù)庫(kù)庫(kù)中的數(shù)據(jù)中的數(shù)據(jù)進(jìn)進(jìn)展更新。在展更新。在SQL Server中,主要使用中,主要使用UPDATE語(yǔ)語(yǔ)句更新數(shù)據(jù)句更新數(shù)據(jù)庫(kù)庫(kù)中的數(shù)據(jù),特中的數(shù)據(jù),特別別是更新局部字段。是更新局部字段。與與INSERT不同,不同,這這里并不插入新行里并不插入新行 記錄記錄,而是修改原,而是修改原行行 記錄記錄。第11頁(yè),共37頁(yè)。7.3.4 Delete7.3.4 Delete語(yǔ)句:刪除數(shù)據(jù)語(yǔ)句:刪除數(shù)據(jù)如果表中的數(shù)據(jù)不再使用或已如果表中的數(shù)據(jù)不再使用或已經(jīng)備經(jīng)備份完份完畢畢,那么,那么為為了了釋釋放效放效勞勞器的器的資資
11、源,就需要及源,就需要及時(shí)刪時(shí)刪除表中的數(shù)據(jù)。除表中的數(shù)據(jù)。第12頁(yè),共37頁(yè)。7.4 7.4 其他常用語(yǔ)句其他常用語(yǔ)句上面介上面介紹紹了了SELECT、INSERT、UPDATE、DELETE等等語(yǔ)語(yǔ)句的根本形式。下面將介句的根本形式。下面將介紹紹一些常用的子句,一些常用的子句,這這些子句在些子句在與上述與上述4個(gè)個(gè)語(yǔ)語(yǔ)句配合使用句配合使用時(shí)時(shí),可以,可以實(shí)現(xiàn)實(shí)現(xiàn)更加更加強(qiáng)強(qiáng)大的數(shù)據(jù)操大的數(shù)據(jù)操作功能。作功能。1帶帶WHERE子句的子句的SELECT語(yǔ)語(yǔ)句句2帶帶WHERE子句的子句的UPDATE語(yǔ)語(yǔ)句句3帶帶WHERE子句的子句的DELETE語(yǔ)語(yǔ)句句第13頁(yè),共37頁(yè)。7.4.1 WHER
12、E子句:給出條件語(yǔ)句在在SQL Server中,中,WHERE子句子句可以用于可以用于SELECT語(yǔ)句、語(yǔ)句、DELETE語(yǔ)句、語(yǔ)句、UPDATE語(yǔ)句語(yǔ)句中。中。1帶帶WHERE子句的子句的SELECT語(yǔ)句語(yǔ)句2帶帶WHERE子句的子句的UPDATE語(yǔ)句語(yǔ)句3帶帶WHERE子句的子句的DELETE語(yǔ)句語(yǔ)句第14頁(yè),共37頁(yè)。7.4.2 7.4.2 帶帶ANDAND關(guān)鍵字的關(guān)鍵字的WHEREWHERE子句子句在介在介紹紹AND關(guān)關(guān)鍵鍵字之前,需要介字之前,需要介紹紹一下布一下布爾爾表達(dá)式。所表達(dá)式。所謂謂布布爾爾表達(dá)式是指表達(dá)式的各成分由關(guān)系表達(dá)式是指表達(dá)式的各成分由關(guān)系連連接符接符連連接,而且
13、表接,而且表達(dá)式的達(dá)式的值為值為T(mén)RUE或或FALSE。其中,用于。其中,用于連連接布接布爾爾表達(dá)式表達(dá)式的的連連接接詞詞有有NOT 非非、AND 積積、OR 和和 3個(gè)。個(gè)。這這里將以里將以AND為為例,介例,介紹這紹這3個(gè)個(gè)連連接接詞詞。第15頁(yè),共37頁(yè)。7.4.3 GROUP BY7.4.3 GROUP BY子句:分組語(yǔ)句子句:分組語(yǔ)句GROUP BY子句具有符合子句具有符合ISO的的語(yǔ)語(yǔ)法和不符合法和不符合ISO的的語(yǔ)語(yǔ)法兩法兩種構(gòu)造。在一條種構(gòu)造。在一條SELECT語(yǔ)語(yǔ)句中只能使用一種句中只能使用一種語(yǔ)語(yǔ)法法樣樣式,式,在在這這里,用里,用戶(hù)戶(hù)使用符合使用符合ISO的的語(yǔ)語(yǔ)法,因法
14、,因?yàn)闉椴环喜环螴SO語(yǔ)語(yǔ)法法的目的是的目的是為為了了實(shí)現(xiàn)實(shí)現(xiàn)向后兼容。向后兼容。這這里里僅僅介介紹紹符合符合ISO的的語(yǔ)語(yǔ)法,法,如下。如下。1不不帶帶WHERE子句子句僅僅含含GROUP BY子句的子句的SELECT語(yǔ)語(yǔ)句句 2帶帶WHERE子句和子句和GROUP BY子句的子句的SELECT語(yǔ)語(yǔ)句句第16頁(yè),共37頁(yè)。7.4.4 HAVING7.4.4 HAVING子句:分組條件子句:分組條件HAVING子句通常在子句通常在GROUP BY子句中使用。如果不使用子句中使用。如果不使用GROUP BY子句,那么子句,那么HAVING的行的行為為與與WHERE子句一子句一樣樣。不。不過(guò)過(guò)
15、,這這種方式不推薦使用,因種方式不推薦使用,因?yàn)闉橛泻芏嘞拗?。有很多限制。HAVING子句的所有列都必子句的所有列都必須須出出現(xiàn)現(xiàn)在在SELECT語(yǔ)語(yǔ)句的列表句的列表中。具體中。具體HAVING子句的用法大致分子句的用法大致分為為以下幾種情況。以下幾種情況。1帶帶HAVING子句而不子句而不帶帶WHERE子句的子句的SELECT語(yǔ)語(yǔ)句句2帶帶HAVING子句和子句和WHERE子句的子句的SELECT語(yǔ)語(yǔ)句句第17頁(yè),共37頁(yè)。7.4.5 ORDER BY7.4.5 ORDER BY子句:排序語(yǔ)句子句:排序語(yǔ)句ORDER BY子句用在指定子句用在指定SELECT語(yǔ)語(yǔ)句返回的句返回的結(jié)結(jié)果集后,主
16、果集后,主要用于要用于對(duì)結(jié)對(duì)結(jié)果集果集進(jìn)進(jìn)展排序。在默展排序。在默認(rèn)認(rèn)情況下,由情況下,由SELECT語(yǔ)語(yǔ)句返回句返回結(jié)結(jié)果集中的果集中的記錄記錄是按照表中是按照表中記錄記錄的物理的物理順順序排列的。序排列的。第18頁(yè),共37頁(yè)。7.4.6 TOP7.4.6 TOP子句:查看前幾條記錄子句:查看前幾條記錄TOP表達(dá)式可用在表達(dá)式可用在SELECT、INSERT、UPDATE和和DELETE語(yǔ)語(yǔ)句中。不句中。不過(guò)過(guò),TOP表達(dá)式主要用于表達(dá)式主要用于SELECT語(yǔ)語(yǔ)句中,其表達(dá)式句中,其表達(dá)式語(yǔ)語(yǔ)法構(gòu)造如下。法構(gòu)造如下。TOP(Expression)PERCENT WITH TIES 第19頁(yè),
17、共37頁(yè)。7.4.7 DISTINCT7.4.7 DISTINCT子句:去掉重復(fù)記錄子句:去掉重復(fù)記錄提到關(guān)提到關(guān)鍵鍵字字DISTINCT,就不得不提到關(guān),就不得不提到關(guān)鍵鍵字字ALL。ALL是是指指結(jié)結(jié)果集中可以包含重復(fù)行,而且它是默果集中可以包含重復(fù)行,而且它是默認(rèn)值認(rèn)值。而關(guān)。而關(guān)鍵鍵字字DISTINCT可從可從SELECT語(yǔ)語(yǔ)句的句的結(jié)結(jié)果集中消除重復(fù)的行。果集中消除重復(fù)的行。不不過(guò)過(guò),如果沒(méi)有指定,如果沒(méi)有指定DISTINCT,將返回所有行,將返回所有行 包括重復(fù)包括重復(fù)的行的行。第20頁(yè),共37頁(yè)。7.4.8 BETWEEN7.4.8 BETWEEN子句:指定范圍條件子句:指定范圍
18、條件在在SQL Server中,中,BETWEEN子句是子句是較為較為重要的字句,用重要的字句,用于指定一個(gè)范于指定一個(gè)范圍圍條件,其條件,其語(yǔ)語(yǔ)法構(gòu)造如下。法構(gòu)造如下。test_Expression BETWEEN BEGIN_Expression AND END_Expression其其實(shí)實(shí),該該子句相當(dāng)于數(shù)學(xué)中的兩個(gè)不等式:子句相當(dāng)于數(shù)學(xué)中的兩個(gè)不等式:BEGIN_Expression=test_Expression=END_Expression第21頁(yè),共37頁(yè)。7.4.9 7.4.9 模糊查詢(xún)模糊查詢(xún)LIKELIKE子句子句上面介上面介紹紹WHERE子句子句時(shí)時(shí),說(shuō)說(shuō)到了字符串比到了
19、字符串比較較的的問(wèn)題問(wèn)題。不。不過(guò)過(guò),那種字符串比那種字符串比較較主要是主要是、=等關(guān)系運(yùn)算符等關(guān)系運(yùn)算符連連接。在某種接。在某種程度上,程度上,這這些運(yùn)算符都可以些運(yùn)算符都可以說(shuō)說(shuō)是字符串的準(zhǔn)確比是字符串的準(zhǔn)確比較較。在。在Transact-SQL中,中,還還提供了提供了LIKE子句用于字符串的模糊子句用于字符串的模糊比比較較,即模糊匹配。,即模糊匹配。第22頁(yè),共37頁(yè)。7.4.10 IN7.4.10 IN子句:值包含在列表中子句:值包含在列表中在在SQL Server中,中,IN語(yǔ)語(yǔ)句主要用于確定指定列的句主要用于確定指定列的值值在子在子查查詢(xún)?cè)兓蛄斜碇小;蛄斜碇?。IN語(yǔ)語(yǔ)句的句的語(yǔ)語(yǔ)法
20、構(gòu)造如下。法構(gòu)造如下。test_Expression IN (subquery|Expression ,n)第23頁(yè),共37頁(yè)。7.4.11 NOT IN7.4.11 NOT IN子句:值不包含在列表中子句:值不包含在列表中當(dāng)然,當(dāng)然,IN語(yǔ)語(yǔ)句與句與LIKE語(yǔ)語(yǔ)句一句一樣樣,也可以和,也可以和NOT語(yǔ)語(yǔ)句配合使句配合使用。用。NOT語(yǔ)語(yǔ)句將句將IN語(yǔ)語(yǔ)句的句的值值取反,即如果取反,即如果IN語(yǔ)語(yǔ)句句為為T(mén)RUE,那么,那么NOT IN子句那么子句那么為為FALSE。這這里之所以里之所以單單獨(dú)列出獨(dú)列出NOT IN,是因,是因?yàn)闉橛糜脩?hù)經(jīng)戶(hù)經(jīng)常用到常用到NOT IN,便于用,便于用戶(hù)查詢(xún)戶(hù)查詢(xún)
21、本本書(shū)書(shū)。第24頁(yè),共37頁(yè)。7.4.12 COMPUTE7.4.12 COMPUTE子句:用于生成統(tǒng)計(jì)信息子句:用于生成統(tǒng)計(jì)信息COMPUTE子句用于生成子句用于生成統(tǒng)計(jì)統(tǒng)計(jì)信息,并將信息,并將統(tǒng)計(jì)統(tǒng)計(jì)信息信息顯顯示在示在結(jié)結(jié)果集的后面。果集的后面。COMPUTE子子句的句的語(yǔ)語(yǔ)法構(gòu)造如下。法構(gòu)造如下。COMPUTE AVG|COUNT|MAX|MIN|STDEV|STDEVP|VAR|VARP|SUM (Expression),n BY Expression ,n 第25頁(yè),共37頁(yè)。7.4.13 COMPUTE BY7.4.13 COMPUTE BY子句:計(jì)算統(tǒng)計(jì)信息子句:計(jì)算統(tǒng)計(jì)信息C
22、OMPUTE BY子句與子句與COMPUTE子句子句類(lèi)類(lèi)似,也可能在未來(lái)似,也可能在未來(lái)版本中版本中刪刪除,所以不建除,所以不建議議使用。如果使用使用。如果使用COMPUTE BY,那么必,那么必須須使用使用ORDER BY子句。表達(dá)式的列必子句。表達(dá)式的列必須須與在與在ORDER BY中的列一中的列一樣樣或是其子集,并且或是其子集,并且順順序一序一樣樣。例。例如,如果如,如果ORDER BY子句子句為為ORDER BY a,b,c,那么,那么COMPUTE子句的可用形式如下。子句的可用形式如下。COMPUTE BY a,b,c。COMPUTE BY a,b。COMPUTE BY a。第26頁(yè)
23、,共37頁(yè)。7.4.14 7.4.14 列的別名列的別名前面的前面的許許多例如都用到了列的多例如都用到了列的別別名,而且在前面介名,而且在前面介紹紹其他其他類(lèi)類(lèi)型型時(shí)時(shí),筆者也介,筆者也介紹紹了列的了列的別別名名類(lèi)類(lèi)型。其型。其實(shí)實(shí),列的,列的別別名在名在SELECT語(yǔ)語(yǔ)句中句中經(jīng)經(jīng)常用到。其中,列的常用到。其中,列的別別名名類(lèi)類(lèi)型主要由型主要由AS和和=來(lái)命名?;谇懊娴慕閬?lái)命名。基于前面的介紹紹,下面將,下面將給給出一個(gè)在出一個(gè)在查詢(xún)查詢(xún)中使用列中使用列別別名的例如。如下名的例如。如下SQL語(yǔ)語(yǔ)句將句將查詢(xún)查詢(xún)數(shù)據(jù)數(shù)據(jù)庫(kù)庫(kù)database_demo的表,并使用的表,并使用別別名名顯顯示示查
24、詢(xún)查詢(xún)到的字段。到的字段。第27頁(yè),共37頁(yè)。7.5 7.5 關(guān)系連接關(guān)系連接在在SELECT語(yǔ)語(yǔ)句涉及到多個(gè)表句涉及到多個(gè)表時(shí)時(shí),可以用子,可以用子查詢(xún)查詢(xún)解決。解決。SQL Server還還提供了一提供了一組組關(guān)關(guān)鍵鍵字來(lái)字來(lái)處處理多個(gè)表的理多個(gè)表的查詢(xún)查詢(xún),這組這組關(guān)關(guān)鍵鍵字字組組成了關(guān)系成了關(guān)系連連接的核心。所接的核心。所謂謂關(guān)系關(guān)系連連接,就是接,就是連連接接查詢(xún)查詢(xún)這這是一種不同于子是一種不同于子查詢(xún)查詢(xún)使用多個(gè)表的使用多個(gè)表的查詢(xún)查詢(xún)方式。方式??梢钥梢哉f(shuō)說(shuō),前面介,前面介紹紹的的SQL語(yǔ)語(yǔ)句都是根底句都是根底語(yǔ)語(yǔ)句,在工作中句,在工作中較較少用到那少用到那樣簡(jiǎn)單樣簡(jiǎn)單的的語(yǔ)語(yǔ)句
25、。句。連連接接查詢(xún)查詢(xún)是最常用、最重要的是最常用、最重要的查查詢(xún)?cè)兎绞健7绞?。?8頁(yè),共37頁(yè)。7.5.1 7.5.1 連接查詢(xún)介紹連接查詢(xún)介紹既然兩個(gè)表可以用于既然兩個(gè)表可以用于連連接接查詢(xún)查詢(xún),那么兩個(gè)表必,那么兩個(gè)表必須須要有要有聯(lián)聯(lián)系系兩個(gè)表之兩個(gè)表之間間存在一存在一樣樣意意義義的列。的列。第29頁(yè),共37頁(yè)。7.5.2 7.5.2 笛卡爾乘積笛卡爾乘積上面介上面介紹連紹連接接查詢(xún)時(shí)查詢(xún)時(shí)提到提到過(guò)過(guò),SQL Server將參與將參與連連接接查詢(xún)查詢(xún)的表的所有的表的所有記錄進(jìn)記錄進(jìn)展展組組合并形成笛卡合并形成笛卡爾爾積積 穿插穿插連連接接 。根。根據(jù)上面介據(jù)上面介紹紹的的連連接接查詢(xún)
26、查詢(xún)的的執(zhí)執(zhí)行步行步驟驟,用,用戶(hù)戶(hù)不不難難了解生成和了解生成和實(shí)現(xiàn)實(shí)現(xiàn)笛卡笛卡爾爾積積的方法:在的方法:在連連接接查詢(xún)查詢(xún)中,將中,將WHERE子句、子句、GROUP BY子句、子句、ORDER BY子句以及子句以及SELECT語(yǔ)語(yǔ)句中句中的聚合函數(shù)等都省略,直接使用表中的的聚合函數(shù)等都省略,直接使用表中的記錄組記錄組合形成笛卡合形成笛卡爾爾積積。第30頁(yè),共37頁(yè)。7.5.3 7.5.3 內(nèi)部連接內(nèi)部連接內(nèi)部?jī)?nèi)部連連接接 INNER JOIN 是相是相對(duì)對(duì)于外部于外部鏈鏈接而言的,內(nèi)部接而言的,內(nèi)部連連接用來(lái)接用來(lái)組組合兩個(gè)或多個(gè)表的合兩個(gè)或多個(gè)表的記錄記錄。通常,內(nèi)部。通常,內(nèi)部連連接按
27、照接按照連連接條件,從生成的接條件,從生成的結(jié)結(jié)果集中果集中刪刪除在其他表中沒(méi)有被匹配的除在其他表中沒(méi)有被匹配的記錄記錄。根據(jù)內(nèi)部。根據(jù)內(nèi)部連連接使用比接使用比較較方式的不同,內(nèi)部方式的不同,內(nèi)部連連接可以接可以分分為為等等值連值連接、自然接、自然連連接、不等接、不等連連接。接。第31頁(yè),共37頁(yè)。7.5.4 7.5.4 使用表別名使用表別名表的表的別別名是名是連連接接查詢(xún)查詢(xún)中中經(jīng)經(jīng)常用到的常用到的處處理表的方法。將表名定理表的方法。將表名定義為義為一個(gè)一個(gè)簡(jiǎn)單簡(jiǎn)單的的別別名,解決了名,解決了編編寫(xiě)寫(xiě)SQL語(yǔ)語(yǔ)句句時(shí)語(yǔ)時(shí)語(yǔ)句句過(guò)長(zhǎng)過(guò)長(zhǎng)的的問(wèn)題問(wèn)題。其中,表。其中,表別別名的名的規(guī)規(guī)那么與前面
28、介那么與前面介紹紹的列的的列的別別名一名一樣樣。這這里里僅給僅給出一個(gè)出一個(gè)簡(jiǎn)單簡(jiǎn)單的的SQL例如。例如。USE database_demoGOSELECT tb1.*FROM table_1 AS tb1第32頁(yè),共37頁(yè)。7.5.5 7.5.5 外部連接外部連接前面介前面介紹紹的的連連接接查詢(xún)查詢(xún)都是返回都是返回滿(mǎn)滿(mǎn)足條件的足條件的記錄記錄。在工作中,。在工作中,用用戶(hù)戶(hù)可能遇到可能遇到這這種情況,即種情況,即顯顯示某一個(gè)表的全部?jī)?nèi)容示某一個(gè)表的全部?jī)?nèi)容 包包括不符合括不符合連連接條件的接條件的記錄記錄。這這個(gè)個(gè)時(shí)時(shí)候就需要用到外部候就需要用到外部連連接,其可以使不符合條件的接,其可以使不
29、符合條件的記錄記錄也出也出現(xiàn)現(xiàn)在在結(jié)結(jié)果中。果中。第33頁(yè),共37頁(yè)。7.5.6 7.5.6 自連接自連接這這里介里介紹紹的自的自連連接是接是連連接接查詢(xún)查詢(xún)的一個(gè)特例。所的一個(gè)特例。所謂謂自自連連接,就接,就是表與自身的是表與自身的連連接,是內(nèi)部接,是內(nèi)部連連接的一種。自接的一種。自連連接可以使用接可以使用戶(hù)戶(hù)同同時(shí)時(shí)操作同一個(gè)表的不同行。它使用操作同一個(gè)表的不同行。它使用較較少,但是很重要。少,但是很重要。自自連連接適用于如下接適用于如下場(chǎng)場(chǎng)景:某班景:某班級(jí)級(jí)學(xué)生表學(xué)生表student中包含了中包含了該該班學(xué)生今年班學(xué)生今年選選修的修的課課程以及程以及課課程分?jǐn)?shù)。程分?jǐn)?shù)。現(xiàn)現(xiàn)在,需要在,
30、需要查查看看同一個(gè)學(xué)生的不同學(xué)科的成同一個(gè)學(xué)生的不同學(xué)科的成績(jī)績(jī)。第34頁(yè),共37頁(yè)。7.5.7 7.5.7 聯(lián)合查詢(xún)聯(lián)合查詢(xún) 在在Transact-SQL中,中,還還有一有一類(lèi)查詢(xún)類(lèi)查詢(xún),叫,叫聯(lián)聯(lián)合合查詢(xún)查詢(xún)。聯(lián)聯(lián)合合查查詢(xún)?cè)兪且允且許ELECT語(yǔ)語(yǔ)句的句的結(jié)結(jié)果集果集為為根底的。與其根底的。與其說(shuō)聯(lián)說(shuō)聯(lián)合合查詢(xún)查詢(xún)是一個(gè)是一個(gè)查詢(xún)查詢(xún),不如,不如說(shuō)聯(lián)說(shuō)聯(lián)合合查詢(xún)查詢(xún)是一個(gè)運(yùn)算符。不是一個(gè)運(yùn)算符。不過(guò)過(guò),這這是是一種使用起來(lái)不太靈活的一種使用起來(lái)不太靈活的查詢(xún)查詢(xún)方式。除非用方式。除非用戶(hù)戶(hù)想將想將查詢(xún)結(jié)查詢(xún)結(jié)果一次性果一次性輸輸出,出,這時(shí)這時(shí)可以使用可以使用聯(lián)聯(lián)合合查詢(xún)查詢(xún)。許許多多聯(lián)
31、聯(lián)合合查詢(xún)查詢(xún)都都可以用可以用連連接接查詢(xún)查詢(xún)替代,不推薦使用替代,不推薦使用聯(lián)聯(lián)合合查詢(xún)查詢(xún)。第35頁(yè),共37頁(yè)。7.6 7.6 小結(jié)小結(jié)本章是本本章是本書(shū)書(shū)最最為為關(guān)關(guān)鍵鍵的一章,的一章,SQL語(yǔ)語(yǔ)句是在句是在實(shí)際應(yīng)實(shí)際應(yīng)用中使用用中使用最多的局部,每一個(gè)最多的局部,每一個(gè)DBA都都應(yīng)該應(yīng)該十分熟十分熟練練地掌握各種地掌握各種SQL語(yǔ)語(yǔ)句。在句。在實(shí)際應(yīng)實(shí)際應(yīng)用中,數(shù)據(jù)操用中,數(shù)據(jù)操縱語(yǔ)縱語(yǔ)言最言最為為關(guān)關(guān)鍵鍵,由其,由其是是SELECT語(yǔ)語(yǔ)句,十分靈活,表達(dá)了第四代句,十分靈活,表達(dá)了第四代計(jì)計(jì)算機(jī)算機(jī)語(yǔ)語(yǔ)言的言的特點(diǎn)。與其配合的各種常特點(diǎn)。與其配合的各種常見(jiàn)語(yǔ)見(jiàn)語(yǔ)句,句,為為準(zhǔn)確準(zhǔn)確查詢(xún)查詢(xún)到可用數(shù)據(jù)到可用數(shù)據(jù)提供技提供技術(shù)術(shù)保障。保障。第36頁(yè),共37頁(yè)。謝謝!第37頁(yè),共37頁(yè)。
- 溫馨提示:
1: 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 指向核心素養(yǎng)發(fā)展的高中生物學(xué)1輪復(fù)習(xí)備考建議
- 新課程新評(píng)價(jià)新高考導(dǎo)向下高三化學(xué)備考的新思考
- 新時(shí)代背景下化學(xué)高考備考策略及新課程標(biāo)準(zhǔn)的高中化學(xué)教學(xué)思考
- 2025屆江西省高考政治二輪復(fù)習(xí)備考建議
- 新教材新高考背景下的化學(xué)科學(xué)備考策略
- 新高考背景下的2024年高考化學(xué)二輪復(fù)習(xí)備考策略
- 2025屆高三數(shù)學(xué)二輪復(fù)習(xí)備考交流會(huì)課件
- 2025年高考化學(xué)復(fù)習(xí)研究與展望
- 2024年高考化學(xué)復(fù)習(xí)備考講座
- 2025屆高考數(shù)學(xué)二輪復(fù)習(xí)備考策略和方向
- 2024年感動(dòng)中國(guó)十大人物事跡及頒獎(jiǎng)詞
- XX教育系統(tǒng)單位述職報(bào)告教育工作概述教育成果展示面臨的挑戰(zhàn)未來(lái)規(guī)劃
- 2025《增值稅法》全文解讀學(xué)習(xí)高質(zhì)量發(fā)展的增值稅制度規(guī)范增值稅的征收和繳納
- 初中資料:400個(gè)語(yǔ)文優(yōu)秀作文標(biāo)題
- 初中語(yǔ)文考試專(zhuān)項(xiàng)練習(xí)題(含答案)