版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、An Introduction to Database System數(shù)據(jù)庫系統(tǒng)概論 An Introduction to Database System第三章第三章 關系數(shù)據(jù)庫標準語言關系數(shù)據(jù)庫標準語言SQL(續(xù)續(xù)2 2)An Introduction to Database System第三章第三章 關系數(shù)據(jù)庫標準語言關系數(shù)據(jù)庫標準語言SQL3.1 SQL概述概述3.2 學生學生-課程數(shù)據(jù)庫課程數(shù)據(jù)庫3.3 數(shù)據(jù)定義數(shù)據(jù)定義3.4 數(shù)據(jù)查詢數(shù)據(jù)查詢3.5 數(shù)據(jù)更新數(shù)據(jù)更新3.6 空值的處理空值的處理3.7 視圖視圖3.8 小結小結An Introduction to Database Sys
2、tem3.5 數(shù)據(jù)更新數(shù)據(jù)更新 3.5.1 插入數(shù)據(jù)插入數(shù)據(jù)3.5.2 修改數(shù)據(jù)修改數(shù)據(jù)3.5.3 刪除數(shù)據(jù)刪除數(shù)據(jù) An Introduction to Database System3.5.1 插入數(shù)據(jù)插入數(shù)據(jù)v兩種插入數(shù)據(jù)方式兩種插入數(shù)據(jù)方式n插入元組插入元組n插入子查詢結果插入子查詢結果l可以一次插入多個元組可以一次插入多個元組 An Introduction to Database System1. 插入元組插入元組v語句格式語句格式INSERTINTO (,)VALUES ( , );v功能功能n將新元組插入指定表中將新元組插入指定表中An Introduction to Data
3、base System插入元組(續(xù))插入元組(續(xù))v INTO子句子句n指定要插入數(shù)據(jù)的表名及屬性列指定要插入數(shù)據(jù)的表名及屬性列n屬性列的順序可與表定義中的順序不一致屬性列的順序可與表定義中的順序不一致n沒有指定屬性列:表示要插入的是一條完整的元組,且沒有指定屬性列:表示要插入的是一條完整的元組,且屬性列屬性與表定義中的順序一致屬性列屬性與表定義中的順序一致n指定部分屬性列:插入的元組在其余屬性列上取空值指定部分屬性列:插入的元組在其余屬性列上取空值An Introduction to Database System插入元組(續(xù))插入元組(續(xù))vVALUES子句子句n 提供的值必須與提供的值必
4、須與INTO子句匹配子句匹配l值的個數(shù)值的個數(shù)l值的類型值的類型An Introduction to Database System插入元組(續(xù))插入元組(續(xù))例例3.69將一個新學生元組將一個新學生元組(學號:學號:201215128;姓名:陳冬姓名:陳冬;性別:男性別:男;所在系:所在系:IS;年齡:年齡:18歲歲)插入到插入到Student表中。表中。 INSERT INTO Student (Sno,Sname,Ssex,Sdept,Sage) VALUES (201215128,陳冬陳冬,男男,IS,18);An Introduction to Database System插入元組
5、(續(xù))插入元組(續(xù))例例3.71 插入一條選課記錄插入一條選課記錄( 200215128,1 )。 INSERT INTO SC(Sno,Cno) VALUES (201215128 , 1 ); 關系數(shù)據(jù)庫管理系統(tǒng)將在新插入記錄的關系數(shù)據(jù)庫管理系統(tǒng)將在新插入記錄的Grade列上自動地列上自動地 賦空值。賦空值。 或者:或者: INSERT INTO SC VALUES ( 201215128 , 1 ,NULL);An Introduction to Database System插入元組(續(xù))插入元組(續(xù)) 例例3.70將學生張成民的信息插入到將學生張成民的信息插入到Student表中。表
6、中。 INSERT INTO Student VALUES (201215126,張成民張成民,男男,18,CS); An Introduction to Database System2. 插入子查詢結果插入子查詢結果v語句格式語句格式 INSERT INTO ( , ) 子查詢子查詢;nINTO子句子句n子查詢子查詢lSELECT子句目標列必須與子句目標列必須與INTO子句匹配子句匹配值的個數(shù)值的個數(shù)值的類型值的類型An Introduction to Database System插入子查詢結果(續(xù))插入子查詢結果(續(xù))例例3.72 對每一個系,求學生的平均年齡,并把結果存入數(shù)據(jù)庫對每一
7、個系,求學生的平均年齡,并把結果存入數(shù)據(jù)庫第一步:建表第一步:建表 CREATE TABLE Dept_age ( Sdept CHAR(15) /*系名系名*/ Avg_age SMALLINT); /*學生平均年齡學生平均年齡*/第二步:插入數(shù)據(jù)第二步:插入數(shù)據(jù) INSERT INTO Dept_age(Sdept,Avg_age) SELECT Sdept,AVG(Sage) FROM Student GROUP BY Sdept; An Introduction to Database System插入子查詢結果(續(xù))插入子查詢結果(續(xù))v關系數(shù)據(jù)庫管理系統(tǒng)在執(zhí)行插入語句時會檢查所關系
8、數(shù)據(jù)庫管理系統(tǒng)在執(zhí)行插入語句時會檢查所插元組是否破壞表上已定義的完整性規(guī)則插元組是否破壞表上已定義的完整性規(guī)則n實體完整性實體完整性n參照完整性參照完整性n用戶定義的完整性用戶定義的完整性lNOT NULL約束約束lUNIQUE約束約束l值域約束值域約束An Introduction to Database System3.5 數(shù)據(jù)更新數(shù)據(jù)更新 3.5.1 插入數(shù)據(jù)插入數(shù)據(jù)3.5.2 修改數(shù)據(jù)修改數(shù)據(jù)3.5.3 刪除數(shù)據(jù)刪除數(shù)據(jù) An Introduction to Database System3.5.2 修改數(shù)據(jù)修改數(shù)據(jù)v語句格式語句格式 UPDATE SET =,= WHERE ;v功能
9、功能n修改指定表中滿足修改指定表中滿足WHERE子句條件的元組子句條件的元組nSET子句給出子句給出的值用于取代相應的屬性列的值用于取代相應的屬性列n如果省略如果省略WHERE子句,表示要修改表中的所有元組子句,表示要修改表中的所有元組An Introduction to Database System修改數(shù)據(jù)(續(xù))修改數(shù)據(jù)(續(xù))v三種修改方式三種修改方式n修改某一個元組的值修改某一個元組的值n 修改多個元組的值修改多個元組的值n 帶子查詢的修改語句帶子查詢的修改語句An Introduction to Database System1. 修改某一個元組的值修改某一個元組的值 例例3.73 將
10、學生將學生201215121的年齡改為的年齡改為22歲歲 UPDATE Student SET Sage=22 WHERE Sno= 201215121 ; An Introduction to Database System2. 修改多個元組的值修改多個元組的值 例例3.74 將所有學生的年齡增加將所有學生的年齡增加1歲。歲。 UPDATE Student SET Sage= Sage+1;An Introduction to Database System3. 帶子查詢的修改語句帶子查詢的修改語句 例例3.75 將計算機科學系全體學生的成績置零。將計算機科學系全體學生的成績置零。 UPDA
11、TE SC SET Grade=0 WHERE Sno IN (SELETE Sno FROM Student WHERE Sdept= CS );An Introduction to Database System修改數(shù)據(jù)(續(xù))修改數(shù)據(jù)(續(xù))v關系數(shù)據(jù)庫管理系統(tǒng)在執(zhí)行修改語句時會檢查修關系數(shù)據(jù)庫管理系統(tǒng)在執(zhí)行修改語句時會檢查修改操作是否破壞表上已定義的完整性規(guī)則改操作是否破壞表上已定義的完整性規(guī)則n實體完整性實體完整性n主碼不允許修改主碼不允許修改n用戶定義的完整性用戶定義的完整性l NOT NULL約束約束l UNIQUE約束約束l 值域約束值域約束An Introduction to D
12、atabase System3.5 數(shù)據(jù)更新數(shù)據(jù)更新 3.5.1 插入數(shù)據(jù)插入數(shù)據(jù)3.5.2 修改數(shù)據(jù)修改數(shù)據(jù)3.5.3 刪除數(shù)據(jù)刪除數(shù)據(jù) An Introduction to Database System3.5.3 刪除數(shù)據(jù)刪除數(shù)據(jù)v語句格式語句格式 DELETE FROM WHERE ;v功能功能n刪除指定表中滿足刪除指定表中滿足WHERE子句條件的元組子句條件的元組vWHERE子句子句n指定要刪除的元組指定要刪除的元組n缺省表示要刪除表中的全部元組,表的定義仍在字缺省表示要刪除表中的全部元組,表的定義仍在字典中典中An Introduction to Database System刪除
13、數(shù)據(jù)(續(xù))刪除數(shù)據(jù)(續(xù))v三種刪除方式三種刪除方式n刪除某一個元組的值刪除某一個元組的值n 刪除多個元組的值刪除多個元組的值n帶子查詢的刪除語句帶子查詢的刪除語句An Introduction to Database System1. 刪除某一個元組的值刪除某一個元組的值 例例3.76 刪除學號為刪除學號為201215128的學生記錄。的學生記錄。 DELETE FROM Student WHERE Sno= 201215128 ;An Introduction to Database System2. 刪除多個元組的值刪除多個元組的值 例例3.77 刪除所有的學生選課記錄。刪除所有的學生選課
14、記錄。 DELETE FROM SC;An Introduction to Database System3. 帶子查詢的刪除語句帶子查詢的刪除語句 例例3.78 刪除計算機科學系所有學生的選課記錄。刪除計算機科學系所有學生的選課記錄。DELETEFROM SCWHERE Sno IN(SELETE Sno FROM Student WHERE Sdept= CS) ;An Introduction to Database System第三章第三章 關系數(shù)據(jù)庫標準語言關系數(shù)據(jù)庫標準語言SQL3.1 SQL概述概述3.2 學生學生-課程數(shù)據(jù)庫課程數(shù)據(jù)庫3.3 數(shù)據(jù)定義數(shù)據(jù)定義3.4 數(shù)據(jù)查詢數(shù)據(jù)
15、查詢3.5 數(shù)據(jù)更新數(shù)據(jù)更新3.6 空值的處理空值的處理3.7 視圖視圖3.8 小結小結An Introduction to Database System3.6 空值的處理空值的處理v空值就是空值就是“不知道不知道”或或“不存在不存在”或或“無意義無意義”的值。的值。v一般有以下幾種情況:一般有以下幾種情況:n該屬性應該有一個值,但目前不知道它的具體值該屬性應該有一個值,但目前不知道它的具體值n該屬性不應該有值該屬性不應該有值n由于某種原因不便于填寫由于某種原因不便于填寫An Introduction to Database System1. 空值的產生空值的產生v空值是一個很特殊的值,含有
16、不確定性。對關系運空值是一個很特殊的值,含有不確定性。對關系運算帶來特殊的問題,需要做特殊的處理。算帶來特殊的問題,需要做特殊的處理。v空值的產生空值的產生例例 3.79向向SC表中插入一個元組,學生號是表中插入一個元組,學生號是”201215126”,課,課程號是程號是”1”,成績?yōu)榭?。,成績?yōu)榭铡?INSERT INTO SC(Sno,Cno,Grade) VALUES(201215126 ,1,NULL); /*該學生還沒有考試成績,取空值該學生還沒有考試成績,取空值*/或或 INSERT INTO SC(Sno,Cno) VALUES( 201215126 ,1); /*沒有賦值的屬性
17、,其值為空值沒有賦值的屬性,其值為空值*/An Introduction to Database System空值的產生(續(xù))空值的產生(續(xù))例例3.80 將將Student表中學生號為表中學生號為”201215200”的學生所屬的學生所屬的系改為空值。的系改為空值。UPDATE StudentSET Sdept = NULLWHERE Sno=201215200;An Introduction to Database System2. 空值的判斷空值的判斷v判斷一個屬性的值是否為空值,用判斷一個屬性的值是否為空值,用IS NULL或或IS NOT NULL來表示。來表示。例例 3.81 從從
18、Student表中找出漏填了數(shù)據(jù)的學生信息表中找出漏填了數(shù)據(jù)的學生信息SELECT *FROM StudentWHERE Sname IS NULL OR Ssex IS NULL OR Sage IS NULL OR Sdept IS NULL;An Introduction to Database System3. 空值的約束條件空值的約束條件v屬性定義(或者域定義)中屬性定義(或者域定義)中n有有NOT NULL約束條件的不能取空值約束條件的不能取空值n加了加了UNIQUE限制的屬性不能取空值限制的屬性不能取空值n碼屬性不能取空值碼屬性不能取空值An Introduction to Da
19、tabase System4. 空值空值的算術運算、比較運算和邏輯運算的算術運算、比較運算和邏輯運算n 空值與另一個值(包括另一個空值)的算術運算的結果為空值與另一個值(包括另一個空值)的算術運算的結果為空值空值n 空值與另一個值(包括另一個空值)的比較運算的結果為空值與另一個值(包括另一個空值)的比較運算的結果為UNKNOWN。n 有有UNKNOWN后,傳統(tǒng)二值(后,傳統(tǒng)二值(TRUE,F(xiàn)ALSE)邏輯就擴)邏輯就擴展成了三值邏輯展成了三值邏輯An Introduction to Database System空值空值的算術運算、比較運算和邏輯運算的算術運算、比較運算和邏輯運算( (續(xù)續(xù))
20、) x y x AND y x OR y NOT x T T T T F T U U T F T F F T F U T U T U U U U U U U F F U U F T F T T F U F U T F F F F TT表示表示TRUE,F(xiàn)表示表示FALSE,U表示表示UNKNOWN表表3.8 邏輯運算符真值表邏輯運算符真值表 An Introduction to Database System空值的算術運算、比較運算和邏輯運算(續(xù))空值的算術運算、比較運算和邏輯運算(續(xù))例例3.82 找出選修找出選修1號課程的不及格的學生。號課程的不及格的學生。 SELECT Sno FROM
21、 SC WHERE Grade 60 AND Cno=1; 查詢結果不包括缺考的學生,因為他們的查詢結果不包括缺考的學生,因為他們的Grade值為值為 null。An Introduction to Database System空值的算術運算、比較運算和邏輯運算(續(xù))空值的算術運算、比較運算和邏輯運算(續(xù))SELECT SnoFROM SCWHERE Grade 60 AND Cno=1UNIONSELECT SnoFROM SCWHERE Grade IS NULL AND Cno=1或者或者SELECT SnoFROM SCWHERE Cno=1 AND (Grade60 OR Grad
22、e IS NULL);例例 3.83 選出選修選出選修1號課程的不及格的學生以及缺考的學生。號課程的不及格的學生以及缺考的學生。An Introduction to Database System第三章第三章 關系數(shù)據(jù)庫標準語言關系數(shù)據(jù)庫標準語言SQL3.1 SQL概述概述3.2 學生學生-課程數(shù)據(jù)庫課程數(shù)據(jù)庫3.3 數(shù)據(jù)定義數(shù)據(jù)定義3.4 數(shù)據(jù)查詢數(shù)據(jù)查詢3.5 數(shù)據(jù)更新數(shù)據(jù)更新3.6 空值的處理空值的處理3.7 視圖視圖3.8 小結小結An Introduction to Database System3.7 視圖視圖v視圖的特點視圖的特點n虛表,是從一個或幾個基本表(或視圖)導出的表虛表
23、,是從一個或幾個基本表(或視圖)導出的表n只存放視圖的定義,不存放視圖對應的數(shù)據(jù)只存放視圖的定義,不存放視圖對應的數(shù)據(jù)n基表中的數(shù)據(jù)發(fā)生變化,從視圖中查詢出的數(shù)據(jù)也基表中的數(shù)據(jù)發(fā)生變化,從視圖中查詢出的數(shù)據(jù)也隨之改變隨之改變An Introduction to Database System3.7 視圖視圖3.7.1 定義視圖定義視圖3.7.2 查詢視圖查詢視圖3.7.3 更新視圖更新視圖3.7.4 視圖的作用視圖的作用An Introduction to Database System3.7.1 定義視圖定義視圖1.建立視圖建立視圖2.刪除視圖刪除視圖An Introduction to D
24、atabase System1. 建立視圖建立視圖v語句格式語句格式 CREATE VIEW ( ,) AS WITH CHECK OPTION;An Introduction to Database System建立視圖(續(xù))建立視圖(續(xù))vWITH CHECK OPTIONn對視圖進行對視圖進行UPDATE,INSERT和和DELETE操作時要保操作時要保證更新、插入或刪除的行滿足視圖定義中的謂詞條件證更新、插入或刪除的行滿足視圖定義中的謂詞條件(即子查詢中的條件表達式)(即子查詢中的條件表達式)v子查詢可以是任意的子查詢可以是任意的SELECT語句,是否可以含語句,是否可以含有有ORDE
25、R BY子句和子句和DISTINCT短語,則決定具短語,則決定具體系統(tǒng)的實現(xiàn)。體系統(tǒng)的實現(xiàn)。An Introduction to Database System建立視圖(續(xù))建立視圖(續(xù))v組成視圖的屬性列名:全部省略或全部指定組成視圖的屬性列名:全部省略或全部指定n全部省略全部省略: l由子查詢中由子查詢中SELECT目標列中的諸字段組成目標列中的諸字段組成n明確指定視圖的所有列名明確指定視圖的所有列名:l某個目標列是聚集函數(shù)或列表達式某個目標列是聚集函數(shù)或列表達式l多表連接時選出了幾個同名列作為視圖的字段多表連接時選出了幾個同名列作為視圖的字段l需要在視圖中為某個列啟用新的更合適的名字需要
26、在視圖中為某個列啟用新的更合適的名字An Introduction to Database System 建立視圖(續(xù))建立視圖(續(xù))v關系數(shù)據(jù)庫管理系統(tǒng)執(zhí)行關系數(shù)據(jù)庫管理系統(tǒng)執(zhí)行CREATE VIEW語句時語句時只是把視圖定義存入數(shù)據(jù)字典,并不執(zhí)行其中的只是把視圖定義存入數(shù)據(jù)字典,并不執(zhí)行其中的SELECT語句。語句。v在對視圖查詢時,按視圖的定義從基本表中將數(shù)在對視圖查詢時,按視圖的定義從基本表中將數(shù)據(jù)查出。據(jù)查出。An Introduction to Database System建立視圖(續(xù))建立視圖(續(xù)) 例例3.84 建立信息系學生的視圖。建立信息系學生的視圖。 CREATE VI
27、EW IS_Student AS SELECT Sno,Sname,Sage FROM Student WHERE Sdept= IS;An Introduction to Database System建立視圖(續(xù))建立視圖(續(xù))例例3.85建立信息系學生的視圖,并要求進行修改和插入建立信息系學生的視圖,并要求進行修改和插入操作時仍需保證該視圖只有信息系的學生操作時仍需保證該視圖只有信息系的學生 。 CREATE VIEW IS_Student AS SELECT Sno,Sname,Sage FROM Student WHERE Sdept= IS WITH CHECK OPTION;An
28、 Introduction to Database System建立視圖(續(xù))建立視圖(續(xù))v定義定義IS_Student視圖時加上了視圖時加上了WITH CHECK OPTION子句,對該視圖進行插入、修改和刪除操作子句,對該視圖進行插入、修改和刪除操作時,時,RDBMS會自動加上會自動加上Sdept=IS的條件。的條件。v若一個視圖是從單個基本表導出的,并且只是去掉若一個視圖是從單個基本表導出的,并且只是去掉了基本表的某些行和某些列,但保留了主碼,我們了基本表的某些行和某些列,但保留了主碼,我們稱這類視圖為稱這類視圖為行列子集視圖行列子集視圖。nIS_Student視圖就是一個行列子集視圖
29、。視圖就是一個行列子集視圖。An Introduction to Database System建立視圖(續(xù))建立視圖(續(xù))v基于多個基表的視圖基于多個基表的視圖例例3.86 建立信息系選修了建立信息系選修了1號課程的學生的視圖(包括號課程的學生的視圖(包括學號、姓名、成績)。學號、姓名、成績)。 CREATE VIEW IS_S1(Sno,Sname,Grade) AS SELECT Student.Sno,Sname,Grade FROM Student,SC WHERE Sdept= IS AND Student.Sno=SC.Sno AND SC.Cno= 1;An Introduct
30、ion to Database System建立視圖(續(xù))建立視圖(續(xù))v基于視圖的視圖基于視圖的視圖例例3.87 建立信息系選修了建立信息系選修了1號課程且成績在號課程且成績在90分以上的分以上的學生的視圖。學生的視圖。 CREATE VIEW IS_S2 AS SELECT Sno,Sname,Grade FROM IS_S1 WHERE Grade=90;An Introduction to Database System建立視圖(續(xù))建立視圖(續(xù))v帶表達式的視圖帶表達式的視圖例例3.88 定義一個反映學生出生年份的視圖。定義一個反映學生出生年份的視圖。 CREATE VIEW BT_
31、S(Sno,Sname,Sbirth) AS SELECT Sno,Sname,2014-Sage FROM Student;An Introduction to Database System建立視圖(續(xù))建立視圖(續(xù))v分組視圖分組視圖例例3.89 將學生的學號及平均成績定義為一個視圖將學生的學號及平均成績定義為一個視圖 CREAT VIEW S_G(Sno,Gavg) AS SELECT Sno,AVG(Grade) FROM SC GROUP BY Sno;An Introduction to Database System 建立視圖(續(xù))建立視圖(續(xù))例例3.90將將Student表
32、中所有女生記錄定義為一個視圖表中所有女生記錄定義為一個視圖 CREATE VIEW F_Student(F_Sno,name,sex,age,dept) AS SELECT * /*沒有不指定屬性列沒有不指定屬性列*/ FROM Student WHERE Ssex=女女; 缺點:缺點: 修改基表修改基表Student的結構后,的結構后,Student表與表與F_Student視圖視圖 的映象關系被破壞,導致該視圖不能正確工作。的映象關系被破壞,導致該視圖不能正確工作。An Introduction to Database System2. 刪除視圖刪除視圖v語句的格式:語句的格式:DROP
33、VIEW CASCADE;n該語句從數(shù)據(jù)字典中刪除指定的視圖定義該語句從數(shù)據(jù)字典中刪除指定的視圖定義n如果該視圖上還導出了其他視圖,使用如果該視圖上還導出了其他視圖,使用CASCADE級級聯(lián)刪除語句,把該視圖和由它導出的所有視圖一起刪聯(lián)刪除語句,把該視圖和由它導出的所有視圖一起刪除除 n刪除基表時,由該基表導出的所有視圖定義都必須顯刪除基表時,由該基表導出的所有視圖定義都必須顯式地使用式地使用DROP VIEW語句刪除語句刪除 An Introduction to Database System刪除視圖刪除視圖(續(xù))續(xù)) 例例3.91 刪除視圖刪除視圖BT_S和和IS_S1DROP VIEW
34、BT_S;/*成功執(zhí)行成功執(zhí)行*/DROP VIEW IS_S1;/*拒絕執(zhí)行拒絕執(zhí)行*/ 要刪除要刪除IS_S1,需使用級聯(lián)刪除:,需使用級聯(lián)刪除: DROP VIEW IS_S1 CASCADE; An Introduction to Database System3.7 視圖視圖3.7.1 定義視圖定義視圖3.7.2 查詢視圖查詢視圖3.7.3 更新視圖更新視圖3.7.4 視圖的作用視圖的作用An Introduction to Database System3.7.2 查詢視圖查詢視圖v用戶角度:查詢視圖與查詢基本表相同用戶角度:查詢視圖與查詢基本表相同v關系數(shù)據(jù)庫管理系統(tǒng)實現(xiàn)視圖查詢
35、的方法關系數(shù)據(jù)庫管理系統(tǒng)實現(xiàn)視圖查詢的方法n視圖消解法(視圖消解法(View Resolution)l進行有效性檢查進行有效性檢查l轉換成等價的對基本表的查詢轉換成等價的對基本表的查詢l執(zhí)行執(zhí)行修正修正后的查詢后的查詢An Introduction to Database System查詢視圖(續(xù))查詢視圖(續(xù))例例3.92 在信息系學生的視圖中找出年齡小于在信息系學生的視圖中找出年齡小于20歲的學生。歲的學生。 SELECT Sno,Sage FROM IS_Student WHERE Sage20;視圖消解轉換后的查詢語句為:視圖消解轉換后的查詢語句為: SELECT Sno,Sage F
36、ROM Student WHERE Sdept= IS AND Sage=90; S_G視圖的子查詢定義:視圖的子查詢定義: CREATE VIEW S_G (Sno,Gavg) AS SELECT Sno,AVG(Grade)FROM SCGROUP BY Sno;An Introduction to Database System查詢視圖(續(xù))查詢視圖(續(xù))錯誤:錯誤:SELECT Sno,AVG(Grade)FROM SCWHERE AVG(Grade)=90GROUP BY Sno;正確:正確:SELECT Sno,AVG(Grade)FROM SCGROUP BY SnoHAVING
37、 AVG(Grade)=90;An Introduction to Database System查詢視圖(續(xù))查詢視圖(續(xù))例例3.94也可以用如下也可以用如下SQL語句完成語句完成SELECT * FROM (SELECT Sno,AVG(Grade) FROM SC GROUP BY Sno) AS S_G(Sno,Gavg) WHERE Gavg=90;An Introduction to Database System3.7 視圖視圖3.7.1 定義視圖定義視圖3.7.2 查詢視圖查詢視圖3.7.3 更新視圖更新視圖3.7.4 視圖的作用視圖的作用An Introduction to
38、 Database System更新視圖(續(xù))更新視圖(續(xù))例例3.95 將信息系學生視圖將信息系學生視圖IS_Student中學中學號號”201215122”的學生姓名改為的學生姓名改為”劉辰劉辰”。UPDATE IS_StudentSET Sname= 劉辰劉辰WHERE Sno= 201215122 ;轉換后的語句:轉換后的語句:UPDATE StudentSET Sname= 劉辰劉辰WHERE Sno= 201215122 AND Sdept= IS;An Introduction to Database System更新視圖(續(xù))更新視圖(續(xù))例例3.96 向信息系學生視圖向信息系
39、學生視圖IS_S中插入一個新的學生記錄,中插入一個新的學生記錄,其中學號為其中學號為”201215129”,姓名為,姓名為”趙新趙新”,年齡為,年齡為20歲歲INSERTINTO IS_StudentVALUES(201215129,趙新趙新,20);轉換為對基本表的更新:轉換為對基本表的更新:INSERTINTO Student(Sno,Sname,Sage,Sdept)VALUES(200215129 ,趙新趙新,20,IS );An Introduction to Database System更新視圖(續(xù))更新視圖(續(xù))例例3.97刪除信息系學生視圖刪除信息系學生視圖IS_Studen
40、t中學號中學號為為”201215129”的記錄的記錄 DELETEFROM IS_StudentWHERE Sno= 201215129 ;轉換為對基本表的更新:轉換為對基本表的更新:DELETEFROM StudentWHERE Sno= 201215129 AND Sdept= IS;An Introduction to Database System更新視圖(續(xù))更新視圖(續(xù))v更新視圖的限制:一些視圖是不可更新的,因為更新視圖的限制:一些視圖是不可更新的,因為對這些視圖的更新不能唯一地有意義地轉換成對對這些視圖的更新不能唯一地有意義地轉換成對相應基本表的更新相應基本表的更新例:例例:例
41、3.89定義的視圖定義的視圖S_G為不可更新視圖。為不可更新視圖。UPDATE S_GSET Gavg=90WHERE Sno= 201215121;這個對視圖的更新無法轉換成對基本表這個對視圖的更新無法轉換成對基本表SC的更新的更新An Introduction to Database System更新視圖(續(xù))更新視圖(續(xù))v允許對行列子集視圖進行更新允許對行列子集視圖進行更新v對其他類型視圖的更新不同系統(tǒng)有不同限制對其他類型視圖的更新不同系統(tǒng)有不同限制An Introduction to Database System更新視圖(續(xù))更新視圖(續(xù))vDB2對視圖更新的限制:對視圖更新的限制
42、:n若視圖是由兩個以上基本表導出的,則此視圖不允許更新。若視圖是由兩個以上基本表導出的,則此視圖不允許更新。n若視圖的字段來自字段表達式或常數(shù),則不允許對此視圖執(zhí)若視圖的字段來自字段表達式或常數(shù),則不允許對此視圖執(zhí)行行INSERT和和UPDATE操作,但允許執(zhí)行操作,但允許執(zhí)行DELETE操作。操作。n若視圖的字段來自集函數(shù),則此視圖不允許更新。若視圖的字段來自集函數(shù),則此視圖不允許更新。n若視圖定義中含有若視圖定義中含有GROUP BY子句,則此視圖不允許更新。子句,則此視圖不允許更新。n若視圖定義中含有若視圖定義中含有DISTINCT短語,則此視圖不允許更新。短語,則此視圖不允許更新。n若
43、視圖定義中有嵌套查詢,并且內層查詢的若視圖定義中有嵌套查詢,并且內層查詢的FROM子句中涉子句中涉及的表也是導出該視圖的基本表,則此視圖不允許更新。及的表也是導出該視圖的基本表,則此視圖不允許更新。An Introduction to Database System更新視圖(續(xù))更新視圖(續(xù))例:將例:將SC中成績在平均成績之上的元組定義成一個視圖中成績在平均成績之上的元組定義成一個視圖 CREATE VIEW GOOD_SC AS SELECT Sno,Cno,Grade FROM SC WHERE Grade (SELECT AVG(Grade) FROM SC);n 一個不允許更新的視圖
44、上定義的視圖也不允許更新一個不允許更新的視圖上定義的視圖也不允許更新An Introduction to Database System3.7 視圖視圖3.7.1 定義視圖定義視圖3.7.2 查詢視圖查詢視圖3.7.3 更新視圖更新視圖3.7.4 視圖的作用視圖的作用An Introduction to Database System3.7.4 視圖的作用視圖的作用v視圖能夠簡化用戶的操作視圖能夠簡化用戶的操作v視圖使用戶能以多種角度看待同一數(shù)據(jù)視圖使用戶能以多種角度看待同一數(shù)據(jù) v視圖對重構數(shù)據(jù)庫提供了一定程度的邏輯獨立性視圖對重構數(shù)據(jù)庫提供了一定程度的邏輯獨立性 v視圖能夠對機密數(shù)據(jù)提供安
45、全保護視圖能夠對機密數(shù)據(jù)提供安全保護v適當?shù)睦靡晥D可以更清晰的表達查詢適當?shù)睦靡晥D可以更清晰的表達查詢An Introduction to Database System視圖的作用(續(xù))視圖的作用(續(xù))v視圖能夠視圖能夠簡化簡化用戶的操作用戶的操作 當視圖中數(shù)據(jù)不是直接來自基本表時,定義視圖能夠簡當視圖中數(shù)據(jù)不是直接來自基本表時,定義視圖能夠簡化用戶的操作化用戶的操作n基于多張表連接形成的視圖基于多張表連接形成的視圖n基于復雜嵌套查詢的視圖基于復雜嵌套查詢的視圖n含導出屬性的視圖含導出屬性的視圖An Introduction to Database System視圖的作用(續(xù))視圖的作用(續(xù))v視圖使用戶能以視圖使用戶能以多種角度多種角度看待同一數(shù)據(jù)看待同一數(shù)據(jù)n視圖機制能使不同用戶以不同方式看待同一數(shù)據(jù),視圖機制能使不同用戶以不同方式看待同一數(shù)據(jù), 適應數(shù)據(jù)庫共享的需要適應數(shù)據(jù)庫共享的需要An Introduction to Database System視圖的作用(續(xù))視圖的作用(續(xù))v視圖對重構數(shù)據(jù)庫提供了一定程度的邏輯獨立性視圖對重構數(shù)據(jù)庫提供了一定程度的邏輯獨立性n數(shù)據(jù)庫重構數(shù)據(jù)庫重構 :例:學生關系例:學生關系Student(Sno,Sname,Ssex,Sage,Sdept
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 攪拌回收合同范本
- 教師裝潢合同范本
- 2025年地方特色美食產業(yè)開發(fā)可行性研究報告
- 旅行社門店協(xié)議書
- 日本買賣合同范本
- 舊改合同補充協(xié)議
- 曠工解除合同范本
- 改姓的協(xié)議合同書
- 搬遷轉包合同范本
- 2025年產業(yè)鏈整合與協(xié)作平臺項目可行性研究報告
- 機械三視圖培訓課件
- 環(huán)衛(wèi)部門冬季安全作業(yè)培訓課件
- 合成洗滌劑制造工作業(yè)指導書
- 托盤貨架培訓課件
- 胎兒右位主動脈弓伴鏡像分支超聲診斷
- 種植產業(yè)項目管理制度
- 房地產開發(fā)專項資金審計重點與流程
- 2025年高中音樂美術學業(yè)考核試題
- 華南理工大學2019級大學物理(II)期末試卷
- 法醫(yī)門診承包協(xié)議書
- 【MOOC期末】《大學體育-棒壘球》(東南大學)期末考試慕課答案
評論
0/150
提交評論