版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、2022/4/30數(shù)據(jù)庫(kù)技術(shù)與應(yīng)用數(shù)據(jù)庫(kù)技術(shù)與應(yīng)用Database Technology and Application2013年4月第三章第三章 關(guān)系數(shù)據(jù)庫(kù)標(biāo)準(zhǔn)語(yǔ)言關(guān)系數(shù)據(jù)庫(kù)標(biāo)準(zhǔn)語(yǔ)言SQL2022/4/303.4 3.4 數(shù)數(shù) 據(jù)據(jù) 更更 新新 3.4.1 插入數(shù)據(jù)插入數(shù)據(jù)3.4.2 修改數(shù)據(jù)修改數(shù)據(jù)3.4.3 刪除數(shù)據(jù)刪除數(shù)據(jù) 2022/4/303.4.1 3.4.1 插入數(shù)據(jù)插入數(shù)據(jù)v兩種插入數(shù)據(jù)方式兩種插入數(shù)據(jù)方式1. 插入元組插入元組2. 插入子查詢結(jié)果插入子查詢結(jié)果可以一次插入多個(gè)元組可以一次插入多個(gè)元組 2022/4/30一、插入元組一、插入元組v 語(yǔ)句格式語(yǔ)句格式INSERTI
2、NTO (,)VALUES ( , )v 功能功能n將新元組插入指定表中將新元組插入指定表中2022/4/30插入元組(續(xù))插入元組(續(xù))v INTO子句子句M指定要插入數(shù)據(jù)的表名及屬性列指定要插入數(shù)據(jù)的表名及屬性列M屬性列的順序可與表定義中的順序不一致屬性列的順序可與表定義中的順序不一致M沒有指定屬性列沒有指定屬性列:表示要插入的是一條完整的元組,且:表示要插入的是一條完整的元組,且屬性列屬性與表定義中的順序一致屬性列屬性與表定義中的順序一致M指定部分屬性列:插入的元組在其余屬性列上取空值指定部分屬性列:插入的元組在其余屬性列上取空值v VALUES子句子句M提供的值必須與提供的值必須與IN
3、TO子句匹配子句匹配值的個(gè)數(shù)值的個(gè)數(shù)值的類型值的類型2022/4/30插入元組(續(xù))插入元組(續(xù))例例1 將一個(gè)新學(xué)生元組(學(xué)號(hào):將一個(gè)新學(xué)生元組(學(xué)號(hào):0903128;姓名:;姓名:陳冬;性別:男;所在系:陳冬;性別:男;所在系:IS;年齡:;年齡:18歲)插入歲)插入到到Student表中。表中。 INSERT INTO Student (Sno, Sname, Ssex, Sdept, Sage) VALUES (0903128,陳冬陳冬,男男,IS,18);2022/4/30 例例2 2將學(xué)生張成民的信息插入到將學(xué)生張成民的信息插入到Student表中表中 INSERT INTO St
4、udent VALUES (0903126, 張成民張成民, 男男,18,CS); 插入元組(續(xù))插入元組(續(xù))例例3 插入一條選課記錄插入一條選課記錄( 0903128,1 )。 INSERT INTO SC(Sno,Cno) VALUES ( 0903128 , 1 ); RDBMS將在新插入記錄的將在新插入記錄的Grade列上自動(dòng)地賦空值。列上自動(dòng)地賦空值。 或者:或者: INSERT INTO SC VALUES ( 0903128 , 1 ,NULL);2022/4/30二、插入子查詢結(jié)果二、插入子查詢結(jié)果v語(yǔ)句格式語(yǔ)句格式 INSERT INTO ( , ) 子查詢子查詢;v功能功
5、能 將子查詢結(jié)果插入指定表中將子查詢結(jié)果插入指定表中2022/4/30插入子查詢結(jié)果(續(xù))插入子查詢結(jié)果(續(xù))v INTO子句子句(與插入元組類似與插入元組類似)v 子查詢子查詢nSELECT子句目標(biāo)列必須與子句目標(biāo)列必須與INTO子句匹配子句匹配值的個(gè)數(shù)值的個(gè)數(shù)值的類型值的類型2022/4/30插入子查詢結(jié)果(續(xù))插入子查詢結(jié)果(續(xù))例例4 對(duì)每一個(gè)系,求學(xué)生的平均年齡,并把結(jié)果存對(duì)每一個(gè)系,求學(xué)生的平均年齡,并把結(jié)果存入數(shù)據(jù)庫(kù)。入數(shù)據(jù)庫(kù)。第一步:建表第一步:建表 CREATE TABLE Dept_age (Sdept CHAR(15) /* 系名系名*/ Avg_age SMALLINT
6、); /*學(xué)生平均年齡學(xué)生平均年齡*/ 2022/4/30插入子查詢結(jié)果(續(xù))插入子查詢結(jié)果(續(xù))第二步:插入數(shù)據(jù)第二步:插入數(shù)據(jù) INSERT INTO Dept_age(Sdept,Avg_age) SELECT Sdept,AVG(Sage) FROM Student GROUP BY Sdept;2022/4/30插入子查詢結(jié)果(續(xù))插入子查詢結(jié)果(續(xù))RDBMS在執(zhí)行插入語(yǔ)句時(shí)會(huì)檢查所插元組是否破壞在執(zhí)行插入語(yǔ)句時(shí)會(huì)檢查所插元組是否破壞表上已定義的表上已定義的完整性規(guī)則完整性規(guī)則:M實(shí)體完整性實(shí)體完整性M參照完整性參照完整性M用戶定義的完整性用戶定義的完整性NOT NULL約束約束U
7、NIQUE約束約束值域約束值域約束2022/4/303.4 3.4 數(shù)數(shù) 據(jù)據(jù) 更更 新新 3.4.1 插入數(shù)據(jù)插入數(shù)據(jù)3.4.2 修改數(shù)據(jù)修改數(shù)據(jù)3.4.3 刪除數(shù)據(jù)刪除數(shù)據(jù) 2022/4/303.4.2 3.4.2 修改數(shù)據(jù)修改數(shù)據(jù)v語(yǔ)句格式語(yǔ)句格式 UPDATE SET =,= WHERE ;v功能功能n修改指定表中滿足修改指定表中滿足WHERE子句條件的元組子句條件的元組2022/4/30修改數(shù)據(jù)(續(xù))修改數(shù)據(jù)(續(xù))nSET子句指定子句指定修改方式(修改方式(3種)種)修改某一個(gè)元組的值修改某一個(gè)元組的值修改多個(gè)元組的值修改多個(gè)元組的值帶子查詢的修改語(yǔ)句帶子查詢的修改語(yǔ)句要修改的列要修
8、改的列修改后取值修改后取值nWHERE子句指定子句指定要修改的元組要修改的元組缺省表示要修改表中的所有元組缺省表示要修改表中的所有元組2022/4/301. 修改某一個(gè)元組的值修改某一個(gè)元組的值例例5 將學(xué)生將學(xué)生0903121的年齡改為的年齡改為22歲歲 UPDATE Student SET Sage=22 WHERE Sno= 0903121 ; 2022/4/302. 修改多個(gè)元組的值修改多個(gè)元組的值例例6 將所有學(xué)生的年齡增加將所有學(xué)生的年齡增加1歲歲 UPDATE Student SET Sage= Sage+1;2022/4/303. 帶子查詢的修改語(yǔ)句帶子查詢的修改語(yǔ)句例例7 將
9、計(jì)算機(jī)科學(xué)系全體學(xué)生的成績(jī)置零。將計(jì)算機(jī)科學(xué)系全體學(xué)生的成績(jī)置零。 UPDATE SC SET Grade=0 WHERE CS= (SELECT Sdept FROM Student WHERE Student.Sno = SC.Sno);或:或:UPDATE SC SET Grade=0 WHERE SC.Sno IN (SELECT Sno FROM Student WHERE Sdept =CS );2022/4/30修改數(shù)據(jù)(續(xù))修改數(shù)據(jù)(續(xù))RDBMS在執(zhí)行修改語(yǔ)句時(shí)會(huì)檢查修改操作是否破在執(zhí)行修改語(yǔ)句時(shí)會(huì)檢查修改操作是否破壞表上已定義的壞表上已定義的完整性規(guī)則完整性規(guī)則n實(shí)體完整性
10、實(shí)體完整性n主碼不允許修改主碼不允許修改n用戶定義的完整性用戶定義的完整性 NOT NULL約束約束 UNIQUE約束約束 值域約束值域約束2022/4/303.4 3.4 數(shù)數(shù) 據(jù)據(jù) 更更 新新 3.4.1 插入數(shù)據(jù)插入數(shù)據(jù)3.4.2 修改數(shù)據(jù)修改數(shù)據(jù)3.4.3 刪除數(shù)據(jù)刪除數(shù)據(jù) 2022/4/303.4.3 3.4.3 刪除數(shù)據(jù)刪除數(shù)據(jù)v語(yǔ)句格式語(yǔ)句格式 DELETE FROM WHERE ;v功能功能n刪除指定表中滿足刪除指定表中滿足WHERE子句條件的元組子句條件的元組vWHERE子句子句n指定要?jiǎng)h除的元組指定要?jiǎng)h除的元組n缺省表示要?jiǎng)h除表中的全部元組,表的定義仍在字典中缺省表示要?jiǎng)h除
11、表中的全部元組,表的定義仍在字典中2022/4/30刪除數(shù)據(jù)(續(xù))刪除數(shù)據(jù)(續(xù))v三種刪除方式三種刪除方式:1. 刪除某一個(gè)元組的值刪除某一個(gè)元組的值2. 刪除多個(gè)元組的值刪除多個(gè)元組的值3. 帶子查詢的刪除語(yǔ)句帶子查詢的刪除語(yǔ)句2022/4/301. 刪除某一個(gè)元組的值刪除某一個(gè)元組的值例例8 刪除學(xué)號(hào)為刪除學(xué)號(hào)為0903128的學(xué)生記錄。的學(xué)生記錄。 DELETE FROM Student WHERE Sno=0903128 ;2022/4/302. 刪除多個(gè)元組的值刪除多個(gè)元組的值例例9 刪除所有的學(xué)生選課記錄。刪除所有的學(xué)生選課記錄。 DELETE FROM SC;2022/4/303
12、. 帶子查詢的刪除語(yǔ)句帶子查詢的刪除語(yǔ)句例例10 刪除計(jì)算機(jī)科學(xué)系所有學(xué)生的選課記錄。刪除計(jì)算機(jī)科學(xué)系所有學(xué)生的選課記錄。 DELETE FROM SC WHERE CS= (SELECT Sdept FROM Student WHERE Student.Sno=SC.Sno);2022/4/30刪除數(shù)據(jù)刪除數(shù)據(jù)(續(xù)續(xù))DBMS在執(zhí)行刪除語(yǔ)句時(shí)會(huì)檢查所刪除元組是否破在執(zhí)行刪除語(yǔ)句時(shí)會(huì)檢查所刪除元組是否破壞表上已定義的完整性規(guī)則,參照完整性,若破壞表上已定義的完整性規(guī)則,參照完整性,若破壞,則壞,則不允許刪除不允許刪除級(jí)聯(lián)刪除級(jí)聯(lián)刪除2022/4/30第三章第三章 關(guān)系數(shù)據(jù)庫(kù)標(biāo)準(zhǔn)語(yǔ)言關(guān)系數(shù)據(jù)庫(kù)標(biāo)
13、準(zhǔn)語(yǔ)言SQL2022/4/303.5 3.5 視視 圖圖視圖的特點(diǎn)視圖的特點(diǎn)v虛表虛表,是從一個(gè)或幾個(gè)基本表(或視圖)導(dǎo)出的,是從一個(gè)或幾個(gè)基本表(或視圖)導(dǎo)出的表表v數(shù)據(jù)庫(kù)中只存放數(shù)據(jù)庫(kù)中只存放視圖的定義視圖的定義,不存放視圖對(duì)應(yīng)的,不存放視圖對(duì)應(yīng)的數(shù)據(jù)數(shù)據(jù)v基表中的數(shù)據(jù)發(fā)生變化,從視圖中查詢出的數(shù)據(jù)基表中的數(shù)據(jù)發(fā)生變化,從視圖中查詢出的數(shù)據(jù)也隨之改變也隨之改變2022/4/303.5 3.5 視視 圖圖基于視圖的操作基于視圖的操作v 查詢查詢v 刪除刪除v 受限更新受限更新v 定義基于該視圖的新視圖定義基于該視圖的新視圖2022/4/303.5 3.5 視視 圖圖3.5.1 定義視圖定義視
14、圖3.5.2 查詢視圖查詢視圖3.5.3 更新視圖更新視圖3.5.4 視圖的作用視圖的作用2022/4/303.5.1 3.5.1 定義視圖定義視圖v建立視圖建立視圖v刪除視圖刪除視圖2022/4/30一、建立視圖一、建立視圖v語(yǔ)句格式語(yǔ)句格式 CREATE VIEW ( ,) AS WITH CHECK OPTION;v組成視圖的屬性列名:全部省略或全部指定組成視圖的屬性列名:全部省略或全部指定v子查詢不允許含有子查詢不允許含有ORDER BY子句和子句和DISTINCT短語(yǔ)短語(yǔ)2022/4/30組成視圖的屬性列名組成視圖的屬性列名屬性列名可全部省略屬性列名可全部省略或或全部指定全部指定M全
15、部省略全部省略: 由子查詢中由子查詢中SELECT目標(biāo)列中的諸字段組成目標(biāo)列中的諸字段組成M全部指定所有列名的情況全部指定所有列名的情況:(1) 某個(gè)目標(biāo)列是集函數(shù)或列表達(dá)式某個(gè)目標(biāo)列是集函數(shù)或列表達(dá)式(2) 多表連接時(shí)選出了幾個(gè)同名列作為視圖的字段多表連接時(shí)選出了幾個(gè)同名列作為視圖的字段(3) 需要在視圖中為某個(gè)列啟用新的更合適的名字需要在視圖中為某個(gè)列啟用新的更合適的名字2022/4/30 建立視圖(續(xù))建立視圖(續(xù))vRDBMS執(zhí)行執(zhí)行CREATE VIEW語(yǔ)句時(shí)語(yǔ)句時(shí)只是把只是把視圖視圖定義定義存入數(shù)據(jù)字典存入數(shù)據(jù)字典,并不執(zhí)行其中的,并不執(zhí)行其中的SELECT語(yǔ)語(yǔ)句。句。v在對(duì)視圖查
16、詢時(shí),按視圖的定義從基本表中將數(shù)在對(duì)視圖查詢時(shí),按視圖的定義從基本表中將數(shù)據(jù)查出。據(jù)查出。2022/4/30建立視圖(續(xù))建立視圖(續(xù)) 例例1 建立信息系學(xué)生的視圖。建立信息系學(xué)生的視圖。 CREATE VIEW IS_Student AS SELECT Sno,Sname,Sage FROM Student WHERE Sdept= IS;2022/4/30建立視圖(續(xù))建立視圖(續(xù))例例2建立信息系學(xué)生的視圖,并要求進(jìn)行修改和插建立信息系學(xué)生的視圖,并要求進(jìn)行修改和插入操作時(shí)仍需保證該視圖只有信息系的學(xué)生入操作時(shí)仍需保證該視圖只有信息系的學(xué)生 。 CREATE VIEW IS_Stude
17、nt AS SELECT Sno,Sname,Sage FROM Student WHERE Sdept= IS WITH CHECK OPTION;2022/4/30建立視圖(續(xù))建立視圖(續(xù))對(duì)對(duì)IS_Student視圖的更新操作:視圖的更新操作:v修改操作:自動(dòng)加上修改操作:自動(dòng)加上Sdept= IS的條件的條件v刪除操作:自動(dòng)加上刪除操作:自動(dòng)加上Sdept= IS的條件的條件v插入操作:自動(dòng)檢查插入操作:自動(dòng)檢查Sdept屬性值是否為屬性值是否為IS M如果不是,則拒絕該插入操作如果不是,則拒絕該插入操作M如果沒有提供如果沒有提供Sdept屬性值,則自動(dòng)定義屬性值,則自動(dòng)定義Sdep
18、t為為IS2022/4/30建立視圖(續(xù))建立視圖(續(xù))v基于多個(gè)基表的視圖基于多個(gè)基表的視圖例例3 建立信息系選修了建立信息系選修了1號(hào)課程的學(xué)生視圖。號(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;2022/4/30建立視圖(續(xù))建立視圖(續(xù))v基于視圖的視圖基于視圖的視圖例例4 建立信息系選修了建立信息系選修了1號(hào)課程且成績(jī)?cè)谔?hào)課程且成績(jī)?cè)?0
19、分以分以上的學(xué)生的視圖。上的學(xué)生的視圖。 CREATE VIEW IS_S2 AS SELECT Sno,Sname,Grade FROM IS_S1 WHERE Grade=90;2022/4/30建立視圖(續(xù))建立視圖(續(xù))v帶表達(dá)式的視圖帶表達(dá)式的視圖例例5 定義一個(gè)反映學(xué)生出生年份的視圖。定義一個(gè)反映學(xué)生出生年份的視圖。 CREATE VIEW BT_S(Sno,Sname,Sbirth) AS SELECT Sno,Sname,2012-Sage FROM Student;2022/4/30建立視圖(續(xù))建立視圖(續(xù))v分組視圖分組視圖例例6 將學(xué)生的學(xué)號(hào)及他的平均成績(jī)定義為一個(gè)視圖
20、將學(xué)生的學(xué)號(hào)及他的平均成績(jī)定義為一個(gè)視圖(假設(shè)(假設(shè)SC表中表中“成績(jī)成績(jī)”列列Grade為數(shù)字型)。為數(shù)字型)。 CREAT VIEW S_G(Sno,Gavg) AS SELECT Sno,AVG(Grade) FROM SC GROUP BY Sno;2022/4/30 建立視圖(續(xù))建立視圖(續(xù))v不指定屬性列不指定屬性列例例7將將Student表中所有女生記錄定義為一個(gè)視圖表中所有女生記錄定義為一個(gè)視圖CREATE VIEW F_Student(F_Sno, name, sex, age, dept)ASSELECT *FROM StudentWHERE Ssex=女女;缺點(diǎn):缺點(diǎn):
21、以以 SELECT * 方式創(chuàng)建的視圖方式創(chuàng)建的視圖可擴(kuò)充性差可擴(kuò)充性差,應(yīng)盡可能避免。,應(yīng)盡可能避免。原因:原因:修改基表修改基表Student的結(jié)構(gòu)后,的結(jié)構(gòu)后,Student表與表與F_Student視圖視圖的映象關(guān)系被破壞,導(dǎo)致該視圖不能正確工作。的映象關(guān)系被破壞,導(dǎo)致該視圖不能正確工作。2022/4/30 建立視圖(續(xù))建立視圖(續(xù))CREATE VIEW F_Student2 (stdnum, name, sex, age, dept)ASSELECT Sno,Sname,Ssex,Sage,SdeptFROM StudentWHERE Ssex=女女;為基表為基表Student增
22、加屬性列不會(huì)破壞增加屬性列不會(huì)破壞Student表與表與F_Student2視圖的映象關(guān)系。視圖的映象關(guān)系。2022/4/30二、刪除視圖二、刪除視圖v語(yǔ)句的格式:語(yǔ)句的格式:DROP VIEW ;M該語(yǔ)句從該語(yǔ)句從數(shù)據(jù)字典數(shù)據(jù)字典中刪除指定的中刪除指定的視圖定義視圖定義M如果該視圖上還導(dǎo)出了其他視圖,使用如果該視圖上還導(dǎo)出了其他視圖,使用CASCADE級(jí)聯(lián)刪除語(yǔ)句,把該視圖和由它級(jí)聯(lián)刪除語(yǔ)句,把該視圖和由它導(dǎo)出的所有視圖一起刪除導(dǎo)出的所有視圖一起刪除 M刪除刪除基表基表時(shí),由該基表導(dǎo)出的時(shí),由該基表導(dǎo)出的所有視圖定義所有視圖定義都必須顯式地使用都必須顯式地使用DROP VIEW語(yǔ)句刪除語(yǔ)句刪
23、除 2022/4/30刪除視圖刪除視圖(續(xù))續(xù))例例8 刪除視圖刪除視圖BT_S: DROP VIEW BT_S; 刪除視圖刪除視圖IS_S1:DROP VIEW IS_S1;級(jí)聯(lián)刪除:級(jí)聯(lián)刪除: DROP VIEW IS_S1 CASCADE; 2022/4/303.5 3.5 視視 圖圖3.5.1 定義視圖定義視圖3.5.2 查詢視圖查詢視圖3.5.3 更新視圖更新視圖3.5.4 視圖的作用視圖的作用2022/4/303.5.2 3.5.2 查詢視圖查詢視圖v 用戶角度:查詢視圖與查詢基本表相同用戶角度:查詢視圖與查詢基本表相同v RDBMS實(shí)現(xiàn)視圖查詢的方法實(shí)現(xiàn)視圖查詢的方法M通過視圖消
24、解法(通過視圖消解法(View Resolution)完成)完成進(jìn)行有效性檢查,檢查所查詢的視圖是否存在進(jìn)行有效性檢查,檢查所查詢的視圖是否存在若視圖存在,將其定義中的子查詢和用戶查詢結(jié)若視圖存在,將其定義中的子查詢和用戶查詢結(jié)合起來,轉(zhuǎn)換成合起來,轉(zhuǎn)換成等價(jià)的對(duì)基本表的查詢等價(jià)的對(duì)基本表的查詢執(zhí)行執(zhí)行修正修正后的查詢后的查詢2022/4/30查詢視圖(續(xù))查詢視圖(續(xù))例例9 在信息系學(xué)生的視圖中找出年齡小于在信息系學(xué)生的視圖中找出年齡小于20歲的學(xué)生。歲的學(xué)生。 SELECT Sno,Sage FROM IS_Student WHERE Sage20;IS_Student視圖的定義視圖的定
25、義 CREATE VIEW IS_Student AS SELECT Sno,Sname,Sage FROM Student WHERE Sdept= IS;2022/4/30查詢視圖(續(xù))查詢視圖(續(xù))視圖消解轉(zhuǎn)換后的查詢語(yǔ)句為:視圖消解轉(zhuǎn)換后的查詢語(yǔ)句為: 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 SCGROUP BY Sno;2022/4/30查詢轉(zhuǎn)換查詢轉(zhuǎn)換將
26、查詢語(yǔ)句與將查詢語(yǔ)句與S_G視圖的定義相結(jié)合:視圖的定義相結(jié)合:SELECT Sno,AVG(Grade)FROM SCWHERE AVG(Grade)=90GROUP BY Sno;因因WHERE子句不可用聚集函數(shù),這種轉(zhuǎn)換不合理,出子句不可用聚集函數(shù),這種轉(zhuǎn)換不合理,出現(xiàn)語(yǔ)法錯(cuò)誤現(xiàn)語(yǔ)法錯(cuò)誤正確:正確:SELECT Sno,AVG(Grade)FROM SCGROUP BY SnoHAVING AVG(Grade)=90;2022/4/303.5 3.5 視視 圖圖3.5.1 定義視圖定義視圖3.5.2 查詢視圖查詢視圖3.5.3 更新視圖更新視圖3.5.4 視圖的作用視圖的作用2022/4
27、/303.5.3 3.5.3 更新視圖更新視圖v用戶角度:更新視圖與更新基本表相同用戶角度:更新視圖與更新基本表相同vDBMS實(shí)現(xiàn)視圖更新的方法實(shí)現(xiàn)視圖更新的方法視圖消解法,轉(zhuǎn)換為對(duì)視圖消解法,轉(zhuǎn)換為對(duì)基本表基本表的操作的操作v指定指定WITH CHECK OPTION子句后子句后 DBMS在更新視圖時(shí)會(huì)進(jìn)行檢查,防止用戶通過在更新視圖時(shí)會(huì)進(jìn)行檢查,防止用戶通過視圖對(duì)視圖對(duì)不屬于視圖范圍內(nèi)不屬于視圖范圍內(nèi)的基本表數(shù)據(jù)進(jìn)行更新的基本表數(shù)據(jù)進(jìn)行更新2022/4/30更新視圖(續(xù))更新視圖(續(xù))例例12 將信息系學(xué)生將信息系學(xué)生視圖視圖IS_Student中學(xué)號(hào)中學(xué)號(hào)0903122的學(xué)生姓名改為的學(xué)
28、生姓名改為“劉辰劉辰”。UPDATE IS_StudentSET Sname= 劉辰劉辰WHERE Sno= 0903122 ;轉(zhuǎn)換后的語(yǔ)句:轉(zhuǎn)換后的語(yǔ)句:UPDATE StudentSET Sname= 劉辰劉辰WHERE Sno= 0903122 AND Sdept= IS;2022/4/30更新視圖(續(xù))更新視圖(續(xù))例例13 向信息系學(xué)生向信息系學(xué)生視圖視圖IS_Student中插入一個(gè)中插入一個(gè)新的學(xué)生記錄:新的學(xué)生記錄:95029,趙新,趙新,20歲歲INSERTINTO IS_StudentVALUES(95029,趙新趙新,20);轉(zhuǎn)換為對(duì)基本表的更新:轉(zhuǎn)換為對(duì)基本表的更新:I
29、NSERTINTO Student(Sno,Sname,Sage,Sdept)VALUES(95029 ,趙新趙新,20,IS );2022/4/30更新視圖(續(xù))更新視圖(續(xù))例例14刪除信息系學(xué)生視圖刪除信息系學(xué)生視圖IS_Student中學(xué)號(hào)為中學(xué)號(hào)為0903129的記錄的記錄 DELETEFROM IS_StudentWHERE Sno= 0903129 ;轉(zhuǎn)換為對(duì)基本表的更新:轉(zhuǎn)換為對(duì)基本表的更新:DELETEFROM StudentWHERE Sno= 0903129 AND Sdept= IS;2022/4/30注:注:IS_Student視圖的定義視圖的定義CREATE VIE
30、W IS_StudentAS SELECT Sno,Sname,SageFROM StudentWHERE Sdept= ISWITH CHECK OPTION;更新視圖(續(xù))更新視圖(續(xù))v 更新視圖的限制:更新視圖的限制:一些視圖是不可更新的一些視圖是不可更新的,因?yàn)閷?duì)這些視,因?yàn)閷?duì)這些視圖的更新不能唯一地有意義地轉(zhuǎn)換成對(duì)相應(yīng)基本表的更新圖的更新不能唯一地有意義地轉(zhuǎn)換成對(duì)相應(yīng)基本表的更新例:視圖例:視圖S_G為不可更新視圖。為不可更新視圖。UPDATE S_GSET Gavg=90WHERE Sno= 0903121;這個(gè)對(duì)視圖的更新無(wú)法轉(zhuǎn)換成對(duì)基本表這個(gè)對(duì)視圖的更新無(wú)法轉(zhuǎn)換成對(duì)基本表SC
31、的更新的更新2022/4/30注:視圖注:視圖S_G的定義的定義CREATE VIEW S_G (Sno,Gavg)AS SELECT Sno,AVG(Grade)FROM SCGROUP BY Sno;更新視圖(續(xù))更新視圖(續(xù))v允許對(duì)允許對(duì)行列子集視圖行列子集視圖進(jìn)行更新進(jìn)行更新M從單個(gè)基本表導(dǎo)出,只是去掉了基本表的某些從單個(gè)基本表導(dǎo)出,只是去掉了基本表的某些行和列,且保留了主碼的視圖。行和列,且保留了主碼的視圖。v對(duì)其它類型視圖的更新不同數(shù)據(jù)庫(kù)系統(tǒng)有對(duì)其它類型視圖的更新不同數(shù)據(jù)庫(kù)系統(tǒng)有不同限制不同限制2022/4/303.5 3.5 視視 圖圖3.5.1 定義視圖定義視圖3.5.2 查
32、詢視圖查詢視圖3.5.3 更新視圖更新視圖3.5.4 視圖的作用視圖的作用2022/4/301. 視圖能夠視圖能夠簡(jiǎn)化簡(jiǎn)化用戶的操作用戶的操作 當(dāng)視圖中數(shù)據(jù)不是直接來自基本表時(shí),定義視圖能夠簡(jiǎn)化當(dāng)視圖中數(shù)據(jù)不是直接來自基本表時(shí),定義視圖能夠簡(jiǎn)化用戶的操作用戶的操作v 基于多張表連接形成的視圖基于多張表連接形成的視圖v 基于復(fù)雜嵌套查詢的視圖基于復(fù)雜嵌套查詢的視圖2022/4/303.5.4 3.5.4 視圖的作用視圖的作用2. 視圖使用戶能以視圖使用戶能以多種角度多種角度看待同一數(shù)據(jù)看待同一數(shù)據(jù) 視圖機(jī)制能使視圖機(jī)制能使不同用戶不同用戶以以不同方式不同方式看待同一數(shù)據(jù),適應(yīng)看待同一數(shù)據(jù),適應(yīng)數(shù)
33、據(jù)庫(kù)共享的需要數(shù)據(jù)庫(kù)共享的需要3.視圖對(duì)重構(gòu)數(shù)據(jù)庫(kù)提供了一定程度的邏輯獨(dú)立性視圖對(duì)重構(gòu)數(shù)據(jù)庫(kù)提供了一定程度的邏輯獨(dú)立性例:假設(shè)數(shù)據(jù)庫(kù)邏輯結(jié)構(gòu)發(fā)生改變例:假設(shè)數(shù)據(jù)庫(kù)邏輯結(jié)構(gòu)發(fā)生改變學(xué)生關(guān)系學(xué)生關(guān)系Student(Sno,Sname,Ssex,Sage,Sdept) “垂直垂直”地地分成兩個(gè)基本表分成兩個(gè)基本表: SX(Sno,Sname,Sage) SY(Sno,Ssex,Sdept)2022/4/303.視圖對(duì)重構(gòu)數(shù)據(jù)庫(kù)提供了一定程度的邏輯獨(dú)立性視圖對(duì)重構(gòu)數(shù)據(jù)庫(kù)提供了一定程度的邏輯獨(dú)立性(續(xù)續(xù))通過建立一個(gè)視圖通過建立一個(gè)視圖Student:CREATE VIEW Student(Sno,Sn
34、ame,Ssex,Sage,Sdept)AS SELECT SX.Sno,SX.Sname,SY.Ssex,SX.Sage,SY.SdeptFROM SX,SYWHERE SX.Sno=SY.Sno;使用戶的外模式保持不變,從而對(duì)原使用戶的外模式保持不變,從而對(duì)原Student表的表的查詢程序不查詢程序不必修改。必修改。3.視圖對(duì)重構(gòu)數(shù)據(jù)庫(kù)提供了一定程度的邏輯獨(dú)立性視圖對(duì)重構(gòu)數(shù)據(jù)庫(kù)提供了一定程度的邏輯獨(dú)立性(續(xù)續(xù))v 視圖視圖只能在一定程度上只能在一定程度上提供數(shù)據(jù)的提供數(shù)據(jù)的邏輯獨(dú)立性邏輯獨(dú)立性M由于對(duì)視圖的更新是有條件的,因此應(yīng)用程序中修改數(shù)據(jù)的語(yǔ)句由于對(duì)視圖的更新是有條件的,因此應(yīng)用程序
35、中修改數(shù)據(jù)的語(yǔ)句可能仍會(huì)因可能仍會(huì)因基本表結(jié)構(gòu)的改變基本表結(jié)構(gòu)的改變而改變。而改變。2022/4/304. 視圖能夠?qū)C(jī)密數(shù)據(jù)提供安全保護(hù)視圖能夠?qū)C(jī)密數(shù)據(jù)提供安全保護(hù) 對(duì)不同用戶定義不同視圖,使每個(gè)用戶只能看到他有權(quán)看到對(duì)不同用戶定義不同視圖,使每個(gè)用戶只能看到他有權(quán)看到的數(shù)據(jù)的數(shù)據(jù)第三章第三章 關(guān)系數(shù)據(jù)庫(kù)標(biāo)準(zhǔn)語(yǔ)言關(guān)系數(shù)據(jù)庫(kù)標(biāo)準(zhǔn)語(yǔ)言SQL2022/4/303.6 3.6 數(shù)據(jù)控制數(shù)據(jù)控制v概述概述v3.6.1 授權(quán)授權(quán)v3.6.2 收回權(quán)限收回權(quán)限v小結(jié)小結(jié)2022/4/30概述概述數(shù)據(jù)庫(kù)系統(tǒng)的特點(diǎn)之一,由數(shù)據(jù)庫(kù)系統(tǒng)的特點(diǎn)之一,由DBMSDBMS提供統(tǒng)一的提供統(tǒng)一的數(shù)據(jù)控制功能,包括:數(shù)據(jù)控
36、制功能,包括:M安全性控制安全性控制M完整性控制完整性控制M并發(fā)控制并發(fā)控制M數(shù)據(jù)庫(kù)的恢復(fù)數(shù)據(jù)庫(kù)的恢復(fù)2022/4/30 安全性安全性v安全性安全性:保護(hù)數(shù)據(jù)庫(kù),防止不合法的使用所造成的數(shù):保護(hù)數(shù)據(jù)庫(kù),防止不合法的使用所造成的數(shù)據(jù)泄露和破壞。據(jù)泄露和破壞。v保證數(shù)據(jù)安全性的主要措施保證數(shù)據(jù)安全性的主要措施M存取控制:控制用戶只能存取他有權(quán)存取的存取控制:控制用戶只能存取他有權(quán)存取的數(shù)據(jù)數(shù)據(jù)M規(guī)定不同用戶對(duì)于規(guī)定不同用戶對(duì)于不同數(shù)據(jù)對(duì)象不同數(shù)據(jù)對(duì)象所允許執(zhí)行的所允許執(zhí)行的操作操作2022/4/30DBMS實(shí)現(xiàn)數(shù)據(jù)安全性保護(hù)的過程實(shí)現(xiàn)數(shù)據(jù)安全性保護(hù)的過程1. 用戶或用戶或DBA把授權(quán)決定告知系統(tǒng)把
37、授權(quán)決定告知系統(tǒng)2. GRANT和和REVOKE3. DBMS把授權(quán)的結(jié)果存入數(shù)據(jù)字典把授權(quán)的結(jié)果存入數(shù)據(jù)字典4. 當(dāng)用戶提出操作請(qǐng)求時(shí),當(dāng)用戶提出操作請(qǐng)求時(shí),DBMS根據(jù)根據(jù)授權(quán)定義授權(quán)定義進(jìn)行檢查,以決定是否執(zhí)行操作請(qǐng)求進(jìn)行檢查,以決定是否執(zhí)行操作請(qǐng)求2022/4/303.6.1 3.6.1 授授 權(quán)權(quán)vGRANT語(yǔ)句的一般格式:語(yǔ)句的一般格式:GRANT ,. ON TO ,.WITH GRANT OPTION;vGRANT功能:將功能:將指定操作對(duì)象指定操作對(duì)象的的指定操作權(quán)限指定操作權(quán)限授授予予指定的用戶指定的用戶。2022/4/30(1) 操作權(quán)限操作權(quán)限 對(duì)象 對(duì)象類型 操 作
38、權(quán) 限 屬性列 TABLE SELECT,INSERT,UPDATE, DELETE,ALL RIVIEGES 視圖 TABLE SELECT,INSERT,UPDATE, DELETE,ALL RIVIEGES 基本表 TABLE SELECT,INSERT,UPDATE, DELETE, ALTER, INDEX, ALL PRIVIEGES 數(shù)據(jù)庫(kù) DATABASE CREATETAB 2022/4/30(2) 用戶的權(quán)限用戶的權(quán)限v建表(建表(CREATETAB)的權(quán)限的權(quán)限:屬于屬于DBAvDBA授予授予-普通用戶普通用戶v基本表或視圖的基本表或視圖的屬主屬主擁有對(duì)該表或視圖的一切擁
39、有對(duì)該表或視圖的一切操作權(quán)限操作權(quán)限v接受權(quán)限的用戶接受權(quán)限的用戶:M一個(gè)或多個(gè)具體用戶一個(gè)或多個(gè)具體用戶MPUBLIC(全體用戶)(全體用戶)2022/4/30(4) WITH GRANT OPTION子句子句v指定了指定了WITH GRANT OPTION子句子句: 獲得某種權(quán)限的用戶還可以把這種權(quán)限獲得某種權(quán)限的用戶還可以把這種權(quán)限再授予再授予別別的用戶。的用戶。v沒有指定沒有指定WITH GRANT OPTION子句子句: 獲得某種權(quán)限的用戶只能使用該權(quán)限,獲得某種權(quán)限的用戶只能使用該權(quán)限,不能傳播不能傳播該權(quán)限該權(quán)限v不允許循環(huán)授權(quán)不允許循環(huán)授權(quán)2022/4/30例題例題 例例1 把
40、查詢把查詢Student表的權(quán)限授給用戶表的權(quán)限授給用戶U1 GRANT SELECT ON TABLE Student TO U1;2022/4/30例題(續(xù))例題(續(xù))例例2 把對(duì)把對(duì)Student表和表和Course表的全部權(quán)表的全部權(quán)限授予用戶限授予用戶U2和和U3 GRANT ALL PRIVILIGES ON TABLE Student, Course TO U2, U3;2022/4/30例題(續(xù))例題(續(xù))例例3 把對(duì)表把對(duì)表SC的查詢權(quán)限授予所有用戶的查詢權(quán)限授予所有用戶 GRANT SELECT ON TABLE SC TO PUBLIC;2022/4/30例題(續(xù))例題(續(xù))例例4 把查詢把查詢Student表和修改學(xué)生學(xué)號(hào)的權(quán)表和修改學(xué)生學(xué)號(hào)的權(quán)限授給用戶限授給用戶U4 GRANT UPDATE(Sno), SELECT ON TABLE Student TO U4;2022/4/30例題(續(xù))例題(續(xù)) 例例5 把對(duì)表把對(duì)表SC的的INSERT權(quán)限授予權(quán)限授予U5用用戶,并戶,并允許他
溫馨提示
- 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度電商合同電子數(shù)據(jù)證據(jù)收集與保全操作規(guī)范3篇
- 2025-2031年中國(guó)網(wǎng)絡(luò)購(gòu)物行業(yè)市場(chǎng)深度研究及投資策略研究報(bào)告
- 2025年度智慧城市安防系統(tǒng)承包清工勞務(wù)合同4篇
- 2025年中國(guó)醫(yī)用空氣凈化器行業(yè)發(fā)展監(jiān)測(cè)及投資規(guī)劃建議報(bào)告
- 2025年度教育資源共享平臺(tái)建設(shè)與運(yùn)營(yíng)合同范本4篇
- 2025年度個(gè)人二手房交易合同模板物業(yè)費(fèi)繳納優(yōu)化版4篇
- 2025年貴州仁懷市供銷社股金公司招聘筆試參考題庫(kù)含答案解析
- 2025年江西有為生物技術(shù)有限公司招聘筆試參考題庫(kù)含答案解析
- 2025年四川宇客旅游開發(fā)有限公司招聘筆試參考題庫(kù)含答案解析
- 2025年江西贛州市會(huì)昌縣發(fā)展集團(tuán)招聘筆試參考題庫(kù)含答案解析
- 《請(qǐng)柬及邀請(qǐng)函》課件
- 中小銀行上云趨勢(shì)研究分析報(bào)告
- 機(jī)電安裝工程安全培訓(xùn)
- 遼寧省普通高中2024-2025學(xué)年高一上學(xué)期12月聯(lián)合考試語(yǔ)文試題(含答案)
- 青海原子城的課程設(shè)計(jì)
- 常州大學(xué)《新媒體文案創(chuàng)作與傳播》2023-2024學(xué)年第一學(xué)期期末試卷
- 麻醉蘇醒期躁動(dòng)患者護(hù)理
- 英語(yǔ)雅思8000詞匯表
- 小學(xué)好詞好句好段摘抄(8篇)
- JT-T-1059.1-2016交通一卡通移動(dòng)支付技術(shù)規(guī)范第1部分:總則
- 《茶藝文化初探》(教學(xué)設(shè)計(jì))-六年級(jí)勞動(dòng)北師大版
評(píng)論
0/150
提交評(píng)論