《《SQL Server數(shù)據(jù)庫(kù)原理及應(yīng)用教程》第五章結(jié)構(gòu)化查詢》由會(huì)員分享,可在線閱讀,更多相關(guān)《《SQL Server數(shù)據(jù)庫(kù)原理及應(yīng)用教程》第五章結(jié)構(gòu)化查詢(23頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1、單擊此處編輯母版標(biāo)題樣式,單擊此處編輯母版文本樣式,第二級(jí),第三級(jí),第四級(jí),第五級(jí),*,SQL Server,數(shù)據(jù)庫(kù)原理及應(yīng)用,結(jié)構(gòu)化查詢語(yǔ)言,SQL,第五章 結(jié)構(gòu)化查詢語(yǔ)言,SQL,5.1 SQL,結(jié)構(gòu)化查詢語(yǔ)言,5.2 SQL,的數(shù)據(jù)描述與操作,5.3 SQL,語(yǔ)言的數(shù)據(jù)檢索功能,5.4 SQL,語(yǔ)言的數(shù)據(jù)更新功能,5.5 SQL,的數(shù)據(jù)控制功能,一、結(jié)構(gòu)化查詢語(yǔ)言,SQL,結(jié)構(gòu)化查詢語(yǔ)言,SQL,是數(shù)據(jù)庫(kù)的標(biāo)準(zhǔn)主流語(yǔ)言。數(shù)據(jù)庫(kù)產(chǎn)品廠商也紛紛推出各自的支持,SQL,的軟件或與,SQL,的接口軟件。,1986,年美國(guó)國(guó)家標(biāo)準(zhǔn)局(,ANSI,)首先頒布了,SQL,語(yǔ)言的美國(guó)標(biāo)準(zhǔn),,1987,年
2、國(guó)際標(biāo)準(zhǔn)組織(,ISO,)也把這個(gè)標(biāo)準(zhǔn)納入國(guó)際標(biāo)準(zhǔn),經(jīng)修訂后,,1989,年,4,月頒布了增強(qiáng)完整性特征的,SQL89,版本,,1992,年再次修訂后頒布了,SQL92,版本,也是我們今天所說的,SQL,標(biāo)準(zhǔn)。,SQL,結(jié)構(gòu)化查詢語(yǔ)言,“結(jié)構(gòu)化查詢語(yǔ)言”,SQL,語(yǔ)言四大功能:,查詢(,Query,),操縱(,Manipulation,),定義(,Definition,),控制(,Control,),SQL,語(yǔ)言主要特點(diǎn),(,1,)一體化,SQL,語(yǔ)言一體化的特點(diǎn)主要表現(xiàn)在,SQL,語(yǔ)言的功能和操作符上。,(,2,)兩種使用方式、統(tǒng)一的語(yǔ)法結(jié)構(gòu),SQL,語(yǔ)言有兩種使用方式:聯(lián)機(jī)交互使用方式和嵌
3、入某種高級(jí)程序設(shè)計(jì)語(yǔ)言中進(jìn)行數(shù)據(jù)庫(kù)操作的方式。盡管用戶使用,SQL,語(yǔ)言的方式可能不同,但是,SQL,語(yǔ)言的語(yǔ)法結(jié)構(gòu)是基本一致的。,(,3,)高度非過程化,在使用,SQL,語(yǔ)言時(shí),無論在哪中使用方式下,用戶都不必了解文件的存取路徑。,(,4,)語(yǔ)言簡(jiǎn)潔,SQL,語(yǔ)言的功能非常強(qiáng)大,但語(yǔ)法不復(fù)雜。,SQL,數(shù)據(jù)庫(kù)的三級(jí)模式結(jié)構(gòu),二、,SQL,的數(shù)據(jù)描述與操作,SQL,語(yǔ)言的數(shù)據(jù)定義(,DDL,)功能包括三部分:定義基表、定義視圖和定義索引。,其中定義基表中又包括建立基表、修改基表和刪除基表;定義視圖中包括建立視圖和刪除視圖;定義索引中包括建立索引和刪除索引。,定義基表,1.,建立基表,CREAT
4、E TABLE,表名(列名,1,數(shù)據(jù)類型,1NOT NULL,,列名,2,數(shù)據(jù)類型,2NOT NULL,),IN,數(shù)據(jù)庫(kù)空間名,;,2.,修改基表,ALTER TABLE,表名,ADD,列名數(shù)據(jù)類型;,3.,刪除基表,DROP TABLE,表名;,定義索引,1.,建立索引,CREATE UNIQUE INDEX,索引名,ON,基表名,(列名,1ASC/DESC,,列名,2ASC/DESC,),PCTFREE=10/,整數(shù),;,2.,刪除索引,DROP INDEX,索引名;,三、,SQL,語(yǔ)言的數(shù)據(jù)檢索功能,1,查詢語(yǔ)句,SQL,語(yǔ)言的核心是數(shù)據(jù)庫(kù)查詢語(yǔ)句。查詢語(yǔ)句的格式如下:,SELECT A
5、LL/DISTINCT*/,目標(biāo)列,FROM,基表(或視圖),WHERE,條件表達(dá)式,GROUP BY,列名,1HAVING,內(nèi)部函數(shù)表達(dá)式,ORDER BY,列名,2 ASC/DESC,;,查詢實(shí)例,1.,簡(jiǎn)單查詢,例,1,查詢?nèi)w學(xué)生的詳細(xì)信息。,SELECT*FROM Student;,2.,連接查詢,例,2,查詢已參加貸款的學(xué)生的全部信息和其貸款單號(hào)。,SELECT S.*,B.Loan_number,FROM Student AS,S,Borrower,AS B,WHERE,S.ID_Card,=,B.ID_Card,;,查詢實(shí)例,(,3,)嵌套查詢,例,3,查詢年齡大于,23,歲的
6、學(xué)生的貸款單號(hào)和貸款金額。,SELECT*,FROM Loan WHERE,Loan_number,IN,(SELECT,Loan_number,FROM Borrower WHERE,Borrower.ID_Card,IN,(SELECT,ID_Card,FROM Student WHERE Sage23);,四、,SQL,語(yǔ)言的數(shù)據(jù)更新功能,1,修改語(yǔ)句,修改語(yǔ)句也稱為更新語(yǔ)句,它的一般格式如下:,UPDATE,表名,SET,列名,1=,表達(dá)式,1,,列名,2=,表達(dá)式,2,WHERE,條件表達(dá)式,;,SQL,語(yǔ)言的數(shù)據(jù)更新功能,2,插入語(yǔ)句,插入語(yǔ)句的一般格式如下:,INSERT INT
7、O,表名,(列名,1,,列名,2,),VALUES,(常量,1,,常量,2,);,或者,INSERT INTO,表名,(列名,1,,列名,2,),SQL,語(yǔ)言的數(shù)據(jù)更新功能,3.,刪除語(yǔ)句,刪除語(yǔ)句的一般格式如下:,DELETE FROM,表名,WHERE,條件表達(dá)式,;,SQL,語(yǔ)言對(duì)視圖的操縱,1,定義視圖,視圖(,View,)是從一個(gè)或幾個(gè)基表(或視圖)導(dǎo)出的表。一個(gè)用戶可以定義若干個(gè)視圖,因此,對(duì)于某一用戶而言,它的外模式是由若干基表和若干視圖組成的。,視圖操作,(,1,)建立視圖,建立視圖的格式如下:,CREATE VIEW,視圖名,(字段名,,字段名,),AS,查詢語(yǔ)句,WITH
8、CHECK OPTION,;,(,2,)刪除視圖,刪除視圖的格式如下:,DROP VIEW,視圖名;,(,3,)視圖的查詢,視圖是一個(gè)虛表,在視圖上不能建立索引。,(,4,)視圖的更新,視圖的更新最終要轉(zhuǎn)換成對(duì)基表的更新。,視圖的優(yōu)點(diǎn),(,1,)視圖對(duì)于數(shù)據(jù)庫(kù)的重構(gòu)造提供了一定程度的邏輯獨(dú)立性。,(,2,)簡(jiǎn)化了用戶操作。,(,3,)使用戶以不同的方式看待同一數(shù)據(jù)。,(,4,)對(duì)機(jī)密數(shù)據(jù)提供了自動(dòng)的安全保護(hù)功能。,五、,SQL,的數(shù)據(jù)控制功能,SQL,語(yǔ)言的數(shù)據(jù)控制功能是指控制數(shù)據(jù)庫(kù)用戶對(duì)數(shù)據(jù)的存取權(quán)力。實(shí)際上數(shù)據(jù)庫(kù)中的數(shù)據(jù)控制包括數(shù)據(jù)的安全性、完整性、并發(fā)控制和數(shù)據(jù)恢復(fù)。,在這里僅討論數(shù)據(jù)的
9、安全性控制功能。,D,BMS,須具有以下功能:,(,1,)把授權(quán)的決定告知系統(tǒng),這是由,SQL,的,GRANT,和,REVOKE,語(yǔ)句完成的;,(,2,)把授權(quán)的結(jié)果存入數(shù)據(jù)字典;,(,3,)當(dāng)用戶提出操作請(qǐng)求時(shí),根據(jù)授權(quán)情況進(jìn)行檢查,以決定是執(zhí)行操作請(qǐng)求還是拒絕它。,SQL,的數(shù)據(jù)控制方法,1.,授權(quán)語(yǔ)句,SQL,語(yǔ)言中授權(quán)語(yǔ)句的一般格式如下:,GRANT,權(quán)力,1,,權(quán)力,2ON,對(duì)象類型 對(duì)象名,TO,用戶,1,,用戶,2,WITH GRANT OPTION,;,2.,回收授權(quán)語(yǔ)句,已經(jīng)授予用戶的權(quán)力可用,REVOKE,語(yǔ)句收回,格式如下:,REVOKE,權(quán)力,1,,權(quán)力,2 ON,對(duì)象
10、類型 對(duì)象名,FROM,用戶,1,,用戶,2,;,SQL Server,數(shù)據(jù)操作,在,Microsoft SQL Server,中,通過使用各種,Transact-SQL,語(yǔ)言,可以完成數(shù)據(jù)庫(kù)中的各種操作。,Transact-SQL,語(yǔ)言是微軟公司對(duì),SQL,語(yǔ)言的擴(kuò)展。同,SQL,語(yǔ)言一樣是一種交互式查詢語(yǔ)言,具有功能強(qiáng)大、簡(jiǎn)單易學(xué)的特點(diǎn);它既允許用戶聯(lián)機(jī)交互使用,也可以嵌入到某中高級(jí)程序語(yǔ)言中使用;它有自己的數(shù)據(jù)類型、表達(dá)式、關(guān)鍵字和語(yǔ)句結(jié)構(gòu),而且相對(duì)其他語(yǔ)言要簡(jiǎn)單的多。,Transact-SQL,語(yǔ)言有四部分功能,數(shù)據(jù)控制語(yǔ)言(,DCL,),用來進(jìn)行安全性管理,可以確定哪些用戶可以查看或
11、者修改數(shù)據(jù)或執(zhí)行操作,包括,GRANT,、,DENY,、,REVOKE,等語(yǔ)句;,數(shù)據(jù)定義語(yǔ)言(,DDL,),用來執(zhí)行數(shù)據(jù)庫(kù)的任務(wù),創(chuàng)建數(shù)據(jù)庫(kù)以及數(shù)據(jù)庫(kù)中的各種對(duì)象,包括,GREATE,、,ALTER,、,DROP,等語(yǔ)句;,數(shù)據(jù)操縱語(yǔ)言(,DML,),用來在數(shù)據(jù)庫(kù)中操縱各種對(duì)象以及檢索和修改數(shù)據(jù),包括,SELECT,、,INSERT,、,UPDATE,、,DELETE,等語(yǔ)句;,Transact-SQL,語(yǔ)言附加的語(yǔ)言元素,包括變量、運(yùn)算符、函數(shù)、流程控制語(yǔ)言和注釋等。,執(zhí)行,Transact-SQL,語(yǔ)言的工具包括圖形化工具,SQL Query Analyzer,和實(shí)用程序,osql,。實(shí)用程序,osql,是對(duì)圖形化工具,SQL Query Analyzer,的補(bǔ)充。,