




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第三章第三章 關(guān)系數(shù)據(jù)庫(kù)關(guān)系數(shù)據(jù)庫(kù) 標(biāo)準(zhǔn)語(yǔ)言標(biāo)準(zhǔn)語(yǔ)言 SQL(Structured Query Language)結(jié)構(gòu)化查詢語(yǔ)言,結(jié)構(gòu)化查詢語(yǔ)言, 1974年年Boyce和和Chamberlin提出,首先在提出,首先在IBM 公司的公司的 關(guān)系數(shù)據(jù)庫(kù)系統(tǒng)關(guān)系數(shù)據(jù)庫(kù)系統(tǒng)System R上實(shí)現(xiàn)。上實(shí)現(xiàn)。 特點(diǎn):功能豐富、使用方便、靈活、語(yǔ)言簡(jiǎn)潔易學(xué)。特點(diǎn):功能豐富、使用方便、靈活、語(yǔ)言簡(jiǎn)潔易學(xué)。 1986年,年,ANSI數(shù)據(jù)庫(kù)委員會(huì)數(shù)據(jù)庫(kù)委員會(huì)X3H2批準(zhǔn)了批準(zhǔn)了SQL作為數(shù)作為數(shù) 據(jù)庫(kù)語(yǔ)言的美國(guó)標(biāo)準(zhǔn),據(jù)庫(kù)語(yǔ)言的美國(guó)標(biāo)準(zhǔn),ISO隨后也提出了同樣的決定。隨后也提出了同樣的決定。 應(yīng)用系統(tǒng)范圍廣,統(tǒng)一
2、標(biāo)準(zhǔn)。應(yīng)用系統(tǒng)范圍廣,統(tǒng)一標(biāo)準(zhǔn)。 SQL用戶 Base Table B1 View V1View V2 Base Table B2 Base Table B3 Base Table B4 Stored File S1 Stored File S1 Stored File S1 Stored File S1 外模式 模式 內(nèi)模式 SQL語(yǔ)言支持的關(guān)系數(shù)據(jù)庫(kù)的三級(jí)模式結(jié)構(gòu) 一些概念:一些概念: 1)用戶可以用用戶可以用SQL語(yǔ)言對(duì)視圖語(yǔ)言對(duì)視圖(View)和基本表和基本表(Base Table)進(jìn)行查詢等操作,在用戶觀點(diǎn)里,視圖和表進(jìn)行查詢等操作,在用戶觀點(diǎn)里,視圖和表 一樣,都是關(guān)系。一樣,都是
3、關(guān)系。 2)視圖是從一個(gè)或多個(gè)基本表中導(dǎo)出的表,本身不存視圖是從一個(gè)或多個(gè)基本表中導(dǎo)出的表,本身不存 儲(chǔ)在數(shù)據(jù)庫(kù)中,只有其定義,可以將其理解為一個(gè)儲(chǔ)在數(shù)據(jù)庫(kù)中,只有其定義,可以將其理解為一個(gè) 虛表。虛表。 3)基本表是本身獨(dú)立存在的表,每個(gè)基本表對(duì)應(yīng)一個(gè)基本表是本身獨(dú)立存在的表,每個(gè)基本表對(duì)應(yīng)一個(gè) 存儲(chǔ)文件,一個(gè)表可以帶若干索引,存儲(chǔ)文件及索存儲(chǔ)文件,一個(gè)表可以帶若干索引,存儲(chǔ)文件及索 引組成了關(guān)系數(shù)據(jù)庫(kù)的內(nèi)模式。引組成了關(guān)系數(shù)據(jù)庫(kù)的內(nèi)模式。 lSQL語(yǔ)言的功能包括: l查詢(Query) l操縱(manipulation) l定義(definition) l控制(Control) lSQL語(yǔ)
4、言是一個(gè)綜合的、通用的、 功能極強(qiáng)的關(guān)系數(shù)據(jù)庫(kù)語(yǔ)言。 l主要特點(diǎn): 1. 語(yǔ)言簡(jiǎn)潔、易學(xué)易用:核心功能只有8個(gè)動(dòng) 詞,語(yǔ)法簡(jiǎn)單,接近英語(yǔ)。 SQL功能 動(dòng)詞 數(shù)據(jù)庫(kù)查詢 SELECT 數(shù)據(jù)定義 CREATE,DROP 數(shù)據(jù)操縱 INSERT,UPDATE, DELETE 數(shù)據(jù)控制 GRANT,REVOKE l主要特點(diǎn): 2. 高度非過(guò)程化的語(yǔ)言:用戶只需提出“干什 么”,至于“怎么干”由DBMS解決;用戶只 需要早查詢語(yǔ)句中提出需要什么,DBMS即可 按路徑存取,并把結(jié)果返回給用戶。 3. 面向集合的語(yǔ)言:每一個(gè)SQL的操作對(duì)象是一 個(gè)或多個(gè)關(guān)系,操作的結(jié)果也是一個(gè)關(guān)系。 4. 既可獨(dú)立使用,
5、又可嵌入到宿主語(yǔ)言中使用, 具有自主型和宿主型兩種特點(diǎn)。 l主要特點(diǎn): 5. 具有查詢、操作、定義和控制四種語(yǔ)言一 體化的特點(diǎn)。它只向用戶提供一種語(yǔ)言, 但該語(yǔ)言具有上述多種功能,且每中操作 只需一種操作符。 l查詢即檢索操作,是對(duì)已經(jīng)存在的基本表及視圖進(jìn) 行數(shù)據(jù)檢索,不改變數(shù)據(jù)本身 l基本結(jié)構(gòu):SELECT-FROM-WHERE組成的查詢 塊,一般形式: SELECT , (指出要檢索的數(shù)據(jù)項(xiàng)) FROM , (給出要操作的關(guān)系 表名) WHERE (給出查詢結(jié)果應(yīng)滿 足的條件) l查詢塊的結(jié)果仍然是一個(gè)表,結(jié)果表的結(jié)構(gòu)及內(nèi)容 完全取決于查詢塊 l當(dāng)涉及多表操作時(shí),WHERE 子句要同時(shí)給出
6、連接條件 l查詢塊作為整體代表著關(guān)系代數(shù)中的投影、選擇、連接等 操作的組合 lSQL的檢索功能十分豐富,舉例說(shuō)明(三個(gè)基本表) l例1:檢索學(xué)生的姓名,年齡和性別 SELECT SN,AGE,SEX FROM S; (SELECT * FROM S;) l例2:檢索學(xué)生選修課程的課程號(hào) SELECT DISTINCT C# FROM SC; 其中:DISTINCT表示消取重復(fù)行 l利用投影檢索可控制屬性名列的順序 l例3:檢索學(xué)習(xí)課程號(hào)為C2的所有學(xué)生的學(xué)號(hào)和成 績(jī) SELECT S#,GRADE FROM SC WHERE C#=C2; l例4:檢索課程號(hào)為C2且成績(jī)高于85分以上的學(xué)生 學(xué)
7、號(hào)和成績(jī) SELECT S#,GRADE FROM SC WHERE C#=C2 AND GRADE85; l例5: 檢索選修C1或C2的學(xué)生學(xué)號(hào) SELECT S# FROM SC WHERE C#=C1 OR C#=C2; l例6: 檢索成績(jī)?cè)?0分至80分之間的學(xué)生學(xué)號(hào), 課程號(hào)和成績(jī) SELECT * FROM SC WHERE GRADE BETWEEN 70 AND 80; 運(yùn)算符 BETWEENAND可以選擇屬性列在 一定值范圍內(nèi)的行 l例7: 檢索選修C1的學(xué)生學(xué)號(hào)和成績(jī),并按成績(jī) 的降序和學(xué)號(hào)的升序排列 SELECT S#,GRADE FROM SC WHERE C#=C1
8、ORDER BY GRADE DESC,S#; ORDER BY 子句表示結(jié)果要排序,它必須在所有 其它子句之后作為最后一個(gè)子句出現(xiàn) l例8: 檢索學(xué)號(hào)為S1,S3,S4的姓名,年齡(年 齡按升序排列) SELECT SN,AGE FROM S WHERE S# IN (S1,S3,S4) ORDER BY AGE; 運(yùn)算符:IN表示選擇匹配若干指定值的行 l例9: 檢索辛國(guó)年同學(xué)所學(xué)課程的課程號(hào)及成績(jī) SELECT SN,C#,GRADE FROM S,SC WHERE S.S#=SC.S# AND SN=辛國(guó)年; 對(duì)多表數(shù)據(jù)的檢索,是通過(guò)表與表之間的滿足一定 條件的行連接而實(shí)現(xiàn)的.其中FR
9、OM子句要指明進(jìn)行連接 的表名;WHERE子句要指明連接的列名及其連接條 件;SELECT子句中要指明多表檢索的結(jié)果表中的屬性名 列. l例10: 檢索所有比徐偉年齡大的學(xué)生姓名、年齡、 性別和徐偉的年齡 SELECT X.SN,X.AGE,X.SEX,Y.AGE FROM S X,S Y WHERE X.AGEY.AGE AND Y.SN=徐偉 ; 這是一個(gè)表和它自身的大于連接 l例11: 檢索所有學(xué)生的姓名、選課名稱和成 績(jī) SELECT SN,CN,GRADE FROM S,SC,C WHERE S.S#=SC.S# AND SC.C#=C.C#; 進(jìn)行連表查詢是一般都應(yīng)該指定連接條件
10、lWHERE 子句中可以包含另一個(gè)查詢塊 l子查詢、外部查詢 l外部查詢利用子查詢來(lái)獲取檢索條件值 l用此類查詢可以用一系列簡(jiǎn)單查詢構(gòu)造復(fù)雜查詢 l子查詢分為:普通子查詢和相關(guān)子查詢 l普通子查詢:執(zhí)行一次 l相關(guān)子查詢:檢索條件中引用了外部查詢的列,執(zhí)行的次數(shù)由外部 查詢的候選行決定 l例12: 檢索和辛國(guó)年同學(xué)同歲的學(xué)生 SELECT SN FROM S WHERE AGE= (SELECT AGE FROM S WHERE SN=辛國(guó)年); 子查詢結(jié)果僅返回一個(gè)值 l例13: 檢索選修C2課程號(hào)的學(xué)生姓名 SELECT SN FROM S WHERE S#=ANY (SELECT S#
11、FROM SC WHERE C#=C2); 子查詢返回一組值,需在比較運(yùn)算符和子查詢之間插入 ANY或ALL等操作符 (SELECT SN FROM S,SC WHERE S.S#=SC.S# AND C#=C2); l例14: 檢索選修C2課程號(hào)的學(xué)生姓名(用IN代替=ANY) SELECT SN FROM S WHERE S# IN (SELECT S# FROM SC WHERE C#=C2); l例15: 檢索選修課程C2的學(xué)生中成績(jī)最高的學(xué)生的學(xué) 號(hào) SELECT S# FROM SC WHERE C#=C2 AND GRADE=ALL (SELECT GRADE FROM SC W
12、HERE C#=C2); l例16: 檢索沒(méi)有選修C2的學(xué)生姓名 SELECT SN FROM S WHERE C2 NOT IN (SELECT C# FROM SC WHERE S#=S.S#); 相關(guān)子查詢 NOT IN 等價(jià)于 !=ALL (表示不在集合中) l例17: 檢索選修C2課程號(hào)的學(xué)生姓名(用EXISTS) SELECT SN FROM S WHERE EXISTS (SELECT * FROM SC WHERE S#=S.S# AND C#=C2); EXISTS表示存在量詞 l例18: 檢索沒(méi)有選修C2的學(xué)生姓名(用NOT EXIST) SELECT SN FROM S
13、WHERE NOT EXISTS (SELECT * FROM SC WHERE S#=S.S# AND C#=C2); l例19: 檢索選修了所有課程的學(xué)生姓名 SELECT SN FROM S WHERE NOT EXISTS (SELECT * FROM C WHERE NOT EXISTS (SELECT * FROM SC WHERE S#=S.S# AND C#=C.C#); l例20: 設(shè)計(jì)算機(jī)系有本科生學(xué)生表S1,研究生表S2, 具有相同屬性列名(S#,SN,AGE,SEX),現(xiàn)求計(jì)算機(jī)系 所有學(xué)生的學(xué)號(hào)和姓名,并按學(xué)號(hào)升序排列 SELECT S#,SN FROM S1 UNI
14、ON SELECT S#,SN FROM S2 ORDER BY S#; 查詢塊可作為集合操作(并、交和差)的操作對(duì)象 l例21: 檢索沒(méi)人選修的課程號(hào)和課程名 SELECT C#,CN FROM C WHERE C# IN (SELECT C# FROM C MINUS SELECT DISTINCT C# FROM SC); lSQL 提供了一定數(shù)量的庫(kù)函數(shù),增強(qiáng)基本檢索能力 l庫(kù)函數(shù)有:SUM、AVG、COUNT、MAX、MIN 例22: 求取計(jì)算機(jī)系(DEPT=6)的學(xué)生平均年齡 SELECT AVG(AGE) FROM S WHERE DEPT=6; 例23: 檢索學(xué)校共有多少系 S
15、ELECT COUNT(DISTINCT DEPT) FROM S; COUNT(*) 對(duì)行的計(jì)數(shù)對(duì)行的計(jì)數(shù),不消除重復(fù)行不消除重復(fù)行 lSQL允許對(duì)關(guān)系表按屬性列組合在行的方向上進(jìn)行 分組,并可對(duì)每一個(gè)分組執(zhí)行SELECT操作 lGROUP BY子句是分組子句 lHAVING子句是分組的檢索條件 例24: 檢索出選修課程至少等于三門的學(xué)生學(xué)號(hào)和選 課門數(shù) SELECT S#,COUNT(*) FROM SC GROUP BY S# HAVING COUNT(*)=3; 執(zhí)行過(guò)程及結(jié)果執(zhí)行過(guò)程及結(jié)果 l在SELECT 子句中,可包括由若干屬性列以及常數(shù)、 庫(kù)函數(shù)等組成的算術(shù)表達(dá)式,從而實(shí)現(xiàn)算術(shù)
16、表達(dá)式 的檢索 例25: 對(duì)于EMP表,檢索所有程序員姓名以及一年總 收入,并按獎(jiǎng)金與工資比值降序排列 SELECT EMPN,12*(BONUS+SALARY) FROM EMP WHERE JOB=PROGRAMMER ORDER BY BONUS/SALARY DESC; l在WHERE子句中,用“=”和“IN”時(shí),必須是完全匹配 l當(dāng)不知道精確值時(shí),可以用“LIKE”或“NOT LIKE” l形式: LIKE l在字符串常量中: l%:代表任意序列的零個(gè)或多個(gè)字符 l_: 代表任意單個(gè)字符 例26:檢索姓王的學(xué)生的學(xué)號(hào),年齡 SELECT S#,AGE FROM S WHERE SN
17、LIKE 王王% l某數(shù)據(jù)項(xiàng)沒(méi)有值稱為具有空值(NULL),通常沒(méi)有為 一個(gè)列輸入值時(shí),該列的值就是空值 l查詢空值使用“IS NULL”條件子句 例26:檢索缺少學(xué)習(xí)成績(jī)的學(xué)生學(xué)號(hào)和課程號(hào) SELECT S#,C# FROM SC WHERE GRADE IS NULL; lSQL語(yǔ)言的數(shù)據(jù)定義功能即指SQL DDL語(yǔ)句。 l它包括對(duì)數(shù)據(jù)庫(kù)用戶、基本表、視圖、索引、 聚集、同義名等數(shù)據(jù)庫(kù)對(duì)象的定義和撤銷。 l介紹:基本表、視圖和索引的定義和修改 1. 定義基本表 (1) 定義基本表的語(yǔ)句格式: lCREATE TABLE (,) l表名: l列定義:列名、列數(shù)據(jù)類型、長(zhǎng)度、是否允許空值 等。
18、 l定義完整性約束:列約束和表約束 lCONSTRAINT l完整性約束類型: NULL/NOT NULL UNIQUE PRIMARY KEY FOREIGN KEY CHECK l例如:建立一個(gè)學(xué)生基本表 CREATE TABLE S ( S# CHAR(4), SN CHAR(8), AGE NUMBER(2), SEX CHAR(2) DEFAULT男, DEPT CHAR(2); l例:建立包含完整性定義的學(xué)生基本表 CREATE TABLE S ( S# CHAR(4) CONSTRAINT S_PRIM PRIMARY KEY, SN CHAR(8) CONSTRAINT SN_
19、CONS NOT FULL, AGE NUMBER(2) CONSTRAINT AGE_CHE CHECK(AGE BETWEEN 15 AND 45), SEX CHAR(2) DEFAULT男男, DEPT CHAR(2); l例:建立包含完整性定義的選課基本表 CREATE TABLE SC ( S# CHAR(4) CONSTRAINT S_CONS NOT NULL, C# CHAR(5) CONSTRAINT C_CONS NOT FULL, GRADE NUMBER(3) CONSTRAINT GRADE_CHE CHECK(GRADE=0 AND GRADE=100), CON
20、STRAINT SC_PRIM PRIMARY KEY(S#,C#), CONSTRAINT SC_S FOREIGN KEY (S#) REFERENCES S(S#), CONSTRAINT SC_S FOREIGN KEY (C#) REFERENCES C(C#); l(2) 用其它表的數(shù)據(jù)創(chuàng)建一個(gè)新表 lCREATE TABLE (,) AS l例:建立計(jì)算機(jī)系學(xué)生情況基本表 CREATE TABLE S6 AS SELECT S#,SN,SEX,AGE FROM S WHERE DEPT=6 2. 修改基本表 (1) ADD方式 l使用 ADD方式可以向表中增加列定義和表約束 l語(yǔ)
21、法格式: lALTER TABLE ADD (|, (|) l例:在S表中增加一個(gè)班號(hào)列 ALTER TABLE S ADD(CLASSNO CHAR(6); l例:在S表中增加一個(gè)完整性約束定義,使DEPT的取值 只能在“1”到“15”之間 ALTER TABLE S ADD (CHECK(DEPT BWTEEN “1”AND”15”); (2) MODIFY方式 l該方式能對(duì)基本表中已有的列定義進(jìn)行修改 l語(yǔ)法格式: lALTER TABLE MODIFY ( 數(shù)據(jù)類型 NULL|NOT NULL, ( 數(shù)據(jù)類型NULL|NOT NULL) l例:把S表中S#列加寬到10為字符寬度 ALT
22、ER TABLE S MODIFY(S# CHAR(10); (3) DROP方式 l該方式能刪除基本表中已有的完整性約束定義 l語(yǔ)法格式: lALTER TABLE DROP CONSTRAINT |PRMARY KEY|UNIQUE(,) l例:刪除S表中的主碼 ALTER TABLE S DROP PRIMARY KEY l3. 改變基本表的名字 RENAME TO l4. 刪除基本表 DROP TABLE l外模式:用戶定義的基本表和若干視圖組成 l視圖:由基本表或其它視圖導(dǎo)出的表,其本身不存在 與數(shù)據(jù)庫(kù)中,稱為虛表 l視圖一經(jīng)定義,就可被檢索或刪除,但更新操作由一 定的限制,也可定義
23、其它視圖 l1. 定義視圖 l視圖是用一個(gè)查詢塊的查詢結(jié)果來(lái)定義的 l語(yǔ)法格式: lCREATE VIEW () AS l例1:創(chuàng)建一個(gè)有關(guān)計(jì)算機(jī)系學(xué)生情況的視圖SUB CREATE VIEW SUB AS SELECT S#,SN,AGE FROM S WHERE DEPT=6 l例2:創(chuàng)建一個(gè)有關(guān)學(xué)生成績(jī)情況的視圖 S_SC_C CREATE VIEW S_SC_C(S#,SNAME,CNAME,GRADE) AS SELECT S.S#,SN,CN,GRADE FROM S,C,SC WHERE S.S#=SC.S# AND SC.C#=C.C#; l例3:創(chuàng)建一個(gè)有關(guān)學(xué)生平均成績(jī)的視圖
24、S_C CREATE VIEW S_C(S#,AVG) AS SELECT S#,AVG(GRADE) FROM SC GROUP BY S# l例4:查找計(jì)算機(jī)系學(xué)生中小于20歲的學(xué)生的 學(xué)號(hào)、姓名和年齡 SELECT * FROM SUB WHERE AGE20 (SELECT S#,SN,AGE FROM S WHERE DEPT=6 AND AGE20) l2. 改變視圖的名字 RENAME TO l3. 刪除視圖 DROP VIEW l4. 使用視圖的優(yōu)點(diǎn): (1)能夠?qū)?duì)數(shù)據(jù)庫(kù)的訪問(wèn)限制在一定范圍內(nèi),有利于數(shù)據(jù)保密 (2)視圖機(jī)制使不同的用戶能以不同的方式看待同一數(shù)據(jù),當(dāng)許多 不同
25、種類的用戶使用同一個(gè)集成數(shù)據(jù)庫(kù)時(shí),這種靈活性非常重要 (3)簡(jiǎn)化了用戶觀點(diǎn) (4)視圖對(duì)于數(shù)據(jù)庫(kù)的重構(gòu)提供了一定程度的邏輯獨(dú)立性 l對(duì)于一個(gè)基本表,根據(jù)需要建立若干個(gè)索引 l建立索引的兩個(gè)主要目的:加快查詢速度、保證行的 唯一性 l1. 建立索引 l語(yǔ)法格式: lCREATE UNIQUE INDEX ON (,) l若指定UNIQUE選項(xiàng),系統(tǒng)將保證基本表中的任意 兩行記錄在索引列上或組合的索引列上具有唯一值 l例:為SC表在S#和C#列上建立唯一索引 CREATE UNIQUE INDEX SC1 ON SC(S#,C#); l2. 刪除索引 DROP INDEX l主要包括三種語(yǔ)句 1.
26、 INSERT l把新的記錄行(集)插入到已建立的表中 l語(yǔ)法格式: lINSERT INTO (,) VALUES (,) l例: (1) 插入一行記錄 INSERT INTO S VALUES(S11,WHITE,男男,20,6); (2) 插入一行的部分?jǐn)?shù)據(jù) INSERT INTO SC(S#,C#) VALUES(S11,C9) (3)插入多行記錄 INSERT INTO C2(C#) SELECT C# FROM SC WHERE S#=S2 2. DELETE l用來(lái)刪除表中的一行或多行記錄 l語(yǔ)法格式:DELETE FROM WHERE l例1: DELETE FROM S WH
27、ERE S#=S11; l例2: DELETE FROM SC WHERE S# IN (SELECT S# FROM S WHERE SN=辛國(guó)年辛國(guó)年) 3. UPDATE l用來(lái)對(duì)表中一行或多行中的某些值進(jìn)行修改 l語(yǔ)法格式: lUPDATE SET =| , =|WHERE (1)修改一行中的某些列值 例1: UPDATE S SET DEPT=6 WHERE S#=S11; (2)修改多行 例2:UPDATE EMP SET SALARY=1.5*SALARY WHERE JOB=PROGRAMMER AND SALARY=500) l是指控制用戶對(duì)數(shù)據(jù)的存取權(quán)力 l功能要求: l把
28、授權(quán)的決定告訴系統(tǒng),由GRANT和REVOKE語(yǔ) 句完成 l把授權(quán)的結(jié)果存入數(shù)據(jù)字典 l當(dāng)用戶提出操作請(qǐng)求時(shí),根據(jù)授權(quán)情況進(jìn)行檢查, 以決定是執(zhí)行操作還是拒絕 l語(yǔ)句格式: GRANT 權(quán)限、權(quán)力 ON 對(duì)象類型 對(duì)象名 TO 用 戶、用戶; WITH GRANT OPTION l數(shù)據(jù)控制語(yǔ)句包括管理數(shù)據(jù)庫(kù)用戶數(shù)據(jù)控制語(yǔ)句包括管理數(shù)據(jù)庫(kù)用戶,控制授予或撤控制授予或撤 銷數(shù)據(jù)庫(kù)用戶存取數(shù)據(jù)庫(kù)的某些特權(quán)等銷數(shù)據(jù)庫(kù)用戶存取數(shù)據(jù)庫(kù)的某些特權(quán)等 l保證數(shù)據(jù)的安全通常是通過(guò)為用戶設(shè)置權(quán)限來(lái)實(shí)現(xiàn)保證數(shù)據(jù)的安全通常是通過(guò)為用戶設(shè)置權(quán)限來(lái)實(shí)現(xiàn) 的的 l當(dāng)當(dāng)DBA建立了一個(gè)新用戶后建立了一個(gè)新用戶后,還必須授予它
29、一定的還必須授予它一定的 權(quán)限權(quán)限,否則它無(wú)法是用數(shù)據(jù)庫(kù)否則它無(wú)法是用數(shù)據(jù)庫(kù) l在在Oracle中中,可以授予和收回?cái)?shù)據(jù)庫(kù)用戶兩類特權(quán)可以授予和收回?cái)?shù)據(jù)庫(kù)用戶兩類特權(quán): 系統(tǒng)特權(quán)和對(duì)象特權(quán)系統(tǒng)特權(quán)和對(duì)象特權(quán) l在在Oracle中中,還支持角色的概念還支持角色的概念,一個(gè)角色是多種特一個(gè)角色是多種特 權(quán)的集合權(quán)的集合 l是通過(guò)是通過(guò)GRANT語(yǔ)句和語(yǔ)句和REVOKE語(yǔ)句授予和收回特語(yǔ)句授予和收回特 權(quán)的權(quán)的 舉例: (1)授予(收回)SCOTT用戶創(chuàng)建基本表的權(quán)限 GRANT CREATE TABLE TO SCOTT; REVOKE CREATE TABLE FROM SCOTT; (2)把S
30、表上的插入和修改S#列的特權(quán)授予LI和WANG 用戶 GRANT INSERT,UPDATE(S#) ON S TO LI,WANG; (3)把C表上的所有權(quán)力授予用戶WANG,而WANG還可 以把權(quán)限授予其它用戶 GRANT ALL ON C TO WANG WITH GRNAT OPTION (4)從WANG用戶手中收回修改S表的權(quán)限 REVOKE UPDATE ON S FROM WANG l將SQL訪問(wèn)數(shù)據(jù)庫(kù)的能力,與宿主語(yǔ)言的過(guò)程 化處理的能力進(jìn)行綜合 l將SQL語(yǔ)句嵌入宿主語(yǔ)言中 l引入變量的使用 lSQL語(yǔ)句加上前綴,區(qū)別于宿主語(yǔ)言的語(yǔ)句 lExec Sql ; lex.:Exe
31、c sql Delete From Student; l預(yù)編譯 l將具有前綴的語(yǔ)句,轉(zhuǎn)換成宿主語(yǔ)言的調(diào)用語(yǔ)句 l由宿主語(yǔ)言的編譯器生成目標(biāo)碼 lSQLCASQL Communication Area lsql通訊區(qū)域 l數(shù)據(jù)庫(kù)工作單元宿主語(yǔ)言工作單元之間的通訊區(qū) 域 l宿主語(yǔ)言DB:請(qǐng)求、參數(shù) lDB宿主語(yǔ)言:執(zhí)行的狀態(tài)信息、出錯(cuò)信息 lDB宿主語(yǔ)言:(查詢)執(zhí)行的結(jié)果 lSqlca.sqlcode: lerror code l0:success l 0 :fail l100:row not found lSqlca.sqlstate: l標(biāo)準(zhǔn)(ISO)返回信息碼 l主變量(共享變量) l宿主
32、語(yǔ)言語(yǔ)句 l嵌入的SQL語(yǔ)句 l宿主變量 l僅用于宿主語(yǔ)言的語(yǔ)句中 l主變量的定義 Exec Sql Begin Declare Setction; Exec Sql End Declare Setction; l數(shù)據(jù)緩沖區(qū),存放SQL語(yǔ)句的查詢結(jié)果集 l游標(biāo)名 l指針位置 l將多行數(shù)據(jù)集轉(zhuǎn)換為單行數(shù)據(jù) l便于宿主語(yǔ)言處理 l由宿主語(yǔ)言處理數(shù)據(jù) l宿主變量 l共享變量 l由內(nèi)嵌的SQL語(yǔ)句處理數(shù)據(jù)庫(kù)的訪問(wèn) l共享變量 Exec sql Include Sqlca; Exec sql Begin declare Section; Char sno(5); Char cno(3); Int grade; Exec sql End Declare Section; main() Exec sql Declare
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 知識(shí)普及的考試試題及答案
- 2024年秘書證考試能力建設(shè)試題及答案
- 2025中國(guó)貿(mào)易合同范本
- 2025年福州市房地產(chǎn)買賣合同(甲種本買賣)
- 2025水果種子買賣合同協(xié)議書
- 新生兒動(dòng)脈栓塞的護(hù)理
- 甘肅歷年國(guó)考試題及答案
- 教育強(qiáng)國(guó)建設(shè)的戰(zhàn)略規(guī)劃與實(shí)施路徑
- 綠色轉(zhuǎn)型加速:全球與中國(guó)清潔能源市場(chǎng)現(xiàn)狀及前景分析
- 哈爾濱商業(yè)大學(xué)《英文報(bào)刊時(shí)文賞析》2023-2024學(xué)年第一學(xué)期期末試卷
- 2025生豬購(gòu)買合同范文
- 醫(yī)療器械經(jīng)營(yíng)質(zhì)量管理制度及工作程序-完整版
- (二模)溫州市2025屆高三第二次適應(yīng)性考試英語(yǔ)試卷(含答案)+聽(tīng)力音頻+聽(tīng)力原文
- 行政事業(yè)單位固定資產(chǎn)培訓(xùn)
- 6.1.2化學(xué)反應(yīng)與電能 課件 2024-2025學(xué)年高一下學(xué)期化學(xué)人教版(2019)必修第二冊(cè)
- 區(qū)級(jí)綜合醫(yī)院關(guān)于落實(shí)區(qū)領(lǐng)導(dǎo)干部醫(yī)療保健工作實(shí)施方案
- 申請(qǐng)XXX最低生活保障不予確認(rèn)同意告知書
- 城市雕塑藝術(shù)工程量清單計(jì)價(jià)定額2020版
- 河池市出租車駕駛員從業(yè)資格區(qū)域科目考試題庫(kù)(含答案)
- 淘汰賽賽對(duì)陣表
- 醫(yī)療糾紛中的病歷偽造篡改問(wèn)題研究
評(píng)論
0/150
提交評(píng)論