關(guān)系數(shù)據(jù)庫(kù)語(yǔ)言_第1頁(yè)
關(guān)系數(shù)據(jù)庫(kù)語(yǔ)言_第2頁(yè)
關(guān)系數(shù)據(jù)庫(kù)語(yǔ)言_第3頁(yè)
關(guān)系數(shù)據(jù)庫(kù)語(yǔ)言_第4頁(yè)
關(guān)系數(shù)據(jù)庫(kù)語(yǔ)言_第5頁(yè)
已閱讀5頁(yè),還剩46頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

數(shù)據(jù)庫(kù)技術(shù)與應(yīng)用第4章關(guān)系數(shù)據(jù)庫(kù)標(biāo)準(zhǔn)語(yǔ)言SQL(3)4.4數(shù)據(jù)操縱4.4.1插入數(shù)據(jù)4.4.2修改數(shù)據(jù)4.4.3刪除數(shù)據(jù)4.4.1插入數(shù)據(jù)兩種插入數(shù)據(jù)方式插入單個(gè)元組插入子查詢結(jié)果1.插入單個(gè)元組語(yǔ)句格式INSERTINTO<表名>[(<屬性列1>[,<屬性列2>…)]VALUES(<常量1>[,<常量2>]…)功能將新元組插入指定表中。插入單個(gè)元組(續(xù))[例4.47]將一個(gè)新學(xué)生記錄(學(xué)號(hào):08006;姓名:王凡;性別:女;所在系:CS;年齡:21歲)插入到Student表中。

INSERTINTOStudentVALUES(‘08006’,‘王凡’,‘女’,21,’CS’);插入單個(gè)元組(續(xù))[例4.48]插入一條選課記錄(‘08006‘,‘5')。

INSERTINTOSC(Sno,Cno)VALUES('08006','5');新插入的記錄在Grade列上取空值插入單個(gè)元組(續(xù))

INTO子句指定要插入數(shù)據(jù)的表名及屬性列屬性列的順序可與表定義中的順序不一致沒有指定屬性列:表示要插入的是一條完整的元組,且屬性列屬性與表定義中的順序一致指定部分屬性列:插入的元組在其余屬性列上取空值

VALUES子句

提供的值必須與INTO子句匹配值的個(gè)數(shù)值的類型2.插入子查詢結(jié)果(多行記錄)語(yǔ)句格式

INSERTINTO<表名>[(<屬性列1>[,<屬性列2>…)]<子查詢>功能將子查詢結(jié)果插入指定表中插入子查詢結(jié)果(續(xù))[例4.49]建立一張新借書表(學(xué)號(hào),姓名,專業(yè),可借書量),把學(xué)生表相關(guān)信息插入。第一步:建表

CREATETABLEjsbiao(SnoCHAR(5),SnameCHAR(20),SdeptChar(20),BnumInt);

插入子查詢結(jié)果(續(xù))第二步:插入數(shù)據(jù)

INSERTINTOjsbiao(Sno,Sname,Sdept)SELECTSno,Sname,SdeptFROMStudent插入子查詢結(jié)果(續(xù))INTO子句(與插入單條元組類似)指定要插入數(shù)據(jù)的表名及屬性列屬性列的順序可與表定義中的順序不一致沒有指定屬性列:表示要插入的是一條完整的元組指定部分屬性列:插入的元組在其余屬性列上取空值子查詢SELECT子句目標(biāo)列必須與INTO子句匹配值的個(gè)數(shù)值的類型插入子查詢結(jié)果(續(xù))DBMS在執(zhí)行插入語(yǔ)句時(shí)會(huì)檢查所插元組是否破壞表上已定義的完整性規(guī)則實(shí)體完整性參照完整性用戶定義的完整性對(duì)于有NOTNULL約束的屬性列是否提供了非空值對(duì)于有UNIQUE約束的屬性列是否提供了非重復(fù)值對(duì)于有值域約束的屬性列所提供的屬性值是否在值域范圍內(nèi)4.4數(shù)據(jù)操縱4.4.1插入數(shù)據(jù)4.4.2修改數(shù)據(jù)4.4.3刪除數(shù)據(jù)4.4.2修改數(shù)據(jù)語(yǔ)句格式

UPDATE<表名>SET<列名>=<表達(dá)式>[,<列名>=<表達(dá)式>]…[WHERE<條件>];功能修改指定表中滿足WHERE子句條件的元組修改數(shù)據(jù)(續(xù))三種修改方式修改某一個(gè)元組的值修改多個(gè)元組的值帶子查詢的修改語(yǔ)句1.修改某一個(gè)元組的值[例4.50]把王敏轉(zhuǎn)到信息。

UPDATEStudentSETDept=‘信息’

WHERESname=‘王敏'2.修改多個(gè)元組的值[例4.51]將所有學(xué)生的年齡增加1歲。

UPDATEStudentSETSage=Sage+1;修改多個(gè)元組的值(續(xù))[例]將信息系所有學(xué)生的年齡增加1歲。

UPDATEStudentSETSage=Sage+1WHERESdept=‘信息';3.帶子查詢的修改語(yǔ)句[例4.52]將jsbiao表借書量置為10本。

UPDATEjsbiaoSETBnum=10

修改數(shù)據(jù)(續(xù))SET子句指定修改方式要修改的列修改后取值WHERE子句指定要修改的元組缺省表示要修改表中的所有元組修改數(shù)據(jù)(續(xù))

[例4.53]把計(jì)算機(jī)系學(xué)生的借書量增加5本。

UPDATEjsbiaoSETBnum=Bnum+5 wheredept=‘計(jì)算機(jī)’修改數(shù)據(jù)(續(xù))

用子查詢提供要修改的值

[例4.54]把所有學(xué)生的借書量定位平均值。

UPDATEjsbiaoSETBnum=(selectavg(Bnum)fromjsbiao)

4.4.3數(shù)據(jù)更新4.4.1插入數(shù)據(jù)4.4.2修改數(shù)據(jù)4.4.3刪除數(shù)據(jù)

4.4.3刪除數(shù)據(jù)

DELETEFROM<表名>[WHERE<條件>];功能刪除指定表中滿足WHERE子句條件的元組WHERE子句指定要?jiǎng)h除的元組缺省表示要修改表中的所有元組刪除數(shù)據(jù)(續(xù))三種刪除方式刪除某一個(gè)元組的值刪除多個(gè)元組的值帶子查詢的刪除語(yǔ)句1.刪除某一個(gè)元組的值[例4.55]刪除王凡的學(xué)生記錄。

DELETEFROMStudentWHERESname=‘王凡'2.刪除多個(gè)元組的值[例4.56]刪除所有借書信息。

DELETEFROMjsbiao3.帶子查詢的刪除語(yǔ)句[補(bǔ)充例]刪除計(jì)算機(jī)科學(xué)系所有學(xué)生的選課記錄。

DELETEFROMSCWHERE‘計(jì)算機(jī)'=(SELETESdeptFROMStudentWHEREStudent.Sno=SC.Sno);刪除數(shù)據(jù)(續(xù))DBMS在執(zhí)行刪除語(yǔ)句時(shí)會(huì)檢查所刪元組是否破壞表上已定義的完整性規(guī)則參照完整性不允許刪除級(jí)聯(lián)刪除更新數(shù)據(jù)與數(shù)據(jù)一致性DBMS在執(zhí)行插入、刪除、更新語(yǔ)句時(shí)必須保證數(shù)據(jù)庫(kù)一致性必須有事務(wù)的概念和原子性完整性檢查和保證4.5數(shù)據(jù)控制4.5.1權(quán)限與角色4.5.2授權(quán)收回權(quán)限小結(jié)4.5.1權(quán)限與角色1.權(quán)限在SQL系統(tǒng)中,有兩個(gè)安全機(jī)制:一種是上一節(jié)介紹的視圖機(jī)制,當(dāng)用戶通過視圖訪問數(shù)據(jù)庫(kù)時(shí),不能訪問此視圖外的數(shù)據(jù),它提供了一定的安全性。主要的安全機(jī)制是權(quán)限機(jī)制。4.5.1權(quán)限與角色權(quán)限機(jī)制的基本思想是給用戶授予不同類型的權(quán)限,在必要時(shí),可以收回授權(quán)。使用戶能夠進(jìn)行的數(shù)據(jù)庫(kù)操作以及所操作的數(shù)據(jù)限定在指定的范圍內(nèi),禁止用戶超越權(quán)限對(duì)數(shù)據(jù)庫(kù)進(jìn)行非法的操作,從而保證數(shù)據(jù)庫(kù)的安全性。在SQLSERVER中,權(quán)限可分為系統(tǒng)權(quán)限和對(duì)象權(quán)限。4.5.1權(quán)限與角色系統(tǒng)權(quán)限由數(shù)據(jù)庫(kù)管理員授予其他用戶,是指數(shù)據(jù)庫(kù)用戶能夠?qū)?shù)據(jù)庫(kù)系統(tǒng)進(jìn)行某種特定的操作的權(quán)力。系統(tǒng)權(quán)限由數(shù)據(jù)庫(kù)管理員授予其他用戶,是指數(shù)據(jù)庫(kù)用戶能夠?qū)?shù)據(jù)庫(kù)系統(tǒng)進(jìn)行某種特定的操作的權(quán)力如:創(chuàng)建一個(gè)基本表(CREATETABLE)對(duì)象權(quán)限由創(chuàng)建基本表、視圖等數(shù)據(jù)庫(kù)對(duì)象的用戶授予其他用戶,是指數(shù)據(jù)庫(kù)用戶在指定的數(shù)據(jù)庫(kù)對(duì)象上進(jìn)行某種特定的操作的權(quán)力。如:查詢(SELECT)、插入(INSERT)、修改(UPDATE)和刪除(DELETE)等操作。4.5.1權(quán)限與角色2.角色角色是多種權(quán)限的集合,可以把角色授予用戶或其他角色。當(dāng)要為某一用戶同時(shí)授予或收回多項(xiàng)權(quán)限時(shí),則可以把這些權(quán)限定義為一個(gè)角色,對(duì)此角色進(jìn)行操作。這樣就避免了許多重復(fù)性的工作,簡(jiǎn)化了管理數(shù)據(jù)庫(kù)用戶權(quán)限的工作。DBMS實(shí)現(xiàn)數(shù)據(jù)安全性保護(hù)的過程用戶或DBA把授權(quán)決定告知系統(tǒng)SQL的GRANT和REVOKEDBMS把授權(quán)的結(jié)果存入數(shù)據(jù)字典當(dāng)用戶提出操作請(qǐng)求時(shí),DBMS根據(jù)授權(quán)定義進(jìn)行檢查,以決定是否執(zhí)行操作請(qǐng)求安全性(續(xù))誰(shuí)定義?

DBA和表的建立者(即表的屬主)如何定義?

SQL語(yǔ)句:

GRANTREVOKE1授權(quán)GRANT語(yǔ)句的一般格式:

GRANT<權(quán)限>[,<權(quán)限>]...[ON<對(duì)象類型><對(duì)象名>]TO<用戶>[,<用戶>]...[WITHGRANTOPTION];誰(shuí)定義?DBA和表的建立者(即表的屬主)功能:將對(duì)指定操作對(duì)象的指定操作權(quán)限授予指定的用戶。(1)操作權(quán)限(2)用戶的權(quán)限建表(CREATETAB)的權(quán)限:屬于DBADBA授予-->普通用戶基本表或視圖的屬主擁有對(duì)該表或視圖的一切操作權(quán)限接受權(quán)限的用戶:

一個(gè)或多個(gè)具體用戶

PUBLIC(全體用戶)(4)WITHGRANTOPTION子句指定了WITHGRANTOPTION子句:

獲得某種權(quán)限的用戶還可以把這種權(quán)限再授予別的用戶。沒有指定WITHGRANTOPTION子句:

獲得某種權(quán)限的用戶只能使用該權(quán)限,不能傳播該權(quán)限例題例4.57為用戶ZHANGSAN授予CREATETABLE的系統(tǒng)權(quán)限。

GRANTCREATETABLETOZHANGSANSQL收回權(quán)限的功能REVOKE語(yǔ)句的一般格式為:

REVOKE<權(quán)限>[,<權(quán)限>]...[ON<對(duì)象類型><對(duì)象名>]FROM<用戶>[,<用戶>]...;功能:系統(tǒng)管理員從指定用戶那里收回指定權(quán)限例題(續(xù))例4.58收回用戶ZHANGSAN所擁有的CREATETABLE的系統(tǒng)權(quán)限。

REVOKECREATETABLEFROMZHANGSAN4.5.3對(duì)象權(quán)限與角色的授予與收回

1.對(duì)象權(quán)限與角色的授予數(shù)據(jù)庫(kù)管理員擁有系統(tǒng)權(quán)限,而作為數(shù)據(jù)庫(kù)的普通用戶,只對(duì)自己創(chuàng)建的基本表、視圖等數(shù)據(jù)庫(kù)對(duì)象擁有對(duì)象權(quán)限。如果要共享其他的數(shù)據(jù)庫(kù)對(duì)象,則必須授予他一定的對(duì)象權(quán)限。4.5.3對(duì)象權(quán)限與角色的授予與收回

同系統(tǒng)權(quán)限的授予類似,SQL語(yǔ)言使用GRANT語(yǔ)句為用戶授予對(duì)象權(quán)限,其語(yǔ)法格式為:

GRANTALL|<對(duì)象權(quán)限>[(列名[,列名]…)][,<對(duì)象權(quán)限>]…ON<對(duì)象名>TO<用戶名>|<角色>|PUBLIC[WITHGRANTOPTION]4.5.3對(duì)象權(quán)限與角色的授予與收回

其語(yǔ)義為:將指定的操作對(duì)象的對(duì)象權(quán)限授予指定的用戶或角色。例4.59授予用戶張三,向student表插數(shù)據(jù)權(quán)限

GRANTINSERTONStudentTOzhangsan

4.5.3對(duì)象權(quán)限與角色的授予與收回

2.對(duì)象權(quán)限與角色的收回所有授予出去的權(quán)力在必要時(shí)都可以由數(shù)據(jù)庫(kù)管理員和授權(quán)者收回,收回對(duì)象權(quán)限仍然使用REVOKE語(yǔ)句其語(yǔ)法格式為:

REVOKE<對(duì)象權(quán)限>|<角色>FROM<用戶名>|<角色>|PUBLIC[,<用戶名>|<角色>]…4.5.3對(duì)象權(quán)限與角色的授予與收回

例4.60

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論