




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
3.4數(shù)據(jù)查詢3.4.1SQL語言概述1.SQL語言的產(chǎn)生及發(fā)展由Boyce等人在1974年提出結(jié)構(gòu)化查詢語言(structuredquerylanguage,SQL)經(jīng)國(guó)際標(biāo)準(zhǔn)化組織(InternationalOrganizationforStandardization,ISO)指定為國(guó)際標(biāo)準(zhǔn)2.SQL語言的組成及特點(diǎn)(1)SQL語言的組成數(shù)據(jù)定義語言(datadefinitionlanguage,DDL),用于定義數(shù)據(jù)庫的邏輯結(jié)構(gòu),包括基本表、索引和視圖數(shù)據(jù)操縱語言(datamanipulationlanguage,DML),用于數(shù)據(jù)查詢和數(shù)據(jù)更新(插入、刪除和修改)數(shù)據(jù)控制語言(datacontrollanguage,DCL),用于對(duì)基本表和視圖的授權(quán)、事務(wù)控制語句等(2)SQL語言的特點(diǎn)集數(shù)據(jù)的定義、操縱和控制功能于一體;面向集合的操作方式;高度非過程化,路徑選擇及處理過程由系統(tǒng)自動(dòng)完成;既可獨(dú)立使用,又可嵌入到高級(jí)語言中使用;只含九條核心語句,結(jié)構(gòu)化很強(qiáng);類似自然語言,易學(xué)易用。2.SQL語言的組成及特點(diǎn)3.SQL對(duì)關(guān)系模型的支持SQL視圖1視圖2基表1基表2基表3基表4存儲(chǔ)文件1存儲(chǔ)文件2外模式內(nèi)模式模式注意:不同的RDBMS對(duì)于SQL的支持在具體方式上有所不同3.4.2SQL數(shù)據(jù)定義SQL的數(shù)據(jù)定義功能主要包括定義基表和定義索引。1.定義基表定義基表就是定義一個(gè)表(關(guān)系)的數(shù)據(jù)結(jié)構(gòu)和完整性約束,包括指定表的名稱、表的屬性名稱、屬性的數(shù)據(jù)類型以及完整性約束條件。定義基表使用SQL中的CREATETABLE語句,其一般形式如下:CREATETABLE<表名>(
<列名1><數(shù)據(jù)類型>[<列級(jí)完整性約束條件>][,<列名2><數(shù)據(jù)類型>[<列級(jí)完整性約束條件>]]……[,<列名n><數(shù)據(jù)類型>[<列級(jí)完整性約束條件>]][,<表級(jí)完整性約束條件>]);常用SQL數(shù)據(jù)類型完整性約束條件例3-13:創(chuàng)建“學(xué)生管理”數(shù)據(jù)庫,包含STU、CLASS和SGRADE表,其中:STU表由學(xué)號(hào)、姓名、性別、系別、生日5個(gè)屬性組成,主鍵為學(xué)號(hào),姓名不能為空;CLASS表由課程編號(hào)、課程名稱、先修課程編號(hào)、學(xué)時(shí)、學(xué)分5個(gè)屬性組成,主鍵為課程編號(hào),課程名稱唯一;SGRADE表由學(xué)號(hào)、課程編號(hào)和成績(jī)3個(gè)屬性組成,主鍵為(學(xué)號(hào),課程編號(hào))。①創(chuàng)建STU表的SQL語句
CREATETABLESTU(
學(xué)號(hào)TEXT(7)PRIMARYKEY,
姓名TEXT(16)NOTNULL,
性別TEXT(2),
系別TEXT(10),
生日DATE);②創(chuàng)建CLASS表的SQL語句CREATETABLECLASS(
課程編號(hào)TEXT(3)PRIMARYKEY,
課程名稱TEXT(20)UNIQUE,
先修課程編號(hào)TEXT(3),
學(xué)時(shí)SMALLINT,
學(xué)分SMALLINT);③創(chuàng)建SGRADE表的SQL語句CREATETABLESGRADE(
學(xué)號(hào)TEXT(7)REFERENCESSTU(學(xué)號(hào)),
課程編號(hào)TEXT(3)REFERENCESCLASS(課程編號(hào)),
成績(jī)SMALLINT,PRIMARYKEY(學(xué)號(hào),課程編號(hào)));添加自定義完整性約束條件的方法2.修改基表修改基表使用SQL中的ALTERTABLE語句。例3-14:對(duì)例3-13所創(chuàng)建的數(shù)據(jù)庫做如下修改:(1)向STU表中添加聯(lián)系電話字段;ALTERTABLESTUADD聯(lián)系電話INT;(2)將聯(lián)系電話字段的數(shù)據(jù)類型修改為字符串類型;ALTERTABLESTUALTER聯(lián)系電話CHAR(11);(3)刪除剛才添加的聯(lián)系電話字段;ALTERTABLESTUDROP聯(lián)系電話;注意:在對(duì)基表結(jié)構(gòu)進(jìn)行修改時(shí)需要先將基表關(guān)閉
3.刪除基表
使用SQL中的DROPTABLE語句可以刪除不需要的基表如果所要?jiǎng)h除的基表中含有被其他基表引用的字段,需要先將其他基表中的REFERENCES約束刪除,才能進(jìn)行基表的刪除DROPTABLE語句的一般形式為:
DROPTABLE<表名>;
例3-15:刪除SGRADE表。
DROPTABLESGRADE;4.定義索引為了加快查詢速度和有序輸出,可以在一個(gè)基表上建立一個(gè)或多個(gè)索引(index)索引屬于物理存儲(chǔ)路徑的概念,RDBMS在存取數(shù)據(jù)時(shí)會(huì)自動(dòng)選擇合適的索引作為存取路徑。定義索引使用SQL中的CREATEINDEX語句,其一般形式如下:
CREATE[UNIQUE]INDEX<索引名>ON<基表名>(<列名1>[<次序>][,<列名2>[<次序>]]…);說明:(1)UNIQUE表示每一個(gè)索引值只對(duì)應(yīng)唯一的數(shù)據(jù)記錄;(2)<次序>用于指定索引的排列次序?yàn)樯蜻€是降序,其中ASC為升序,DESC為降序,缺省值為ASC;(3)索引可以建立在表的一列或多列之上,各個(gè)列之間用逗號(hào)分隔開;(4)不必對(duì)主鍵建立索引。例3-16:在例3-13所創(chuàng)建的表上創(chuàng)建索引,使STU表中的記錄按生日從小到大排序,使SGRADE表中的成績(jī)按從大到小排序。CREATEINDEXS_生日ONSTU(生日);CREATEUNIQUEINDEXS_成績(jī)ONSGRADE(成績(jī)DESC);5.刪除索引刪除索引使用SQL中的DROPINDEX語句,其一般形式如下:
DROPINDEX<索引名>;例3-17:刪除STU表上的索引S_生日。
DROPINDEXS_生日;3.4.3SQL數(shù)據(jù)查詢數(shù)據(jù)查詢是指從數(shù)據(jù)庫中檢索滿足需要的數(shù)據(jù)。查詢是數(shù)據(jù)庫的核心操作。數(shù)據(jù)查詢使用SQL中的SELECT語句,其一般形式如下:SELECT[ALL|DISTINCT]<目標(biāo)列表達(dá)式1>[,<目標(biāo)列表達(dá)式2>]…FROM<基表名或視圖名1>[,<基表名或視圖名2>]…[WHERE<記錄過濾條件>][GROUPBY<列名1>[,<列名2>]…[HAVING<小組過濾條件>]][ORDERBY<列名1>[ASC|DESC][,<列名2>[ASC|DESC]]…];1.單表查詢(1)選擇表中的若干列(投影)例3-18:查詢STU表中全體學(xué)生的全部信息。SELECT*FROMSTU;等價(jià)于:SELECT學(xué)號(hào),姓名,性別,系別,生日FROMSTU;例3-19:查詢學(xué)生的學(xué)號(hào)和性別。SELECT學(xué)號(hào),性別FROMSTU;例3-20:查詢學(xué)生的姓名、性別和年齡。SELECT姓名,性別,Year(Now())-Year(生日)AS
年齡FROMSTU;(2)選擇表中的若干行(選擇)選擇表中的指定元組通過在SQL中的WHERE子句中設(shè)定記錄過濾條件實(shí)現(xiàn)記錄過濾條件是由邏輯運(yùn)算符AND、OR、NOT連接的關(guān)系表達(dá)式例3-21:查詢所有女生信息。SELECT*FROMSTUWHERE性別=“女”;例3-22:查詢年齡在18歲以上的女生信息。SELECT*FROMSTUWHERE性別=“女”AND(Year(Now())-Year(生日))>18;例3-23:查詢學(xué)時(shí)數(shù)在40~60之間的課程編號(hào)和課程名稱。SELECT課程編號(hào),課程名稱FROMCLASSWHERE學(xué)時(shí)BETWEEN40AND60;等價(jià)于:SELECT課程編號(hào),課程名稱FROMCLASSWHERE學(xué)時(shí)>40AND學(xué)時(shí)<60;【例3-24】查詢學(xué)時(shí)數(shù)大于60或小于40的課程編號(hào)和課程名稱。SELECT課程編號(hào),課程名稱FROMCLASSWHERE學(xué)時(shí)NOTBETWEEN40AND60;等價(jià)于:SELECT課程編號(hào),課程名稱FROMCLASSWHERE學(xué)時(shí)<40OR學(xué)時(shí)>60;【例3-25】查詢至少選修了1號(hào)、3號(hào)或5號(hào)課程中任意一門課程的學(xué)生的學(xué)號(hào)。SELECT學(xué)號(hào)FROMSGRADEWHERE課程編號(hào)IN(“1”,”3”,”5”);等價(jià)于:SELECT學(xué)號(hào)FROMSGRADEWHERE課程編號(hào)=“1”O(jiān)R課程編號(hào)=“3”O(jiān)R課程編號(hào)=“5”;【例3-26】查詢既不是計(jì)算機(jī)系也不是物理系和電子系的學(xué)生的學(xué)號(hào)和姓名。SELECT學(xué)號(hào),姓名FROMSTUWHERE系別<>’物理’AND系別<>’電子’AND系別<>’計(jì)算機(jī)’;等價(jià)于:SELECT學(xué)號(hào),姓名FROMSTUWHERE系別NOTIN(’物理’,’電子’,’計(jì)算機(jī)’);思考:查詢沒有選修1號(hào)、3號(hào)或5號(hào)課程中任何一門的學(xué)生的學(xué)號(hào),能用下面的語句選擇么?SELECT學(xué)號(hào)FROMSGRADEWHERE課程編號(hào)NOTIN(‘1’,’3’,’5’);【例3-27】查詢系別中含有“理”字的學(xué)生的學(xué)號(hào)、姓名和系別。SELECT學(xué)號(hào),姓名,系別FROMSTUWHERE系別LIKE'*理*';說明:在SQL語句中用LIKE運(yùn)算符進(jìn)行模糊查找,一般結(jié)合通配符使用。在Access中的通配符有兩種:?(問號(hào))匹配任意單個(gè)字符。*(星號(hào))匹配任意長(zhǎng)度字符。【例3-28】查詢無需先修課程的課程的編號(hào)和名稱。SELECT課程編號(hào),課程名稱FROMCLASSWHERE先修課程編號(hào)ISNULL;(3)排序查詢【例3-29】:查詢選修了4號(hào)課程的學(xué)生的學(xué)號(hào)和成績(jī),查詢結(jié)果按成績(jī)降序排列。SELECT學(xué)號(hào),成績(jī)FROMSGRADEWHERE課程編號(hào)=’4’ORDERBY成績(jī)DESC;(4)屏蔽重復(fù)項(xiàng)查詢【例3-30】:查詢所有被選修了的課程的課程編號(hào)。SELECTDISTINCT課程編號(hào)FROMSGRADE;(5)數(shù)據(jù)常量使用說明在Access系統(tǒng)中:①字符類型的數(shù)據(jù)常量在使用時(shí)兩端加英文單引號(hào)或雙引號(hào)皆可;②日期型和時(shí)間型常量使用時(shí)兩段加#號(hào)。例如:#2006-3-8#,#18:15:00#;③貨幣類型常量使用時(shí)和數(shù)值型常量相同,不需添加標(biāo)記。2.使用集函數(shù)和分組查詢(1)集函數(shù)【例3-31】:查詢男生總?cè)藬?shù)。SELECTCOUNT(*)AS男生人數(shù)FROMSTUWHERE性別=’男’;【例3-32】:查詢4號(hào)課程的最高分、最低分和平均分。SELECTMAX(成績(jī)),MIN(成績(jī)),AVG(成績(jī))FROMSGRADEWHERE課程編號(hào)=’4’;(2)分組查詢【例3-33】:查詢男生和女生的人數(shù)。SELECT性別,COUNT(*)AS人數(shù)FROMSTUGROUPBY性別;【例3-34】:查詢不同系別的男、女生人數(shù)。SELECT系別,性別,COUNT(*)AS人數(shù)FROMSTUGROUPBY系別,性別;(3)HAVING小組篩選【例3-35】:查詢選修了2門以上課程的學(xué)生的學(xué)號(hào)。SELECT學(xué)號(hào)FROMSGRADEGROUPBY學(xué)號(hào)HAVINGCOUNT(課程編號(hào))>=2;【例3-36】:查詢平均分在90以上且每門功課的成績(jī)都在80分以上的學(xué)生的學(xué)號(hào)。SELECT學(xué)號(hào)FROMSGRADEGROUPBY學(xué)號(hào)HAVINGAVG(成績(jī))>90ANDMIN(成績(jī))>=80;【例3-37】:查詢不及格門數(shù)在2門以上的學(xué)生的學(xué)號(hào)。SELECT學(xué)號(hào)FROMSGRADEWHERE成績(jī)<60GROUPBY學(xué)號(hào)HAVINGCOUNT(課程編號(hào))>=2;3.連接查詢(1)使用場(chǎng)合當(dāng)查詢條件或結(jié)果涉及到多個(gè)表時(shí),需要將多個(gè)表連接起來進(jìn)行聯(lián)合查詢。(2)連接條件兩個(gè)表進(jìn)行連接只有當(dāng)公共列存在時(shí)才具有實(shí)際意義。通常情況下,兩表通過外鍵和被參照表的主鍵發(fā)生聯(lián)系。如果外鍵和被參照表的主鍵同名,為示區(qū)別,引用時(shí)必須在列名前加上表名作為前綴,例如
STU.學(xué)號(hào)
SGRADE.學(xué)號(hào)。(3)執(zhí)行過程將表1的每一個(gè)元組與表2的每一個(gè)元組逐一交叉匹配,滿足連接條件時(shí)將兩表元組拼接,形成臨時(shí)表,再對(duì)該臨時(shí)表用單表查詢的方法進(jìn)行查詢。(4)一般形式連接查詢的一般形式如下:SELECT[ALL|DISTINCT]<目標(biāo)列表達(dá)式1>[,<目標(biāo)列表達(dá)式2>]…FROM<基表名或視圖名1>INNERJOIN<基表名或視圖名2>ON連接條件…[WHERE<記錄過濾條件>]或者用下面的形式:SELECT[ALL|DISTINCT]<目標(biāo)列表達(dá)式1>[,<目標(biāo)列表達(dá)式2>]…FROM<基表名或視圖名1>,<基表名或視圖名2>[,<基表名或視圖名3>]…WHERE<連接條件>【例3-38】:查詢所有選修了課程的學(xué)生的學(xué)號(hào)、姓名、課程編號(hào)和成績(jī)。SELECTSTU.學(xué)號(hào),姓名,課程編號(hào),成績(jī)FROMSTUINNERJOINSGRADEONSTU.學(xué)號(hào)=SGRADE.學(xué)號(hào);
也可以用下面的形式表述連接條件:SELECTSTU.學(xué)號(hào),姓名,課程編號(hào),成績(jī)FROMSTU,SGRADEWHERESTU.學(xué)號(hào)=SGRADE.學(xué)號(hào);【例3-39】:查詢選修了“操作系統(tǒng)”課程的學(xué)生的姓名和該門課的成績(jī)。SELECT姓名,成績(jī)FROMSTUINNERJOIN(CLASSINNERJOINSGRADEONCLASS.課程編號(hào)=SGRADE.課程編號(hào))
ONSTU.學(xué)號(hào)=SGRADE.學(xué)號(hào)WHERE課程名稱="操作系統(tǒng)";也可以用下面的形式:SELECT姓名,成績(jī)FROMSTU,CLASS,SGRADEWHERECLASS.課程編號(hào)=SGRADE.課程編號(hào)ANDSTU.學(xué)號(hào)=SGRADE.學(xué)號(hào)
AND課程名稱="操作系統(tǒng)";例3-40:查詢選修了3門以上課程的學(xué)生的姓名。SELECT姓名FROMSTUINNERJOINSGRADEONSTU.學(xué)號(hào)=SGRADE.學(xué)號(hào)GROUPBYSTU.姓名HAVINGCount(課程編號(hào))>=3;4.嵌套查詢?cè)谝粋€(gè)SELECT語句的FROM、WHERE或HAVING子句中嵌入另一個(gè)SELECT語句,稱為嵌套查詢或子查詢。外層的查詢稱為父查詢,內(nèi)層的查詢稱為子查詢:嵌套查詢執(zhí)行時(shí)由內(nèi)向外進(jìn)行,即把子查詢運(yùn)行結(jié)果作為父查詢的數(shù)據(jù)源或查詢條件;嵌套查詢可以多層嵌套,適合用于解決復(fù)雜的查詢問題,體現(xiàn)了“結(jié)構(gòu)化”的特點(diǎn);子查詢向父查詢返回結(jié)果時(shí),根據(jù)實(shí)際需要,可以只返回一次結(jié)果值,也可以反復(fù)執(zhí)行。(1)子查詢處理單次例3-43:查詢選修了課程的學(xué)生總數(shù)。為避免重復(fù)統(tǒng)計(jì)選課人數(shù),需要在計(jì)數(shù)時(shí)使用DISTINCT短語,但在Access中不支持集函數(shù)中的DISTINCT短語,所以不能用以下語句:SELECTCOUNT(DISTINCT學(xué)號(hào))AS選課人數(shù)FROMSGRADE
而要使用如下的子查詢:SELECTCOUNT(學(xué)號(hào))AS選課人數(shù)FROM(SELECTDISTINCT學(xué)號(hào)FROMSGRADE)例3-44:查詢選修了3門以上課程的學(xué)生的姓名。SELECT姓名FROMSTUWHERE學(xué)號(hào)IN(SELECT學(xué)號(hào)FROMSGRADEGROUPBY學(xué)號(hào)HAVINGCount(課程編號(hào))>=3;)例3-45:選修了“操作系統(tǒng)”課程的學(xué)生的姓名。SELECT姓名FROMSTUWHERE學(xué)號(hào)IN(SELECT學(xué)號(hào)
FROMSGRADEWHERE課程編號(hào)=(SELECT課程編號(hào)FROMCLASSWHERE課程名稱="操作系統(tǒng)"))注意:涉及多表查詢時(shí),有時(shí)既可以用連接查詢,也可以用嵌套查詢,例3-40和例3-44就是同一個(gè)題目的兩種不同解法。但是當(dāng)查詢結(jié)果所需字段來自多個(gè)表時(shí),就不能用子查詢而只能用連接查詢,比較例3-45和例3-39,后者就不能用子查詢實(shí)現(xiàn)。另一些查詢則不能用連接查詢而只能用子查詢。例如,查詢沒有選修1號(hào)、3號(hào)或5號(hào)課程中任何一門的學(xué)生的姓名,就不能用連接查詢,而只能用如下的子查詢:SELECT姓名FROMSTUWHERE學(xué)號(hào)NOTIN(SELECT學(xué)號(hào)FROMSGRADEWHERE課程編號(hào)IN("1","3","5"))3.4.4SQL數(shù)據(jù)更新1.插入數(shù)據(jù)插入數(shù)據(jù)使用SQL中的INSERT語句,其一般形式如下:INSERTINTO<表名>[(<屬性列1>[,<屬性列2>…])]VALUES(<常量1>[,<常量2>…]);(1)插入一個(gè)元組例:將一條學(xué)生記錄(0601025,李銘,男,地理,1987-7-5)插入STU表。INSERTINTOSTUVALUES("0601025","李銘","男","地理",#87-7-5#)例:如圖所示的記錄插入CLASS表:INSERTINTOCLASS(課程編號(hào),課程名稱,學(xué)時(shí),學(xué)分)VALUES("2","高等數(shù)學(xué)",108,6);
或者采用下面的語句插入:INSERTINTOCLASSVALUES("2","高等數(shù)學(xué)",NULL,108,6);(2)插入子查詢結(jié)果INSERT語句可以與查詢語句結(jié)合起來,將數(shù)據(jù)成批地插入到表中,一般格式如下:INSERTINTO<表名>[(<屬性列1>[,<屬性列2>…])]子查詢;例:創(chuàng)建一個(gè)平均成績(jī)表T_AVG,包含學(xué)生學(xué)號(hào)(長(zhǎng)度為7個(gè)字符)和平均成績(jī)(單精度數(shù)值型),并插入相應(yīng)數(shù)據(jù)。首先創(chuàng)建平均成績(jī)表:CREATETABLET_AVG(學(xué)號(hào)TEXT(7),平均成績(jī)SINGLE);再用子查詢插入數(shù)據(jù)值:INSERTINTOT_AVG(學(xué)號(hào),平均成績(jī))SELECT學(xué)號(hào),AVG(成績(jī))FROMSGRADEGROUPBY學(xué)號(hào);2.刪除數(shù)據(jù)刪除數(shù)據(jù)使用SQL中的DELETE,一般格式如下:DELETEFROM<表名>[WHERE<條件>]
注意,在SQL中不存在“邏輯刪除”和“物理刪除”,DELETE語句所做的就是真正的刪除。(1)刪除一個(gè)元組例:從SGRADE表中刪除0601025學(xué)生1號(hào)選修課記錄。DELETEFROMSGRADEWHERE學(xué)號(hào)=”0601025”AND課程編號(hào)=”1”(2)刪除多個(gè)元組例:從SGRADE表中刪除所有1號(hào)課程的相關(guān)記錄。DELETEFROMSGRADEWHERE課程編號(hào)=”1”(3)用子查詢表達(dá)刪除條件例3-55:刪除SGRADE表中“數(shù)據(jù)結(jié)構(gòu)”課程的所有選課記錄。DELETEFROMSGRADEWHERE課程編號(hào)=(SELECT課程編號(hào)FROMCLASSWHERE課程名稱=”數(shù)據(jù)結(jié)構(gòu)”)3.修改數(shù)據(jù)修改數(shù)據(jù)使用SQL中的UPDATE,一般格式如下:
UPDATE<表名> SET<列名1>=<表達(dá)式1>[,<列名2>=<表達(dá)式2>…] [WHERE<條件>]
(1)修改一個(gè)元組例:將0601025學(xué)生3號(hào)選修課成績(jī)改為99分。UPDATESGRADESET成績(jī)=99WHERE學(xué)號(hào)=”0601025”AND課程編號(hào)=”3”(2)修改多個(gè)元組例:將所有課程的學(xué)時(shí)加2學(xué)時(shí)。UPDATECLASSSET學(xué)時(shí)=學(xué)時(shí)+2(3)用子查詢表達(dá)修改條件例3-58:將所有學(xué)生的“高等數(shù)學(xué)”課程的成績(jī)?cè)O(shè)置為零。UPDATESGRADESET成績(jī)=0WHERE課程編號(hào)=(SELECT課程編號(hào)FROMCLASSWHERE課程名稱=”高等數(shù)學(xué)”);3.4.4其他SQL功能(1)視圖的定義SQL語言中的視圖定義語句的一般格式為:CREATEVIEW<視圖名>[(<列名1>[,<列名2>…])]AS<子查詢>視圖中的子查詢中一般不應(yīng)含有ORDERBY子句和DISTINCT短語。1.視圖的定義和作用(2)視圖的刪除SQL語言中視圖刪除語句的一般格式為:DROPVIEW<視圖名>注:
Access不直接支持CREATEVIEW和DROPVIEW語句。在Access中,查詢本身可以單獨(dú)保存,Access也支持在已有查詢的基礎(chǔ)上創(chuàng)建新查詢。SQL語言中還包括數(shù)據(jù)控制語句,用于對(duì)基本表和視圖進(jìn)行授權(quán)以及事務(wù)控制等。其中的完整性控制功能主要體現(xiàn)在CREATETABLE語句以及ALTERTABLE語句上,而對(duì)數(shù)據(jù)庫的安全控制則通過定義某用戶對(duì)某類數(shù)據(jù)擁有指定操作權(quán)限來完成,當(dāng)發(fā)生非法用戶存取數(shù)據(jù)或合法用戶進(jìn)行非法訪問時(shí),DBMS會(huì)拒絕執(zhí)行操作。*2.數(shù)據(jù)控制(1)授權(quán)例3-59:將查詢SGRADE表的權(quán)限授予用戶張三。GRANTSELECTONTABLESGRADETO張三例3-60:將查詢CLASS表的權(quán)限授予全體用戶。GRANTSELECTONTABLECLASSTOPUBLIC例3-61:將對(duì)STU表的全部權(quán)限授予用戶張三和李四。GRANTALLPRIVILEGESONTABLESTUTO張三,李四例3-62:將查詢SGRADE表并修改成績(jī)的權(quán)限授予用戶李四。GRANTSELECT,UPDATE(成績(jī))ONTABLESGRADETO李四(2)收回權(quán)限例3-63:將用戶張三對(duì)SGRADE表的查詢權(quán)限收回。REVOKESELECTONTABLESGRADEFROM張三例3-64:將所有用戶對(duì)CLASS表的查詢權(quán)限收回。REVOKESELECTONCLASSFROMPUBLIC例3-65:將用戶李四對(duì)SGRADE表的插入權(quán)限收回。REVOKEINSERTONTABLESGRADEFROM李四。注意:(1)Access不直接支持REVOKE語句和GRANT語句。(2)在Access2016中要獲得安全性,可考慮使用以下一項(xiàng)或多項(xiàng)功能:①加密②數(shù)據(jù)庫服務(wù)器③SharePoint網(wǎng)站④Web數(shù)據(jù)庫3.4.5習(xí)題與實(shí)踐1.簡(jiǎn)答題2.實(shí)踐題3.5Excel和Access的連接*583.5.1Excel和Access與外部數(shù)據(jù)交換概述Excel和Access的不同ODBC(OpenDatabaseConnectivity
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 機(jī)電工程發(fā)展的學(xué)術(shù)研究與試題及答案
- 西方國(guó)家政治家的人格特征研究試題及答案
- 機(jī)電工程考試成功經(jīng)驗(yàn)2025年試題及答案
- 軟件開發(fā)生命周期管理及試題與答案
- 網(wǎng)絡(luò)工程師考試準(zhǔn)備技巧與試題及答案
- 西方政治制度與教育科技融合的研究試題及答案
- 機(jī)電工程知識(shí)傳承與試題及答案總結(jié)
- 網(wǎng)絡(luò)工程師個(gè)案研究試題及答案
- 常見網(wǎng)絡(luò)協(xié)議解析試題及答案
- 網(wǎng)絡(luò)工程師職業(yè)發(fā)展的外部環(huán)境分析試題及答案
- 2023年四川省水電投資經(jīng)營(yíng)集團(tuán)普格電力有限公司招聘筆試題庫含答案解析
- (完整版)高級(jí)法學(xué)英語課文翻譯
- 無人機(jī)項(xiàng)目融資商業(yè)計(jì)劃書
- 食品營(yíng)養(yǎng)學(xué)(暨南大學(xué))智慧樹知到答案章節(jié)測(cè)試2023年
- GA 1810-2022城鎮(zhèn)燃?xì)庀到y(tǒng)反恐怖防范要求
- GB/T 2518-2008連續(xù)熱鍍鋅鋼板及鋼帶
- 商戶撤場(chǎng)退鋪驗(yàn)收單
- 部編版小學(xué)道德與法治三年級(jí)下冊(cè)期末質(zhì)量檢測(cè)試卷【含答案】5套
- 斷親協(xié)議書范本
- 五年級(jí)語文下冊(cè)第八單元【教材解讀】課件
- 外科圍手術(shù)期患者心理問題原因分析及護(hù)理干預(yù)
評(píng)論
0/150
提交評(píng)論