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