第07章 基本SQL語(yǔ)句課件.ppt

上傳人:小** 文檔編號(hào):23845467 上傳時(shí)間:2021-06-11 格式:PPT 頁(yè)數(shù):36 大?。?15KB
收藏 版權(quán)申訴 舉報(bào) 下載
第07章 基本SQL語(yǔ)句課件.ppt_第1頁(yè)
第1頁(yè) / 共36頁(yè)
第07章 基本SQL語(yǔ)句課件.ppt_第2頁(yè)
第2頁(yè) / 共36頁(yè)
第07章 基本SQL語(yǔ)句課件.ppt_第3頁(yè)
第3頁(yè) / 共36頁(yè)

下載文檔到電腦,查找使用更方便

5 積分

下載資源

還剩頁(yè)未讀,繼續(xù)閱讀

資源描述:

《第07章 基本SQL語(yǔ)句課件.ppt》由會(huì)員分享,可在線閱讀,更多相關(guān)《第07章 基本SQL語(yǔ)句課件.ppt(36頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。

1、第 7章 基 本 SQL語(yǔ) 句Transact-SQL語(yǔ)言是Microsoft為SQL Server開(kāi)發(fā)的一種標(biāo)準(zhǔn)化SQL語(yǔ)言的實(shí)現(xiàn),也是SQL Server的核心。不過(guò),Transact-SQL并非嚴(yán)格按照標(biāo)準(zhǔn)化SQL語(yǔ)言實(shí)現(xiàn),而是對(duì)標(biāo)準(zhǔn)化SQL語(yǔ)言進(jìn)行了一定程度上的裁剪和拓展。本章主要介紹Transact-SQL語(yǔ)言的基本語(yǔ)句。 7.1 Transact-SQL語(yǔ) 言Transact-SQL語(yǔ)言是對(duì)標(biāo)準(zhǔn)SQL語(yǔ)言的實(shí)現(xiàn)。不過(guò),由于不同的數(shù)據(jù)庫(kù)系統(tǒng),廠商實(shí)現(xiàn)的SQL語(yǔ)言并不相同,這就導(dǎo)致了數(shù)據(jù)庫(kù)的具體SQL語(yǔ)言間存在一定程度上的差異。所以,用戶在使用SQL語(yǔ)言時(shí),一定要明確特定SQL語(yǔ)言的特

2、殊性,而且應(yīng)盡量使用標(biāo)準(zhǔn)化SQL語(yǔ)句,而不要去使用那些特殊性的SQL語(yǔ)句。 7.2 數(shù) 據(jù) 定 義 語(yǔ) 言Transact-SQL語(yǔ)言是一種數(shù)據(jù)定義語(yǔ)言。所謂數(shù)據(jù)定義語(yǔ)言,是指用于定義數(shù)據(jù)格式的語(yǔ)言。這里所說(shuō)的數(shù)據(jù)格式是存儲(chǔ)數(shù)據(jù)的結(jié)構(gòu)以及所存儲(chǔ)數(shù)據(jù)項(xiàng)之間的關(guān)系。數(shù)據(jù)格式定義包括創(chuàng)建格式、刪除格式、更改格式,而對(duì)應(yīng)的語(yǔ)句分別為CEATE語(yǔ)句、DROP語(yǔ)句、ALTER語(yǔ)句。REVOKE語(yǔ)句是處理權(quán)限的主要語(yǔ)句。CEATE語(yǔ)句、DROP語(yǔ)句、ALTER語(yǔ)句和REVOKE等語(yǔ)句并不是一個(gè)語(yǔ)句,而是一組語(yǔ)句。 7.2.1 CREATE語(yǔ) 句 : 創(chuàng) 建 數(shù) 據(jù) 庫(kù)CREATE語(yǔ)句主要用于數(shù)據(jù)定義,包括定

3、義數(shù)據(jù)的格式,以及其他屬性。其中,數(shù)據(jù)定義的格式和屬性限制了插入數(shù)據(jù)庫(kù)中的數(shù)據(jù)的格式。所以,在數(shù)據(jù)庫(kù)設(shè)計(jì)時(shí),數(shù)據(jù)定義階段的工作很重要。為了做好數(shù)據(jù)定義工作,在定義數(shù)據(jù)結(jié)構(gòu)前,用戶需要對(duì)企業(yè)的常用數(shù)據(jù)的格式進(jìn)行分析。 7.2.2 DROP語(yǔ) 句 : 刪 除 數(shù) 據(jù) 庫(kù)在SQL Server里,DROP語(yǔ)句和CREATE語(yǔ)句是對(duì)應(yīng)的,二者甚至在形式和數(shù)目上都很相同。如CREATE DATABASE語(yǔ)句對(duì)應(yīng)于DROP DATABASE語(yǔ)句。不過(guò),DROP語(yǔ)句一般都是較為簡(jiǎn)單的,不像CREATE語(yǔ)句那樣具有復(fù)雜的語(yǔ)法結(jié)構(gòu)。一般情況下,DROP語(yǔ)句的格式如下。DROP 對(duì)象 對(duì)象名 7.2.3 ALTE

4、R語(yǔ) 句 : 修 改 數(shù) 據(jù) 庫(kù)從ALTER語(yǔ)句的含義來(lái)看,ALTER語(yǔ)句是很友好的。因?yàn)锳LTER語(yǔ)句能夠在定義對(duì)象后,對(duì)對(duì)象進(jìn)行修改。不過(guò),實(shí)際的情況卻并不如想象中那么好。在對(duì)象設(shè)計(jì)階段,可以使用ALTER修改,但是在現(xiàn)實(shí)工作中,用戶最好不要使用ALTER語(yǔ)句。該語(yǔ)句可能造成數(shù)據(jù)的丟失或數(shù)據(jù)精度的降低。 7.2.4 REVOKE語(yǔ) 句 : 安 全 性 語(yǔ) 句上面介紹的語(yǔ)句都是關(guān)于數(shù)據(jù)庫(kù)對(duì)象的,這里的REVOKE語(yǔ)句則是關(guān)于安全性的。REVOKE語(yǔ)句、GRANT語(yǔ)句以及DENY等語(yǔ)句定義了對(duì)象的權(quán)限。關(guān)于權(quán)限,將在后文中敘述。這里只是強(qiáng)調(diào)說(shuō)明權(quán)限也是數(shù)據(jù)定義的一部分。 7.3 數(shù) 據(jù) 操 縱

5、 語(yǔ) 言在使用數(shù)據(jù)定義語(yǔ)言(DDL)定義了數(shù)據(jù)存儲(chǔ)的格式和位置后,用戶就可以使用數(shù)據(jù)操縱語(yǔ)言(DML)來(lái)操作定義的對(duì)象。數(shù)據(jù)操縱語(yǔ)言主要包括數(shù)據(jù)查詢(xún)與數(shù)據(jù)更新,其中,數(shù)據(jù)查詢(xún)主要是SELECT,而數(shù)據(jù)更新則包括插入(INSERT語(yǔ)句)、更新(UPDATE語(yǔ)句)、刪除(DELETE語(yǔ)句)。這四類(lèi)語(yǔ)句可以簡(jiǎn)稱(chēng)為“查增改刪”。 7.3.1 SELECT語(yǔ) 句 : 查 詢(xún) 數(shù) 據(jù)所有基于數(shù)據(jù)庫(kù)的應(yīng)用系統(tǒng)都會(huì)使用SELECT語(yǔ)句從數(shù)據(jù)庫(kù)中提取數(shù)據(jù),并將獲得的數(shù)據(jù)按用戶的要求輸出給用戶。根據(jù)用戶使用具體SELECT語(yǔ)句的不同,數(shù)據(jù)庫(kù)從不同角度向用戶展示數(shù)據(jù)庫(kù)中的數(shù)據(jù)。SELECT語(yǔ)句執(zhí)行后,將返回一組記錄

6、,而這組記錄就是記錄集(結(jié)果集)。不過(guò),SELECT語(yǔ)句是很復(fù)雜的。 7.3.2 INSERT語(yǔ) 句 : 插 入 數(shù) 據(jù)在SQL Server中,INSERT語(yǔ)句負(fù)責(zé)向數(shù)據(jù)庫(kù)中插入記錄。在獲取一條新的記錄后,就需要使用INSERT語(yǔ)句向數(shù)據(jù)庫(kù)插入一個(gè)新行(記錄)。 7.3.3 UPDATE語(yǔ) 句 : 更 新 數(shù) 據(jù)在使用INSERT語(yǔ)句向數(shù)據(jù)庫(kù)中插入數(shù)據(jù)后,數(shù)據(jù)就保存到了數(shù)據(jù)庫(kù)中。不過(guò),如果外界數(shù)據(jù)發(fā)生變化,就需要對(duì)數(shù)據(jù)庫(kù)中的數(shù)據(jù)進(jìn)行更新。在SQL Server中,主要使用UPDATE語(yǔ)句更新數(shù)據(jù)庫(kù)中的數(shù)據(jù),特別是更新部分字段。與INSERT不同,這里并不插入新行(記錄),而是修改原行(記錄)

7、。 7.3.4 Delete語(yǔ) 句 : 刪 除 數(shù) 據(jù)如果表中的數(shù)據(jù)不再使用或已經(jīng)備份完畢,那么為了釋放服務(wù)器的資源,就需要及時(shí)刪除表中的數(shù)據(jù)。 7.4 其 他 常 用 語(yǔ) 句上面介紹了SELECT、INSERT、UPDATE、DELETE等語(yǔ)句的基本形式。下面將介紹一些常用的子句,這些子句在與上述4個(gè)語(yǔ)句配合使用時(shí),可以實(shí)現(xiàn)更加強(qiáng)大的數(shù)據(jù)操作功能。1帶WHERE子句的SELECT語(yǔ)句2帶WHERE子句的UPDATE語(yǔ)句3帶WHERE子句的DELETE語(yǔ)句 7.4.1 WHERE子句:給出條件語(yǔ)句在SQL Server中,WHERE子句可以用于SELECT語(yǔ)句、DELETE語(yǔ)句、UPDATE語(yǔ)

8、句中。1帶WHERE子句的SELECT語(yǔ)句2帶WHERE子句的UPDATE語(yǔ)句3帶WHERE子句的DELETE語(yǔ)句 7.4.2 帶 AND關(guān) 鍵 字 的 WHERE子 句在介紹AND關(guān)鍵字之前,需要介紹一下布爾表達(dá)式。所謂布爾表達(dá)式是指表達(dá)式的各成分由關(guān)系連接符連接,而且表達(dá)式的值為T(mén)RUE或FALSE。其中,用于連接布爾表達(dá)式的連接詞有NOT(非)、AND(積)、OR(和)3個(gè)。這里將以AND為例,介紹這3個(gè)連接詞。 7.4.3 GROUP BY子 句 : 分 組 語(yǔ) 句GROUP BY子句具有符合ISO的語(yǔ)法和不符合ISO的語(yǔ)法兩種結(jié)構(gòu)。在一條SELECT語(yǔ)句中只能使用一種語(yǔ)法樣式,在這里

9、,用戶使用符合ISO的語(yǔ)法,因?yàn)椴环螴SO語(yǔ)法的目的是為了實(shí)現(xiàn)向后兼容。這里僅介紹符合ISO的語(yǔ)法,如下。 1不帶WHERE子句僅含GROUP BY子句的SELECT語(yǔ)句 2帶WHERE子句和GROUP BY子句的SELECT語(yǔ)句 7.4.4 HAVING子 句 : 分 組 條 件HAVING子句通常在GROUP BY子句中使用。如果不使用GROUP BY子句,那么HAVING的行為與WHERE子句一樣。不過(guò),這種方式不推薦使用,因?yàn)橛泻芏嘞拗?。HAVING子句的所有列都必須出現(xiàn)在SELECT語(yǔ)句的列表中。具體HAVING子句的用法大致分為以下幾種情況。1帶HAVING子句而不帶WHERE子

10、句的SELECT語(yǔ)句2帶HAVING子句和WHERE子句的SELECT語(yǔ)句 7.4.5 ORDER BY子 句 : 排 序 語(yǔ) 句ORDER BY子句用在指定SELECT語(yǔ)句返回的結(jié)果集后,主要用于對(duì)結(jié)果集進(jìn)行排序。在默認(rèn)情況下,由SELECT語(yǔ)句返回結(jié)果集中的記錄是按照表中記錄的物理順序排列的。 7.4.6 TOP子 句 : 查 看 前 幾 條 記 錄TOP表達(dá)式可用在SELECT、INSERT、UPDATE和DELETE語(yǔ)句中。不過(guò),TOP表達(dá)式主要用于SELECT語(yǔ)句中,其表達(dá)式語(yǔ)法結(jié)構(gòu)如下。TOP (Expression) PERCENT WITH TIES 7.4.7 DISTINC

11、T子 句 : 去 掉 重 復(fù) 記 錄提到關(guān)鍵字DISTINCT,就不得不提到關(guān)鍵字ALL。ALL是指結(jié)果集中可以包含重復(fù)行,而且它是默認(rèn)值。而關(guān)鍵字DISTINCT可從SELECT語(yǔ)句的結(jié)果集中消除重復(fù)的行。不過(guò),如果沒(méi)有指定DISTINCT,將返回所有行(包括重復(fù)的行)。 7.4.8 BETWEEN子 句 : 指 定 范 圍 條 件在SQL Server中,BETWEEN子句是較為重要的字句,用于指定一個(gè)范圍條件,其語(yǔ)法結(jié)構(gòu)如下。test_Expression BETWEEN BEGIN_Expression AND END_Expression其實(shí),該子句相當(dāng)于數(shù)學(xué)中的兩個(gè)不等式:BEGI

12、N_Expression=test_Expression =END_Expression 7.4.9 模 糊 查 詢(xún) LIKE子 句上面介紹WHERE子句時(shí),說(shuō)到了字符串比較的問(wèn)題。不過(guò),那種字符串比較主要是、=等關(guān)系運(yùn)算符連接。在某種程度上,這些運(yùn)算符都可以說(shuō)是字符串的精確比較。在Transact-SQL中,還提供了LIKE子句用于字符串的模糊比較,即模糊匹配。 7.4.10 IN子 句 : 值 包 含 在 列 表 中在SQL Server中,IN語(yǔ)句主要用于確定指定列的值在子查詢(xún)或列表中。IN語(yǔ)句的語(yǔ)法結(jié)構(gòu)如下。test_Expression IN ( subquery | Express

13、ion , n ) 7.4.11 NOT IN子 句 : 值 不 包 含 在 列 表 中當(dāng)然,IN語(yǔ)句與LIKE語(yǔ)句一樣,也可以和NOT語(yǔ)句配合使用。NOT語(yǔ)句將IN語(yǔ)句的值取反,即如果IN語(yǔ)句為T(mén)RUE,那么NOT IN子句則為FALSE。這里之所以單獨(dú)列出NOT IN,是因?yàn)橛脩艚?jīng)常用到NOT IN,便于用戶查詢(xún)本書(shū)。 7.4.12 COMPUTE子 句 : 用 于 生 成 統(tǒng) 計(jì) 信 息COMPUTE子句用于生成統(tǒng)計(jì)信息,并將統(tǒng)計(jì)信息顯示在結(jié)果集的后面。COMPUTE子句的語(yǔ)法結(jié)構(gòu)如下。 COMPUTE AVG | COUNT | MAX | MIN | STDEV | STDEVP |

14、 VAR | VARP | SUM ( Expression ) , n BY Expression , n 7.4.13 COMPUTE BY子 句 : 計(jì) 算 統(tǒng) 計(jì) 信 息COMPUTE BY子句與COMPUTE子句類(lèi)似,也可能在未來(lái)版本中刪除,所以不建議使用。如果使用COMPUTE BY,那么必須使用ORDER BY子句。表達(dá)式的列必須與在ORDER BY中的列相同或是其子集,并且順序相同。例如,如果ORDER BY子句為ORDER BY a,b,c,那么COMPUTE子句的可用形式如下。COMPUTE BY a,b,c。COMPUTE BY a,b。COMPUTE BY a。 7.4

15、.14 列 的 別 名前面的許多示例都用到了列的別名,而且在前面介紹其他類(lèi)型時(shí),筆者也介紹了列的別名類(lèi)型。其實(shí),列的別名在SELECT語(yǔ)句中經(jīng)常用到。其中,列的別名類(lèi)型主要由AS和=來(lái)命名?;谇懊娴慕榻B,下面將給出一個(gè)在查詢(xún)中使用列別名的示例。如下SQL語(yǔ)句將查詢(xún)數(shù)據(jù)庫(kù)database_demo的表,并使用別名顯示查詢(xún)到的字段。 7.5 關(guān) 系 連 接在SELECT語(yǔ)句涉及到多個(gè)表時(shí),可以用子查詢(xún)解決。SQL Server還提供了一組關(guān)鍵字來(lái)處理多個(gè)表的查詢(xún),這組關(guān)鍵字組成了關(guān)系連接的核心。所謂關(guān)系連接,就是連接查詢(xún)這是一種不同于子查詢(xún)使用多個(gè)表的查詢(xún)方式。可以說(shuō),前面介紹的SQL語(yǔ)句都是基

16、礎(chǔ)語(yǔ)句,在工作中較少用到那樣簡(jiǎn)單的語(yǔ)句。連接查詢(xún)是最常用、最重要的查詢(xún)方式。 7.5.1 連 接 查 詢(xún) 介 紹既然兩個(gè)表可以用于連接查詢(xún),那么兩個(gè)表必須要有聯(lián)系兩個(gè)表之間存在相同意義的列。 7.5.2 笛 卡 爾 乘 積上面介紹連接查詢(xún)時(shí)提到過(guò),SQL Server將參與連接查詢(xún)的表的所有記錄進(jìn)行組合并形成笛卡爾積(交叉連接) 。根據(jù)上面介紹的連接查詢(xún)的執(zhí)行步驟,用戶不難了解生成和實(shí)現(xiàn)笛卡爾積的方法:在連接查詢(xún)中,將WHERE子句、GROUP BY子句、ORDER BY子句以及SELECT語(yǔ)句中的聚合函數(shù)等都省略,直接使用表中的記錄組合形成笛卡爾積。 7.5.3 內(nèi) 部 連 接內(nèi)部連接( I

17、NNER JOIN)是相對(duì)于外部鏈接而言的,內(nèi)部連接用來(lái)組合兩個(gè)或多個(gè)表的記錄。通常,內(nèi)部連接按照連接條件,從生成的結(jié)果集中刪除在其他表中沒(méi)有被匹配的記錄。根據(jù)內(nèi)部連接使用比較方式的不同,內(nèi)部連接可以分為等值連接、自然連接、不等連接。 7.5.4 使 用 表 別 名表的別名是連接查詢(xún)中經(jīng)常用到的處理表的方法。將表名定義為一個(gè)簡(jiǎn)單的別名,解決了編寫(xiě)SQL語(yǔ)句時(shí)語(yǔ)句過(guò)長(zhǎng)的問(wèn)題。其中,表別名的規(guī)則與前面介紹的列的別名相同。這里僅給出一個(gè)簡(jiǎn)單的SQL示例。USE database_demoGOSELECT tb1.* FROM table_1 AS tb1 7.5.5 外 部 連 接前面介紹的連接查詢(xún)

18、都是返回滿足條件的記錄。在工作中,用戶可能遇到這種情況,即顯示某一個(gè)表的全部?jī)?nèi)容(包括不符合連接條件的記錄)。這個(gè)時(shí)候就需要用到外部連接,其可以使不符合條件的記錄也出現(xiàn)在結(jié)果中。 7.5.6 自 連 接這里介紹的自連接是連接查詢(xún)的一個(gè)特例。所謂自連接,就是表與自身的連接,是內(nèi)部連接的一種。自連接可以使用戶同時(shí)操作同一個(gè)表的不同行。它使用較少,但是很重要。自連接適用于如下場(chǎng)景:某班級(jí)學(xué)生表student中包含了該班學(xué)生今年選修的課程以及課程分?jǐn)?shù)。現(xiàn)在,需要查看同一個(gè)學(xué)生的不同學(xué)科的成績(jī)。 7.5.7 聯(lián) 合 查 詢(xún) 在Transact-SQL中,還有一類(lèi)查詢(xún),叫聯(lián)合查詢(xún)。聯(lián)合查詢(xún)是以SELECT語(yǔ)句的結(jié)果集為基礎(chǔ)的。與其說(shuō)聯(lián)合查詢(xún)是一個(gè)查詢(xún),不如說(shuō)聯(lián)合查詢(xún)是一個(gè)運(yùn)算符。不過(guò),這是一種使用起來(lái)不太靈活的查詢(xún)方式。除非用戶想將查詢(xún)結(jié)果一次性輸出,這時(shí)可以使用聯(lián)合查詢(xún)。許多聯(lián)合查詢(xún)都可以用連接查詢(xún)替代,不推薦使用聯(lián)合查詢(xún)。 7.6 小 結(jié)本章是本書(shū)最為關(guān)鍵的一章,SQL語(yǔ)句是在實(shí)際應(yīng)用中使用最多的部分,每一個(gè)DBA都應(yīng)該十分熟練地掌握各種SQL語(yǔ)句。在實(shí)際應(yīng)用中,數(shù)據(jù)操縱語(yǔ)言最為關(guān)鍵,由其是SELECT語(yǔ)句,十分靈活,體現(xiàn)了第四代計(jì)算機(jī)語(yǔ)言的特點(diǎn)。與其配合的各種常見(jiàn)語(yǔ)句,為準(zhǔn)確查詢(xún)到可用數(shù)據(jù)提供技術(shù)保障。

展開(kāi)閱讀全文
溫馨提示:
1: 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
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ì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

相關(guān)資源

更多
正為您匹配相似的精品文檔
關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號(hào):ICP2024067431號(hào)-1 川公網(wǎng)安備51140202000466號(hào)


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺(tái),本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請(qǐng)立即通知裝配圖網(wǎng),我們立即給予刪除!