第4章 標準查詢語言SQL_第1頁
第4章 標準查詢語言SQL_第2頁
第4章 標準查詢語言SQL_第3頁
第4章 標準查詢語言SQL_第4頁
第4章 標準查詢語言SQL_第5頁
已閱讀5頁,還剩48頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

標準查詢語言SQL

結(jié)構(gòu)化查詢語言SQL(StructuredQueryLanguage)是關(guān)系數(shù)據(jù)庫系統(tǒng)的國際標準語言,它在大型或中小型數(shù)據(jù)庫中都能使用。SQL語言集數(shù)據(jù)定義(DDL)、數(shù)據(jù)操縱(DML)、數(shù)據(jù)控制(DCL)于一身,學會了它,等于學會了在各種關(guān)系型數(shù)據(jù)庫中,各種不同的DBMS中都能進行DDL、DML、DCL操作。本章主要敘述SQL語言的概念與特點、SQL語言的數(shù)據(jù)定義、SQL語言的數(shù)據(jù)查詢、SQL語言的數(shù)據(jù)更新、SQL語言處理視圖等方面知識,最后介紹了嵌入式SQL語言概念以及在VisualBasic、C#和Java中SQL語言的具體使用方法

本章目錄

4.1SQL語言概述及其數(shù)據(jù)定義4.2SQL語言的數(shù)據(jù)查詢4.3SQL語言的數(shù)據(jù)更新與視圖4.4嵌入式SQL4.5本章小結(jié)習題4.1SQL語言概述及其數(shù)據(jù)定義

SQL語言無論是在Oracle、Sybase、Informix、SQLServer這樣的大型數(shù)據(jù)庫管理系統(tǒng)中,還是在VisualFoxpro、Access這樣的中小型數(shù)據(jù)庫管理系統(tǒng)中都能獲得支持。本節(jié)首先說明SQL語言的發(fā)展過程和它的特點,然后就詳細介紹SQL語言對數(shù)據(jù)庫表、索引文件的定義方法。SQL語言概述及其數(shù)據(jù)定義目錄4.1.1SQL語言的基本概念及其特點4.1.2SQL語言的數(shù)據(jù)定義4.1.3SQL對索引的創(chuàng)建與刪除SQL語言的基本概念及其特點SQL語言的發(fā)展過程:1989年,美國國家標準局(ANSI)定義了關(guān)系型數(shù)據(jù)庫的SQL標準語言,稱為ANSISQL89,隨后,國際標準化組織采用這一標準,推出SQL89。1992年,國際標準化組織推出SQL92,也稱為SQL2。目前,SQL99正在起草中,其中增加了面向?qū)ο蠊δ埽卜Q為:SQL3。我國在1990年頌布“信息處理系統(tǒng)數(shù)據(jù)庫語言SQL”,把其定為國家標準。SQL語言是一種介于關(guān)系代數(shù)和關(guān)系演算之間的語言,其功能包括查詢、操縱、定義和控制4個方面,是一個通用的、功能極強的關(guān)系數(shù)據(jù)庫語言,它完全適合關(guān)系數(shù)據(jù)庫的三級模式結(jié)構(gòu)(外模式、模式、內(nèi)模式),遵循關(guān)系模型中3類完整性約束:實體完整性、參照完整性和自定義完整性。目前已成為關(guān)系數(shù)據(jù)庫的標準語言,廣泛應(yīng)用于各種數(shù)據(jù)庫。SQL語言的主要特點

(1)綜合統(tǒng)一。SQL語言集數(shù)據(jù)定義(DDL)、數(shù)據(jù)操縱(DML)、數(shù)據(jù)控制(DCL)于一體,語言風格統(tǒng)一,可以獨立完成數(shù)據(jù)庫中模式定義、建立數(shù)據(jù)庫表、錄入、查詢、更新、維護數(shù)據(jù)、數(shù)據(jù)庫重構(gòu)、數(shù)據(jù)庫安全控制等一系列操作。便得用戶的數(shù)據(jù)庫投入運行后,還可以根據(jù)實際需要,在不影響數(shù)據(jù)庫整體運行的情況下,修改數(shù)據(jù)庫模式,具有良好的擴充性。SQL語言的主要特點(2)高度非過程化。SQL語言與各種關(guān)系數(shù)據(jù)庫DBMS中的語言一樣是一種高度非過程化語言。使用時,只要指明“做什么?”不必像高級語言那樣指明“怎樣做?”,因此用戶無需了解文件與數(shù)據(jù)的存取路徑,這種存取路徑的SQL語句的操作過程是由系統(tǒng)自動來完成。這不僅大大減輕了編程人員的負擔,還有利于提高數(shù)據(jù)的獨立性。SQL語言的主要特點(3)面向集合的操作方式。SQL語言操作與各種關(guān)系數(shù)據(jù)庫DBMS中的語言一樣是面向集合的操作方式。這就是說,它的操作方式不是針對某一個數(shù)據(jù),而是針對一條記錄和符合條件的多條記錄進行的。例如,有一個班的學生關(guān)系(設(shè)為R)表,共有10多列內(nèi)容,任意條(有限)記錄,其中有1列是平均成績,當要顯示平均成績在80分以上同學的情況(10多列內(nèi)容一起顯示)時,只要使用下列一條簡單選擇語句,就或把符合條件的所有學生情況顯示出來:

Select*FromRWhere平均成績>=80SQL語言的主要特點(4)提供兩種不同格式的使用方式。SQL語言提供的兩種不同格式的使用方法是:自含式和嵌入式。所謂SQL的自含式語言,是和各種關(guān)系數(shù)據(jù)庫DBMS中的語言一樣,能夠獨立地用于聯(lián)機交互的使用方式,用戶可以在鍵盤上直接鍵入SQL命令對數(shù)據(jù)進行操作,當然也可以寫成代碼程序,在DBMS環(huán)境下運行;所謂SQL嵌入式語言,是把SQL語言的各種命令嵌入到高級語言程序中使用。這種方式可使高級語言與數(shù)據(jù)庫結(jié)合起來,克服高級語言處理大量數(shù)據(jù)效率不高的缺點,這在當今各種應(yīng)用系統(tǒng)開發(fā)中發(fā)揮很大的作用。目前應(yīng)用較多的高級語言是VisualBasic、C語言一簇(VC、C++、C#)、Java等。SQL語言的主要特點(5)語言簡捷,易學易用。SQL語言功能強大,但語言本身卻很簡單。一套語言完成所有功能只使用9個動詞,它們是:查詢命令(Select)、數(shù)據(jù)定義中的創(chuàng)建(Create)、刪除(Drop)、修改(Alter)、數(shù)據(jù)操縱中插入(Insert)、修改(Update)、刪除(Delete)、數(shù)據(jù)控制中的權(quán)力授于(Grant)、權(quán)力回收(Revoke)。SQL語法簡單,接近口語,易學易用。SQL語言的數(shù)據(jù)定義1.定義數(shù)據(jù)庫(應(yīng)在實際環(huán)境中演示)

一般格式為:CREATEDATABASE<數(shù)據(jù)庫名>例如要建立一個教師(teacher)的數(shù)據(jù)庫,在查詢分析器中輸入命令:CREATEDATABASEteacher在SQLServer2005中,打開數(shù)據(jù)庫,就會見到teacher的名稱。SQL語言的數(shù)據(jù)定義2.定義基本表(應(yīng)在實際環(huán)境中演示)

選擇teacher數(shù)據(jù)庫后,在查詢分析器中輸入建立基本表的命令就可以建立基本表,定義基本表的結(jié)構(gòu),格式形式為:

CREATETABLE<基本表名>(<列名><數(shù)據(jù)類型>,……完整性約束,……)SQL語言的數(shù)據(jù)定義定義數(shù)據(jù)表命令的說明:(1)<表名>:規(guī)定所創(chuàng)建的基本表的名稱。在一個數(shù)據(jù)庫中,不允許有兩個基本表同名。

(2)<列名>:規(guī)定了該列(屬性)的名稱。一個表中不能有兩列同名。(3)<數(shù)據(jù)類型>:規(guī)定了該列的數(shù)據(jù)類型。各具體DBMS所提供的數(shù)據(jù)類型是不同的;本書使用的是SQLServer2005中規(guī)定的數(shù)據(jù)類型。(4)完整性約束:完整性約束規(guī)則在該命令中較為復雜,為了學習方便,沒有把命令的全部內(nèi)容一次寫出來,這里主要用到下列三類子句:定義主鍵子句:Primarykey<屬性名1,…>檢查子句:Check(<條件>)外鍵子句:Constraint<約束名>ForeignKey<副表屬性名1…>References<主表屬性名1…>這里定義的主鍵一定要遵守實體完整性規(guī)則;外鍵一定要遵守參照完整性規(guī)則;檢查子句是遵守用戶自定義完整性規(guī)則。定義數(shù)據(jù)庫內(nèi)基本表實例說明:(1)“教師”表:T,由教師編號(TNO)、姓名(TN)、性別(SEX)、年齡(AGE)、職稱(ZC)和所在專業(yè)(DEPT)6個屬性組成??捎洖椋篢(TNO,TN,SEX,AGE,ZC,DEPT)(2)“課程”表:C,由課程號(CNO)、課程名(CN)、課程性質(zhì)(CX)和學分(CT)4個屬性組成??捎洖椋篊(CNO,CN,CX,CT)(3)“教師授課”表:TC,由教師編號(TNO)、課程號(CNO)、教齡(YEAR)3個屬性組成,這里的教齡是指教授這門課的教齡。可記為:TC(TNO,CNO,YEAR)“教師”表教師編號TNO姓名TN性別SEX年齡AGE職稱ZC專業(yè)DEPTS1王一民男46教授

計算機S5鄒敏女35講師軟件工程S3趙忠秀女40副教授信息技術(shù)S4周彬男24助教計算機S6錢良男22助教軟件工程S2劉英女30講師信息技術(shù)“課程”表課程號CNO課程名CN課程性質(zhì)CX學分CT

C1數(shù)學基礎(chǔ)4C6工程訓練專業(yè)2C3匯編程序?qū)I(yè)基礎(chǔ)3C4網(wǎng)絡(luò)基礎(chǔ)專業(yè)基礎(chǔ)2C5數(shù)據(jù)結(jié)構(gòu)專業(yè)基礎(chǔ)3C7DB_Design專業(yè)4C2英語基礎(chǔ)6“教師授課”表教師編號TNO課程號CNO教齡YEARS1C18S1C26S1C33S4C22S2C24S3C16S3C75S3C44S3C55S2C73S4C52S4C62S2C18S5C22定義“教師”表【例4.1】創(chuàng)建“教師”表T,其中教師編號是主鍵,姓名、性別和年齡不能為空,性別只能選“男”或“女”,年齡大于18歲。CREATETABLET(TNOCHAR(4)NOTNULL,TNCHAR(8)NOTNULL,SEXCHAR(2)NOTNULLCHECK(SEXIN('男','女')),AGEINTNOTNULLCHECK(AGE>18),ZCCHAR(10),DEPTVARCHAR(12),PRIMARYKEY(TNO))(應(yīng)在實際環(huán)境中演示)定義“課程”表

【例4.2】建立“課程”表C,課程號CNO是主鍵,課程名CN和CT不能為空,CT大于1。CREATETABLEC(CNOCHAR(4)NOTNULL,CNVARCHAR(10)NOTNULL,CXCHAR(8),CTINTNOTNULLCHECK(CT>1),PRIMARYKEY(CNO))(應(yīng)在實際環(huán)境中演示)定義“教師授課”表【例4.3】建立“教師授課”表TC,定義TNO和CNO是外鍵盤同時又是該表的主鍵,教齡不為空,并且YEAR大于1。

CREATETABLETC(TNOCHAR(4)NOTNULL,CNOCHAR(4)NOTNULL,YEARINTNOTNULLCHECK(YEAR>1),PRIMARYKEY(TNO,CNO),CONSTRAINTTC_TFOREIGNKEY(TNO)REFERENCEST(TNO),CONSTRAINTTC_CFOREIGNKEY(CNO)REFERENCESC(CNO))(應(yīng)在實際環(huán)境中演示)

修改基本表結(jié)構(gòu)

(1)增加屬性。格式:ALTERTABLE<基本表名>ADD<新屬性名><新屬性類型>【例4.4】在基本表T中增加一個聯(lián)系電話(TELE)屬性,可用下列語句:

ALTERTABLETADDTELECHAR(13)注意:新增加的屬性不能定義為:NOTNULL,因為基本表在增加一個屬性后,原來所有記錄在新增加的屬性列上的值都被定義為空值(NULL)。(應(yīng)在實際環(huán)境中演示)修改基本表結(jié)構(gòu)

(2)修正原屬性數(shù)據(jù)類型。格式為:ALTERTABLE<基本表名>ALTERCOLUMN<新屬性名><新屬性類型>【例4.5】將T表中年齡的數(shù)據(jù)類型改為SMALLINT,可用下列語句:

ALTERTABLETALTERCOLUMNAGESMALLINT

修改原有的列定義,會使列中數(shù)據(jù)類型作新舊自動變化,有可能會破壞已有數(shù)據(jù)。(應(yīng)在實際環(huán)境中演示)修改基本表結(jié)構(gòu)(3)刪除原有屬性。格式為:ALTERTABLE<基本表名>DROPCOLUMN<屬性名>在基本表中刪除某一屬性時要注意,引用到該屬性的視圖和約束也會一起自動地被刪除?!纠?.6】在基本表T中刪除TELE屬性,可用下列語句:ALTERTABLETDROPCOLUMNTELE(應(yīng)在實際環(huán)境中演示)修改基本表結(jié)構(gòu)(4)禁止參照完整性約束。格式為:ALTERTABLE<基本表名>NOCHECKCONSTRAINT<約束名>【例4.7】禁止TC中參照完整性約束TC_T。ALTERTABLETCNOCHECKCONSTRAINTTC_T(應(yīng)在實際環(huán)境中演示)刪除基本表

刪除基本表命令的一般格式為:DROPTABLE<表名>【例4.8】刪除表T。

DROPTABLET注意:刪除表需要相應(yīng)的操作權(quán)限,一般只刪除自己建立的無用表,如有用表一定要備份或保存好建立該表的程序。(應(yīng)在實際環(huán)境中演示)SQL對索引的創(chuàng)建與刪除

1.索引的概念數(shù)據(jù)庫中的索引是為了加速對表中記錄的檢索而創(chuàng)建的一種分散存儲結(jié)構(gòu),是對表或視圖而建立的。索引建立后,如果改變了表或視圖中數(shù)據(jù),增加或減少記錄,系統(tǒng)會自動更新索引。當查詢到索引字段時,系統(tǒng)會自動使用索引進行查詢,查詢時的速度會比沒建索引快得多。按照索引記錄存放的位置可以分為聚集索引(ClusteredIndex)與非聚集索引(NonClusteredIndex)兩類。聚集索引是指索引項的順序與表中記錄的物理順序一致的索引組織,檢索記錄的速度快。規(guī)定一個表中只能有一個屬性或?qū)傩越M,設(shè)定為聚集索引的字段,這一字段一定是查詢時用得最頻繁的。非聚集索引也按照索引的字段排列記錄,但是排列的結(jié)果不會存儲在表中,而是另外存儲,因此檢索記錄速度沒有聚集索引快。SQL對索引的創(chuàng)建與刪除

2.創(chuàng)建索引創(chuàng)建索引的語句其一般格式可以寫成:CREATE[UNIQUE][CLUSTERED|NONCLUSTERED]INDEX<索引名>ON{<表名>|<視圖名>}(<列名>[ASC|DESC][,...n])其中,UNIQUE表明建立唯一索引,CLUSTERED表示建立聚集索引,NONCLUSTERED表示建立非聚集索引。索引可以建在該表或視圖的一列或多列上,各列名之間用逗號分隔,每個<列名>后面還可以用<次序>指定索引值的排列次序,包括ASC(升序)和DESC(降序)兩種,缺省值為ASC。SQL對索引的創(chuàng)建與刪除創(chuàng)建索引舉例:【例4.9】

為teacher中的T、C、TC三個表建立索引。其中T表按教師編號升序建唯一索引,C表按課程號降序建立聚集索引,SNO、CNO表按學號升序和課程號降序建非聚集索引。

CREATEUNIQUEINDEXT_TNOONT(TNO)CREATECLUSTEREDINDEXC_CNOONC(CNODESC)CREATENONCLUSTEREDINDEXTC_TNO_CNOONTC(TNOASC,CNODESC)(應(yīng)在實際環(huán)境中演示)SQL對索引的創(chuàng)建與刪除刪除索引刪除索引的一般格式為:DROPINDEX表名.<索引名>∣視圖名.<索引名>[,...n]【例4.10】刪除TC表中TC_TNO_CNO索引。DROPINDEXTC.TC_TNO_CNO值得用戶注意的是索引一旦建立,所在的DBMS系統(tǒng)會自動維護它,不需用戶關(guān)心,建立索引文件的目的是提高查詢速度,如果所建索引表的數(shù)據(jù)或記錄增減太頻繁,索引數(shù)目又多,每次打開表操作,系統(tǒng)會花費大量時間來維護這些索引,反而對加快查詢操作不利。因此用戶應(yīng)根據(jù)具體情況,對數(shù)據(jù)庫表做索引。(應(yīng)在實際環(huán)境中演示)4.2SQL語言的數(shù)據(jù)查詢查詢是數(shù)據(jù)庫應(yīng)用的核心內(nèi)容,用戶一定要深刻領(lǐng)會和熟練掌握它。SQL只提供一條查詢語句——SELECT,但該語句功能豐富,使用方法靈活,可以滿足用戶合理查詢的任何要求。本節(jié)詳細介紹了利用SELECT語句在各種情況下如何應(yīng)用,并配合大量實例,初學者必須上機練習,并能舉一反三。使用SELECT語句時,用戶不需指明被查詢關(guān)系的路徑,只需要指出關(guān)系名,查詢什么,有何附加條件即可。SELECT既可以在基本表關(guān)系上查詢,也可以在視圖關(guān)系上查詢。SELECT命令的格式SELECT語句的一般格式為:SELECT[ALL|DISTINCT]<目標列表達式>[,<目標列表達式>]...[INTO<新表名>]FROM<表名或視圖名>[,<表名或視圖名>]...[WHERE<條件表達式>][GROUPBY<列名1>...[HAVING<條件表達式>]][ORDERBY<列名2>[ASC|DESC]]...SELECT命令的含義查詢語句從功能上分可分為4部分:(1)無條件的簡單查詢。使用SELECT和FROM格式(上述命令的前3行或1,3行)。(2)有條件的查詢,使用SELECT、FROM加上WHERE格式(上述命令的前4行或1,3,4行)。(3)如果要按各表中屬性分組查詢,可能要用到上述命令的前5行(或者1,3,4,5行)。(4)如果查詢結(jié)果的記錄要排序,一般情況下,可能要用到上述命令的1,3,4,6行。SELECT語句既可以完成簡單的單表查詢,也可以完成復雜的連接查詢或嵌套查詢。單表查詢

1.指定列或列表達式的查詢2.消除重復行的查詢3.條件子句的使用4.分組查詢

5.排序查詢注意:所的實例都應(yīng)在實際環(huán)境中演示,這方面課件略多表間聯(lián)接和合并查詢

1.等值與非等值聯(lián)接查詢

2.自身聯(lián)接3.外聯(lián)接

4.合并查詢注意:所的實例都應(yīng)在實際環(huán)境中演示,這方面課件略嵌套查詢

1.帶有IN謂詞和比較運算符的子查詢2.帶有ANY或ALL謂詞的子查詢3.帶有EXISTS謂詞的子查詢對于EXISTS謂詞的說明使用存在量詞EXISTS后,若內(nèi)層檢查非空,則外層的WHERE子句返回真值,否則返回假值。用EXISTS謂詞相反意義的是NOTESISTS。使用謂詞NOTEXISTS后,若內(nèi)層查詢結(jié)果為空,則外層的WHERE子句返回真值,否則返回假值。保存查詢結(jié)果及分步查詢

1.保存查詢的結(jié)果

2.分步查詢4.3SQL語言的數(shù)據(jù)更新與視圖

SQL語言中的數(shù)據(jù)更新命令(包括數(shù)據(jù)插入、修改、刪除、視圖處理等)是數(shù)據(jù)操縱功能中的重要組成部分,是維護數(shù)據(jù)表中數(shù)據(jù)正確的重要要操作方法,大家應(yīng)該熟練掌握它們。SQL語言的數(shù)據(jù)更新與視圖目錄4.3.1插入數(shù)據(jù)1.插入記錄2.插入子查詢結(jié)果4.3.2修改數(shù)據(jù)

1.修改某一個記錄的值2.帶子查詢的修改語句4.3.3刪除數(shù)據(jù)

1.刪除表中記錄2.帶子查詢的刪除語句視圖創(chuàng)建、刪除與更新

1.視圖的概念視圖是數(shù)據(jù)庫系統(tǒng)三級模式中外模式的主要形式之一,開發(fā)數(shù)據(jù)庫系統(tǒng)程序編寫相當部分也是根據(jù)視圖來編寫的,因此用戶必須要掌握視圖知識。視圖是根據(jù)基本表(一至多個基本表或已有的視圖)導出的關(guān)系。當基本表中數(shù)據(jù)變化時,可以從視圖中反映出來,在一定條件下,也可以通過視圖中數(shù)據(jù)更新來改變基本表中的數(shù)據(jù)。在創(chuàng)建視圖時,并不存儲視圖中的數(shù)據(jù),而是在用戶使用視圖時才去顯示對應(yīng)的數(shù)據(jù),因此視圖被稱為“虛表”。視圖在很多方面與基本表相同,當視圖一經(jīng)定義,可以與基本表一樣被查詢、刪除,也可以再定義新的視圖,但對視圖的更新操作有一定的限制。視圖創(chuàng)建、刪除與更新2.創(chuàng)建視圖SQL語言用CREATEVIEW命令建立視圖,其一般格式為:

CREATEVIEW<視圖名>[(<列名>[,<列名>]...)]AS<子查詢>其中子查詢可以是任意復雜的SELECT語句,但通常不允許含有ORDERBY子句和DISTINCT短語。創(chuàng)建視圖的注意點如果CREATEVIEW語句僅指定了視圖名,省略了組成視圖的各個屬性列名,則隱含該視圖由子查詢中SELECT子句目標列中的諸字段組成。在以下情況下必須明確指定組成視圖的所有列名。(1)其中某個目標列不是單純的屬性名,而是集函數(shù)或列表達式。(2)多表連接時選出了幾個同名列作為視圖的字段。(3)需要在視圖中為某個列啟用新的更合適的名字。視圖的刪除和更新3.刪除視圖語句的格式為:DROPVIEW<視圖名>一個視圖被刪除后,由此視圖導出的其他視圖也將失效,用戶應(yīng)該使用DROPVIEW語句將他們一起刪除。4.更新視圖更新視圖包括插入(INSERT)、刪除(DELETE)和修改(UPDATE)三類操作。更新視圖數(shù)據(jù)的一般要求(1)如果一個視圖是從多個基本表使用聯(lián)接操作導出的,則此視圖不允許更新。(2)如果在導出視圖的過程中,使用了分組和聚合操作,也不允許該視圖更新。(3)若視圖的字段來自字段表達式或常量,則不允許對此視圖執(zhí)行INSERT和UPDATE操作,但可以進行DELETE操作。

(4)若視圖定義中含有GROUPBY、DISTINCT短語或嵌套查詢,且內(nèi)層查詢的FROM子句中涉及的表也是導出該視圖的基本表,則此視圖不允許更新。SQL數(shù)據(jù)控制

數(shù)據(jù)庫中的數(shù)據(jù)由多個用戶共享,為保證數(shù)據(jù)庫的安全,SQL語言提供數(shù)據(jù)控制語句(DataControlLanguage,DCL)對數(shù)據(jù)庫進行統(tǒng)一的控制管理。SQL數(shù)據(jù)控制語句有2個命令動詞,一個是GRANT語句,是系統(tǒng)對下級用戶授予權(quán)限;另一個是REVOKE語句,是系統(tǒng)對下級用戶授予權(quán)限后的回收。這些內(nèi)容均在本課程的下續(xù)課程“大型數(shù)據(jù)庫系統(tǒng)”一書中詳細講解,本課程只講解單機系統(tǒng),在此不作介紹,有興趣的用戶可參考相關(guān)書籍。本章小結(jié)

1.由于SQL語言具有高度綜合統(tǒng)一、高度非過程化、面向集合操作模式、包括自含式和嵌入式兩種使用方式、語言易學易用等5大特點,注定要成為標準的、使用廣泛的最重要語言。SQL定義語言包括創(chuàng)建、修改、刪除數(shù)據(jù)庫表及其數(shù)據(jù)庫表之間的完整性約束方法,也包括對數(shù)據(jù)庫表創(chuàng)建、修改、刪除索引的基本方法。這些內(nèi)容都是重要的實踐知識,必須牢固掌握。2.Select查詢語句是SQL操縱語言中應(yīng)用最多的語句,應(yīng)該熟練掌握各種查詢數(shù)據(jù)方法,包括利用比較運算符、確定范圍、確定集合、字符匹配、空值和多重條件的查詢;分組查詢和排序查詢;多表間的各種聯(lián)接查詢;各種嵌套查詢等內(nèi)容。3.SQL操縱語言另一重要內(nèi)容是對數(shù)據(jù)庫表中的數(shù)據(jù)進行插入、修改和刪除操作。這些操作方法與視圖的建立、修改、查詢、刪除等知識,都是需要掌握的重要內(nèi)容。習題一、選擇題1.在SQL語言中,增加或刪除數(shù)據(jù)庫表中的字段名所使用的命令動詞是()。A.a(chǎn)lter和updateB.drop和deleteC.alter和dropD.update和delete2.SQL語言的綜合統(tǒng)一特點是指()。A.能創(chuàng)建、修改和刪除數(shù)據(jù)庫表,能遵守完整性約束規(guī)則B.能對數(shù)據(jù)庫和數(shù)據(jù)庫表中數(shù)據(jù)進行插入、修改和刪除操作,并能創(chuàng)建、修改、查詢和刪除操作C.能對它的用戶授予或回收各種操作權(quán)限D(zhuǎn).集有DDL、DML和DCL語言于一體3.在嵌入式SQL語言中,使用的某種高級語言稱為()。A.主體語言B.配合語言C.宿主語言D.不完整4.設(shè)有關(guān)系R=(A1,A2,A3)。與SQL語句SELECTDISTINCTA3FROMRWHEREA2=’S3’等價的關(guān)系代數(shù)表達式是________。A.πA3(R)B.σA2=’S3’(R)C.πA3(σA2=’S3’(R))D.σA2=’S3’(πA3(R))5.兩個子查詢的結(jié)果()時,可以執(zhí)行并、交、差操作。A.結(jié)構(gòu)完全一致B.結(jié)構(gòu)完全不一致C.結(jié)構(gòu)部分一致C.主鍵一致習題6.在SQL查詢語句中,用于合并查詢的謂詞是()。A.Exists

B.Unique

C.Some

D.All7.使用SQL語句進行查詢操作時,若希望查詢出全部存在的元組,一般使用()保留字。A.Unique

B.All

C.Except

D.Distinct8.操作視圖不可能完成的功能是()。A.更新視圖中的數(shù)據(jù)B.查詢視圖中的內(nèi)容C.定義新的基本表D.定義新視圖9.SQL中涉及屬性所學專業(yè)Dept是否是空值的比較操作,寫法()是錯誤的。A.Dept=NullB.Not(DeptIsNull)C.DeptIsNullD.DeptIsNotNull10.假定學生關(guān)系是S(S#,Sname,Sex,Age),課程關(guān)系是C(C#,CName,TEACHER),學生選課關(guān)系是SC(S#,C#,Grade)。要查找選修“數(shù)據(jù)結(jié)構(gòu)”課程(指Cname字段)“男”學生學號,將涉及到關(guān)系()。A.S,CB.SC,CC.S,SCD.S,SC,C習題二、填空題1.SQL語言集DDL、DML、DCL語言于一體,操作命令CREATE、DROP、ALTER是屬于_________語言。2.SQL語言提供兩種使用方法,它們是________語言和________語言。3.SQL語言中刪除數(shù)據(jù)庫表使用_____________命令,刪除數(shù)據(jù)庫表中數(shù)據(jù)使用_____________命令。4.視圖是數(shù)據(jù)庫系統(tǒng)三級結(jié)構(gòu)中的外模式的主要形式,它是從______________________導出的表。5.視圖是虛表,它建成后就可以和基本表一樣使用,但________操作將有一定限制。習題6.SQL的數(shù)據(jù)庫表創(chuàng)建、修改和刪除命令是指___________、_____________和_____________三個語句。7.在字符匹配查詢中,是否符合多個條件常使用的3個字符是__________、_

、和__________________。8.SQL語句中的數(shù)據(jù)更新語句的命令動詞是指__________

__、_______________和_

3個。9、SQL語言中,

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論