數(shù)據(jù)庫系統(tǒng)概論 5版 2016 ch03_第1頁
數(shù)據(jù)庫系統(tǒng)概論 5版 2016 ch03_第2頁
數(shù)據(jù)庫系統(tǒng)概論 5版 2016 ch03_第3頁
數(shù)據(jù)庫系統(tǒng)概論 5版 2016 ch03_第4頁
數(shù)據(jù)庫系統(tǒng)概論 5版 2016 ch03_第5頁
已閱讀5頁,還剩78頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、An Introduction to Database System山東科技大學(xué)信息學(xué)院山東科技大學(xué)信息學(xué)院 數(shù)據(jù)庫系統(tǒng)概論數(shù)據(jù)庫系統(tǒng)概論An Introduction to Database System第三章第三章 關(guān)系數(shù)據(jù)庫標(biāo)準(zhǔn)語言關(guān)系數(shù)據(jù)庫標(biāo)準(zhǔn)語言SQL SQL (續(xù)續(xù)2)An Introduction to Database System第三章第三章 關(guān)系數(shù)據(jù)庫標(biāo)準(zhǔn)語言關(guān)系數(shù)據(jù)庫標(biāo)準(zhǔn)語言SQL3.1 SQL概述概述3.2 學(xué)生學(xué)生-課程數(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小結(jié)小結(jié)An Introduc

2、tion to Database System3.5 數(shù)數(shù) 據(jù)據(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ù)方式1. 插入元組2. 插入子查詢結(jié)果可以一次插入多個(gè)元組 An Introduction to Database System一、插入元組一、插入元組v語句格式INSERTINTO (,)VALUES ( , )v功能n將新元組插入指定表中An Introduction to Database System插入元組(續(xù))插

3、入元組(續(xù))v INTO子句n屬性列的順序可與表定義中的順序不一致n沒有指定屬性列:表示要插入的是一條完整的元組,且屬性列屬性與表定義中的順序一致n指定部分屬性列:插入的元組在其余屬性列上取空值v VALUES子句n 提供的值必須與INTO子句匹配值的個(gè)數(shù)值的類型An Introduction to Database System插入元組(續(xù))插入元組(續(xù))例1 將一個(gè)新學(xué)生元組(學(xué)號(hào):200215128;姓名:陳冬;性別:男;所在系:IS;年齡:18歲)插入到Student表中。 INSERT INTO Student (Sno,Sname,Ssex,Sdept,Sage) VALUES (

4、200215128,陳冬,男,IS,18);An Introduction to Database System插入元組(續(xù))插入元組(續(xù))例2 將學(xué)生張成民的信息插入到Student表中。 INSERT INTO Student VALUES (200215126, 張成民, 男,18,CS); An Introduction to Database System插入元組(續(xù))插入元組(續(xù))例3 插入一條選課記錄( 200215128,1 )。 INSERT INTO SC(Sno,Cno) VALUES ( 200215128 , 1 ); RDBMS將在新插入記錄的Grade列上自動(dòng)地賦

5、空值。 或者: INSERT INTO SC VALUES ( 200215128 , 1 ,NULL);An Introduction to Database System二、插入子查詢結(jié)果二、插入子查詢結(jié)果v語句格式 INSERT INTO ( , ) 子查詢;v功能 將子查詢結(jié)果插入指定表中An Introduction to Database System插入子查詢結(jié)果(續(xù))插入子查詢結(jié)果(續(xù))v INTO子句(與插入元組類似)v 子查詢nSELECT子句目標(biāo)列必須與INTO子句匹配值的個(gè)數(shù)值的類型An Introduction to Database System插入子查詢結(jié)果(續(xù))

6、插入子查詢結(jié)果(續(xù))例4 對(duì)每一個(gè)系,求學(xué)生的平均年齡,并把結(jié)果存入數(shù)據(jù)庫。第一步:建表 CREATE TABLE Dept_age (Sdept CHAR(15) /* 系名*/ Avg_age SMALLINT); /*學(xué)生平均年齡*/第二步:插入數(shù)據(jù) INSERT INTO Dept_age(Sdept,Avg_age) SELECT Sdept,AVG(Sage) FROM Student GROUP BY Sdept;An Introduction to Database System插入子查詢結(jié)果(續(xù))插入子查詢結(jié)果(續(xù))RDBMS在執(zhí)行插入語句時(shí)會(huì)檢查所插元組是否破壞表上已定義的

7、完整性規(guī)則 實(shí)體完整性 參照完整性 用戶定義的完整性NOT NULL約束UNIQUE約束值域約束An Introduction to Database System3.5 數(shù)數(shù) 據(jù)據(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.4.2 修改數(shù)據(jù)修改數(shù)據(jù)v語句格式 UPDATE SET =,= WHERE ;v功能n修改指定表中滿足WHERE子句條件的元組An Introduction to Database System修改數(shù)據(jù)(續(xù))修改數(shù)據(jù)(續(xù))nSET子句指定修改方

8、式要修改的列修改后取值nWHERE子句指定要修改的元組缺省表示要修改表中的所有元組An Introduction to Database System修改數(shù)據(jù)(續(xù))修改數(shù)據(jù)(續(xù))v三種修改方式1. 修改某一個(gè)元組的值2. 修改多個(gè)元組的值3. 帶子查詢的修改語句An Introduction to Database System1. 修改某一個(gè)元組的值修改某一個(gè)元組的值例5 將學(xué)生200215121的年齡改為22歲 UPDATE Student SET Sage=22 WHERE Sno= 200215121 ; An Introduction to Database System2. 修改多

9、個(gè)元組的值修改多個(gè)元組的值例6 將所有學(xué)生的年齡增加1歲 UPDATE Student SET Sage= Sage+1;An Introduction to Database System3. 帶子查詢的修改語句帶子查詢的修改語句例7 將計(jì)算機(jī)科學(xué)系全體學(xué)生的成績(jī)置零。 UPDATE SC SET Grade=0 WHERE CS= (SELECT Sdept FROM Student WHERE Student.Sno = SC.Sno);An Introduction to Database System修改數(shù)據(jù)(續(xù))修改數(shù)據(jù)(續(xù))RDBMS在執(zhí)行修改語句時(shí)會(huì)檢查修改操作是否破壞表上已定

10、義的完整性規(guī)則n實(shí)體完整性n主碼不允許修改n用戶定義的完整性 NOT NULL約束 UNIQUE約束 值域約束An Introduction to Database System3.5 數(shù)數(shù) 據(jù)據(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指定要?jiǎng)h除的元組n缺省表示要?jiǎng)h除表中的全部元組,表的定義仍在字典中An Introducti

11、on to Database System刪除數(shù)據(jù)(續(xù))刪除數(shù)據(jù)(續(xù))v三種刪除方式1. 刪除某一個(gè)元組的值2. 刪除多個(gè)元組的值3. 帶子查詢的刪除語句An Introduction to Database System1. 刪除某一個(gè)元組的值刪除某一個(gè)元組的值例8 刪除學(xué)號(hào)為200215128的學(xué)生記錄。 DELETE FROM Student WHERE Sno= 200215128;An Introduction to Database System2. 刪除多個(gè)元組的值刪除多個(gè)元組的值例9 刪除所有的學(xué)生選課記錄。 DELETE FROM SC;An Introduction to

12、Database System3. 帶子查詢的刪除語句帶子查詢的刪除語句例10 刪除計(jì)算機(jī)科學(xué)系所有學(xué)生的選課記錄。 DELETE FROM SC WHERE CS= (SELECT Sdept FROM Student WHERE Student.Sno=SC.Sno);An Introduction to Database System第三章第三章 關(guān)系數(shù)據(jù)庫標(biāo)準(zhǔn)語言關(guān)系數(shù)據(jù)庫標(biāo)準(zhǔn)語言SQL3.1 SQL概述概述3.2 學(xué)生學(xué)生-課程數(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小結(jié)小結(jié)3.6 空值的處理空值的處理v

13、空值就是“不知道”或“不存在”或“無意義”的值。v一般有以下幾種情況: 該屬性應(yīng)該有一個(gè)值,但目前不知道它的具體值 該屬性不應(yīng)該有值 由于某種原因不便于填寫1. 空值的產(chǎn)生空值的產(chǎn)生v空值是一個(gè)很特殊的值,含有不確定性。對(duì)關(guān)系運(yùn)算帶來特殊的問題,需要做特殊的處理。v空值的產(chǎn)生例 3.79向SC表中插入一個(gè)元組,學(xué)生號(hào)是”201215126”,課程號(hào)是”1”,成績(jī)?yōu)榭铡?INSERT INTO SC(Sno,Cno,Grade) VALUES(201215126 ,1,NULL); /*該學(xué)生還沒有考試成績(jī),取空值*/或 INSERT INTO SC(Sno,Cno) VALUES( 20121

14、5126 ,1); /*沒有賦值的屬性,其值為空值*/空值的產(chǎn)生(續(xù))空值的產(chǎn)生(續(xù))例3.80 將Student表中學(xué)生號(hào)為”201215200”的學(xué)生所屬的系改為空值。UPDATE StudentSET Sdept = NULLWHERE Sno=201215200;2. 空值的判斷空值的判斷v判斷一個(gè)屬性的值是否為空值,用IS NULL或IS NOT NULL來表示。例 3.81 從Student表中找出漏填了數(shù)據(jù)的學(xué)生信息SELECT *FROM StudentWHERE Sname IS NULL OR Ssex IS NULL OR Sage IS NULL OR Sdept IS

15、 NULL;3. 空值的約束條件空值的約束條件v屬性定義(或者域定義)中 有NOT NULL約束條件的不能取空值 加了UNIQUE限制的屬性不能取空值 碼屬性不能取空值4. 空值空值的算術(shù)運(yùn)算、比較運(yùn)算和邏輯運(yùn)算的算術(shù)運(yùn)算、比較運(yùn)算和邏輯運(yùn)算n 空值與另一個(gè)值(包括另一個(gè)空值)的算術(shù)運(yùn)算的結(jié)果為空值n 空值與另一個(gè)值(包括另一個(gè)空值)的比較運(yùn)算的結(jié)果為UNKNOWN。n 有UNKNOWN后,傳統(tǒng)二值(TRUE,F(xiàn)ALSE)邏輯就擴(kuò)展成了三值邏輯空值空值的算術(shù)運(yùn)算、比較運(yùn)算和邏輯運(yùn)算的算術(shù)運(yùn)算、比較運(yùn)算和邏輯運(yùn)算( (續(xù)續(xù)) ) x y x AND y x OR y NOT x T T T T

16、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 邏輯運(yùn)算符真值表邏輯運(yùn)算符真值表 空值的算術(shù)運(yùn)算、比較運(yùn)算和邏輯運(yùn)算(續(xù))空值的算術(shù)運(yùn)算、比較運(yùn)算和邏輯運(yùn)算(續(xù))例3.82 找出選修1號(hào)課程的不及格的學(xué)生。 SELECT Sno FROM SC WHERE Grade 60 AND Cno=1; 查詢結(jié)果不包括缺考的學(xué)生,因?yàn)樗麄兊腉rade值為 null??罩档乃阈g(shù)運(yùn)算、比較運(yùn)算和邏輯運(yùn)算(續(xù))空值的算

17、術(shù)運(yùn)算、比較運(yùn)算和邏輯運(yùn)算(續(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 Grade IS NULL);例例 3.83 選出選修選出選修1號(hào)課程的不及格的學(xué)生以及缺考的學(xué)生。號(hào)課程的不及格的學(xué)生以及缺考的學(xué)生。An Introduction to Database System第三章第三章 關(guān)系數(shù)據(jù)庫標(biāo)準(zhǔn)語言關(guān)系數(shù)據(jù)庫標(biāo)準(zhǔn)語言SQL3.1 SQL概述概述3.2

18、學(xué)生學(xué)生-課程數(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小結(jié)小結(jié)An Introduction to Database System3.7 視視 圖圖視圖的特點(diǎn)v 虛表,是從一個(gè)或幾個(gè)基本表(或視圖)導(dǎo)出的表v 只存放視圖的定義,不存放視圖對(duì)應(yīng)的數(shù)據(jù)v 基表中的數(shù)據(jù)發(fā)生變化,從視圖中查詢出的數(shù)據(jù)也隨之改變An Introduction to Database System3.7 視視 圖圖基于視圖的操作v 查詢v 刪除v 受限更新v 定義基于該視圖的新視圖An Introduction to Databas

19、e System3.7 視視 圖圖3.7.1 定義視圖定義視圖3.7.2 查詢視圖查詢視圖3.7.3 更新視圖更新視圖3.7.4 視圖的作用視圖的作用An Introduction to Database System3.7.1 定義視圖定義視圖v建立視圖v刪除視圖An Introduction to Database System一、建立視圖一、建立視圖v語句格式 CREATE VIEW ( ,) AS WITH CHECK OPTION;v組成視圖的屬性列名:全部省略或全部指定建立視圖(續(xù))建立視圖(續(xù))An Introduction to Database SystemvWITH CHE

20、CK OPTION 對(duì)視圖進(jìn)行UPDATE,INSERT和DELETE操作時(shí)要保證更新、插入或刪除的行滿足視圖定義中的謂詞條件(即子查詢中的條件表達(dá)式)v子查詢可以是任意的SELECT語句,是否可以含有ORDER BY子句和DISTINCT短語,則決定具體系統(tǒng)的實(shí)現(xiàn)。An Introduction to Database System 建立視圖(續(xù))建立視圖(續(xù))vRDBMS執(zhí)行CREATE VIEW語句時(shí)只是把視圖定義存入數(shù)據(jù)字典,并不執(zhí)行其中的SELECT語句。v在對(duì)視圖查詢時(shí),按視圖的定義從基本表中將數(shù)據(jù)查出。An Introduction to Database System建立視圖(

21、續(xù))建立視圖(續(xù)) 例1 建立信息系學(xué)生的視圖。 CREATE VIEW IS_Student AS SELECT Sno,Sname,Sage FROM Student WHERE Sdept= IS;1 如何創(chuàng)建一個(gè)視圖?如何創(chuàng)建一個(gè)視圖?An Introduction to Database System建立視圖(續(xù))建立視圖(續(xù))例2建立信息系學(xué)生的視圖,并要求進(jìn)行修改修改和插入插入操作時(shí)仍需保證該視圖只有信息系的學(xué)生 。 CREATE VIEW IS_Student AS SELECT Sno,Sname,Sage FROM Student WHERE Sdept= IS WITH

22、CHECK OPTION;2 WITH CHECK OPTION的作用是什么的作用是什么?An Introduction to Database System建立視圖(續(xù))建立視圖(續(xù))對(duì)IS_Student視圖的更新操作:v 修改操作:自動(dòng)加上Sdept= IS的條件v 刪除操作:自動(dòng)加上Sdept= IS的條件v 插入操作:自動(dòng)檢查Sdept屬性值是否為IS 如果不是,則拒絕該插入操作 如果沒有提供Sdept屬性值,則自動(dòng)定義Sdept為ISAn Introduction to Database System建立視圖(續(xù))建立視圖(續(xù))3 可以創(chuàng)建基于多個(gè)基表的視圖嗎?可以創(chuàng)建基于多個(gè)基表

23、的視圖嗎?例3 建立信息系選修了1號(hào)課程的學(xué)生視圖。 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 Introduction to Database System建立視圖(續(xù))建立視圖(續(xù)) 4 可以創(chuàng)建基于視圖的視圖嗎?可以創(chuàng)建基于視圖的視圖嗎?例4 建立信息系選修了1號(hào)課程且成績(jī)?cè)?0分以上的學(xué)生的視圖。 CREATE VIEW IS_S2 AS SELEC

24、T Sno,Sname,Grade FROM IS_S1 WHERE Grade=90;An Introduction to Database System建立視圖(續(xù))建立視圖(續(xù))5 視圖的列可以是表達(dá)式嗎?視圖的列可以是表達(dá)式嗎?例5 定義一個(gè)反映學(xué)生出生年份的視圖。 CREATE VIEW BT_S(Sno,Sname,Sbirth) AS SELECT Sno,Sname,2008 - Sage FROM Student;An Introduction to Database System建立視圖(續(xù))建立視圖(續(xù))6 視圖的子查詢中可以使用視圖的子查詢中可以使用group by嗎?

25、嗎?例6 將學(xué)生的學(xué)號(hào)及他的平均成績(jī)定義為一個(gè)視圖。 假設(shè)SC表中“成績(jī)”列Grade為數(shù)字型 CREATE VIEW S_G(Sno,Gavg) AS SELECT Sno,AVG(Grade) FROM SC GROUP BY Sno;An Introduction to Database System CREATE VIEW F_Student(F_Sno,name,sex,age,dept) AS SELECT * FROM Student WHERE Ssex=女; 建立視圖(續(xù))建立視圖(續(xù))7 如果視圖的子查詢中如果視圖的子查詢中不指定屬性列不指定屬性列會(huì)怎么樣呢?會(huì)怎么樣呢?例

26、7將Student表中所有女生記錄定義為一個(gè)視圖修改字段順序?yàn)樾薷淖侄雾樞驗(yàn)?SNO,name,sex,dept,age)An Introduction to Database System二、刪除視圖二、刪除視圖v語句的格式:DROP VIEW ; 該語句從數(shù)據(jù)字典中刪除指定的視圖定義 如果該視圖上還導(dǎo)出了其他視圖,使用CASCADE級(jí)聯(lián)刪除語句,把該視圖和由它導(dǎo)出的所有視圖一起刪除 刪除基表時(shí),由該基表導(dǎo)出的所有視圖定義都必須顯式地使用DROP VIEW語句刪除 An Introduction to Database System刪除視圖刪除視圖(續(xù))續(xù))例8 刪除視圖BT_S: DROP

27、 VIEW BT_S; 刪除視圖IS_S1:DROP VIEW IS_S1;拒絕執(zhí)行級(jí)聯(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用戶角度:查詢視圖與查詢基本表相同vRDBMS實(shí)現(xiàn)視圖查詢的方法 視圖消解視圖消解法(View Resolution) 進(jìn)行有效性檢查 轉(zhuǎn)換成等價(jià)的對(duì)基本

28、表的查詢 執(zhí)行修正后的查詢An Introduction to Database System查詢視圖(續(xù))查詢視圖(續(xù))例9 在信息系學(xué)生的視圖中找出年齡小于20歲的學(xué)生。 SELECT Sno,Sage FROM IS_Student WHERE Sage20;1 如何轉(zhuǎn)化為等價(jià)的對(duì)基表的操作?如何轉(zhuǎn)化為等價(jià)的對(duì)基表的操作? CREATE VIEW IS_Student AS SELECT Sno,Sname,Sage FROM Student WHERE Sdept= IS; Sage20( (Sdept= IS (Student) (Student) 等價(jià)于等價(jià)于 Sage20 and

29、 Sdept= IS (Student)(Student)An Introduction to Database System查詢視圖(續(xù))查詢視圖(續(xù))視圖消解轉(zhuǎn)換后的查詢語句為: SELECT Sno,Sage FROM Student WHERE Sdept= IS AND Sage=90; S_G視圖的子查詢定義: CREATE VIEW S_G (Sno,Gavg) AS SELECT Sno,AVG(Grade) FROM SC GROUP BY Sno;An Introduction to Database System查詢轉(zhuǎn)換查詢轉(zhuǎn)換錯(cuò)誤:SELECT Sno,AVG(Grad

30、e)FROM SCWHERE AVG(Grade)=90GROUP BY Sno;正確: SELECT Sno,AVG(Grade) FROM SC GROUP BY Sno HAVING AVG(Grade)=90;查詢轉(zhuǎn)換查詢轉(zhuǎn)換An Introduction to Database System例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 視視

31、圖圖3.7.1 定義視圖定義視圖3.7.2 查詢視圖查詢視圖3.7.3 更新視圖更新視圖3.7.4 視圖的作用視圖的作用An Introduction to Database System更新視圖(續(xù))更新視圖(續(xù))例12 將信息系學(xué)生視圖IS_Student中學(xué)號(hào)200215122的學(xué)生姓名改為“劉辰”。UPDATE IS_StudentSET Sname= 劉辰WHERE Sno= 200215122 ;轉(zhuǎn)換后的語句:UPDATE StudentSET Sname= 劉辰WHERE Sno= 200215122 AND Sdept= IS;1 如何消解視圖的更新語句?如何消解視圖的更新語句

32、?An Introduction to Database System更新視圖(續(xù))更新視圖(續(xù))例13 向信息系學(xué)生視圖IS_S中插入一個(gè)新的學(xué)生記錄:200215129,趙新,20歲INSERTINTO IS_StudentVALUES(95029,趙新,20);轉(zhuǎn)換為對(duì)基本表的更新:INSERTINTO Student(Sno,Sname,Sage,Sdept)VALUES(200215129 ,趙新,20,IS );2 如何消解視圖的插入語句?如何消解視圖的插入語句?An Introduction to Database System更新視圖(續(xù))更新視圖(續(xù))例14刪除信息系學(xué)生視圖

33、IS_Student中學(xué)號(hào)為200215129的記錄 DELETEFROM IS_StudentWHERE Sno= 200215129 ;轉(zhuǎn)換為對(duì)基本表的更新:DELETEFROM StudentWHERE Sno= 200215129 AND Sdept= IS;3 如何消解視圖的刪除語句?如何消解視圖的刪除語句?An Introduction to Database System更新視圖(續(xù))更新視圖(續(xù)) 4 哪些視圖是不可更新的?哪些視圖是不可更新的? CREATE VIEW S_G(Sno,Gavg) AS SELECT Sno,AVG(Grade) FROM SC GROUP B

34、Y Sno;UPDATE S_GSET Gavg=90WHERE Sno= 200215121;能消解嗎?能消解嗎?An Introduction to Database System更新視圖(續(xù))更新視圖(續(xù)) 這個(gè)視圖的這個(gè)視圖的Sbirth字段可以更新嗎?字段可以更新嗎? CREATE VIEW BT_S(Sno,Sname,Sbirth) AS SELECT Sno,Sname,2008 - Sage FROM Student;An Introduction to Database System更新視圖(續(xù))更新視圖(續(xù))v允許對(duì)行列子集視圖行列子集視圖進(jìn)行更新v對(duì)其他類型視圖的更新不

35、同系統(tǒng)有不同限制單個(gè)基本表導(dǎo)單個(gè)基本表導(dǎo)出,保留主出,保留主碼的視圖碼的視圖更新視圖(續(xù))更新視圖(續(xù))An Introduction to Database SystemvDB2對(duì)視圖更新的限制: 若視圖是由兩個(gè)以上基本表導(dǎo)出的,則此視圖不允許更新。 若視圖的字段來自字段表達(dá)式或常數(shù),則不允許對(duì)此視圖執(zhí)行INSERT和UPDATE操作,但允許執(zhí)行DELETE操作。 若視圖的字段來自集函數(shù),則此視圖不允許更新。 若視圖定義中含有GROUP BY子句,則此視圖不允許更新。 若視圖定義中含有DISTINCT短語,則此視圖不允許更新。 若視圖定義中有嵌套查詢,并且內(nèi)層查詢的FROM子句中涉及的表也是

36、導(dǎo)出該視圖的基本表,則此視圖不允許更新。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 視圖的作用視圖的作用v1. 視圖能夠簡(jiǎn)化用戶的操作v2. 視圖使用戶能以多種角度看待同一數(shù)據(jù) v3. 視圖對(duì)重構(gòu)數(shù)據(jù)庫提供了一定程度的邏輯獨(dú)立性 v4. 視圖能夠?qū)C(jī)密數(shù)據(jù)提供安全保護(hù)v5. 適當(dāng)?shù)睦靡晥D可以更清晰的表達(dá)查詢視圖的作用(續(xù))視圖的作用(續(xù))v視圖能夠簡(jiǎn)化用戶的操作 當(dāng)視圖中數(shù)據(jù)不是直接來自基本表時(shí),定義視圖能夠簡(jiǎn)化用戶的操作 基于多張表連接形成的視圖 基于復(fù)雜嵌套查詢的視圖 含導(dǎo)出屬性的視圖視圖的作用(續(xù))視圖的作用(續(xù))v視圖使用戶能以

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論