




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、 數(shù)據(jù)庫知識要點總結第一章 關系數(shù)據(jù)模型數(shù)據(jù)模型(靜態(tài))的三要素一關系數(shù)據(jù)結構(一)基本概念包括:1 屬性(Attribute):實體所具有的某一特征。(如學生的特征是學號、姓名、-)域(Domain):屬性對應的一組具有相同數(shù)據(jù)類型的值的集合。每個屬性有一個域。(關系模型限定域必須原子性 1NF)2鍵( key)(1)候選鍵(candidate key) 關系的某一屬性或屬性組的值唯一標識一個元組,而其任何真子集無此性質。候選鍵的諸屬性稱為主屬性,不包含在任何候選鍵中的屬性稱為非主屬性。(2)主鍵(primary key)一個關系至少有一個侯選鍵,可以有幾個侯選鍵。一般從侯選鍵中選擇一個作為
2、主鍵(primary key),其他的稱為侯補鍵(alternate key) 每個主鍵的值是不能相同的,(3)外鍵(foreign key)如關系中的屬性或屬性組不是本關系的主鍵,而引用其他關系或本關系的主鍵,則稱為本關系的外鍵。3 關系(Relation):(1)關系:定義在事物的所有屬性域上的多元關系 ,一個關系就是一張二維表。 (2)關系模式:關系的描述稱為關系模式,它可以形式化的表示為R(U,D,DOM,F(xiàn))R 為關系名U為組成該關系的屬性名集合D為屬性組U中屬性所來自的域DOM為屬性向域的映像集合F為屬性間數(shù)據(jù)的依賴關系集合關系模式通常簡記為:R(U)或R(A1,A2,A3,An)
3、關系的三種基本類型基本表:是實際存在的表,它是實際存儲數(shù)據(jù)的邏輯表示。查詢表:是查詢結果對應的表。視圖表:是由基本表或其他視圖導出的表,是虛表,不對應實際存儲內容。二關系操作(一)兩種關系操作1 查詢(Query)查詢可以分為 選擇(SELECT),投影(Project),連接(Join),交(Intersection),并(Union),差(Except),除(Divide),笛卡爾乘積。其中選擇,投影,并,差,笛卡爾乘積是5種基本操作,其他的操作可用這些基本操作定義和導出2 插入(Insert),刪除(Delete),修改(Update)(二)關系操作的特點集合式的操作方式,即操作的對象和
4、結果都是集合。(三)關系數(shù)據(jù)語言可以分為三類1 關系代數(shù)語言2 關系演算語言(元組關系演算和域關系演算)3具有關系代數(shù)和關系演算雙重特點的語言(SQL語言)三 關系完整性約束關系數(shù)據(jù)庫的數(shù)據(jù)必須遵循的約束實體完整性(Entity Integrity ) 參照完整性(Referential Integrity ) 用戶自定義完整性(User-Defined Integrity )實體完整性和參照完整性是關系模型必須滿足的完整性約束條件,被稱為關系的兩個不變性。 (一)實體完整性實體完整性規(guī)則:關系模式R的主屬性值不可為空 指所有主屬性均不可取空值,不僅僅是主鍵不可為空 (二)參照完整性1外鍵(F
5、oreign Key)定義:設F是基本關系R的一個或一組屬性,但不是關系的碼,是基本關系的主碼。如果與相對應,則稱是的外碼(Foreign Key)R稱為參照關系(Referential Relation),S稱為被參照關系(Referenced Relation )2參照完整性規(guī)則若屬性(或屬性組)F是基本關系R的外碼,它與基本關系S的主碼KS相對應(基本關系到R和S不一定是不同關系),則對于R中每個元組在F上的值必須為:(1)等于被參照關系S 中所參照的候選鍵的某個值(2)空值(三)用戶自定義完整性針對某一具體數(shù)據(jù)的約束條件,反映某一具體應用所涉及的數(shù)據(jù)必須滿足的特殊語義由應用環(huán)境決定四
6、關系代數(shù)關系代數(shù)按運算符的不同可分為傳統(tǒng)關系運算和專門關系運算(一)傳統(tǒng)關系運算(交,并,差,笛卡爾乘積)1 (并)R1R2=b 2 d b 3 b c 2 d d 3 b a 3 c e 5 f g 6 62 (交 AND) R1R2= b 2 d c 2 d3 (差) R1R2= b 3 b d 3 b4 (笛卡爾乘積) R1 S = b 2 d 2 d b 2 d 3 b b 3 b 2 d b 3 b 3 b c 2 d 2 d c 2 d 3 b d 3 b 2 d d 3 b 3 b(二)專門關系運算1 選擇(SELECT) (選擇符合條件的元組) () 如: 性別=男(STUDE
7、NT) 表的水平劃分2 投影(Project)(選擇符合條件的屬性) () 如: 學號,姓名 (STUDENT) 表的垂直劃分3 連接操作(Join) 笛卡爾乘積 R S = |tR AND gS(1)連接分為等值連接和自然連接AB 連接操作: R|S 其中A和B分別為R和S上度數(shù)相等且具有可比性的屬性組1)等值連接(為=) R1.A1 R1.A2R1.A3 S.A2 S.A3 如上例 R1 | S = b 2 d 2 d R1.A2=S.A2 b 3 b 3 b c 2 d 2 d d 3 b 3 b 2)自然連接(只有|)一般連接是從行的角度出發(fā)的,但自然連接還要取消重復的列,是從行和列的
8、角度進行運算 S.A2 S.A3R1.A1 R1.A2R1.A3 如 R1 | S = b 2 dB 3 b4 除運算() R1.A1 如R1S = b 在R1上b印象集合是(2,d),(3,d) S在(A1,A2)上的投影為(2,d),(3,d)第二章 關系數(shù)據(jù)庫的標準語言SQL一SQL動詞表SQL功能動詞數(shù)據(jù)查詢SELECT數(shù)據(jù)定義CREATE,DROP,ALTER數(shù)據(jù)操縱INSERT,UPDATE,DELETE數(shù)據(jù)控制GRANT,REVOKE二 數(shù)據(jù)定義操作對象操作方式創(chuàng)建刪除修改模式CREATE SCHEMADROP SCHEMA表CREATE TABLEDROP TABLEALTER
9、 TABLE視圖CREATE VIEWDROP VIEW索引CREATE INDEXDROP INDEX注意SQL通常不提供修改模式定義,修改視圖定義,修改索引定義的操作(一)模式的定義和刪除1模式的定義 CREATE SCHEMA AUTORIZATION 例如:CREATE SCHEMA “s-t” AUTORIZATION wang;(1) 要創(chuàng)建模式,調用該命令的用戶必須具有DBA權限,或者獲得了DBA授予的CREATE SCHEMA權限(2)如果沒指定那么隱含為(3)定義模式,實際上是定義了一個命名空間,在這個空間中可以進一步定義該模式包含的數(shù)據(jù)庫對象,例如基本表,視圖,索引。2模式
10、的刪除 DROP SCHEMA (兩者必選其一) 例如:DROP SCHEMA “s-t” CASCADE;(1)CASCADE(級聯(lián))表示在刪除模式的同時把該模式中所有的數(shù)據(jù)庫對象全部一起刪除。(2)RESTRICT(限制)表示在刪除該模式中已經定義了下屬數(shù)據(jù)庫對象(表,視圖索引),則拒絕該刪除語句。(二)表的定義,刪除和修改1表的定義CREATE TEBLA ( 列級完整性約束, 列級完整性約束 ,)列定義的完整格式: DEFAULT NOT NULL CREATE TEBLA AS 若要定義模式式下的表:CREATE TABLE . (1)數(shù)據(jù)類型 ANSI/ISOOracle字符型Ch
11、ar(n)Char(n)Character(n)Character Varying(n)Varchar2(n)Char Varying(n)數(shù)值型NumericNumberDecimalIntegerIntFloatDoubleReal日期型DateDateTime(2)完整性約束主鍵約束(Primary Key) 實體完整性外鍵約束(Foreign Key) 參照完整性檢查約束(Check) 用戶自定義完整性唯一鍵約束(Unique)非空約束(Null | Not Null)默認值(Defautl)(3)例子 CREATE TABLE student (Sno CHAR(8) PRIMARY
12、 KEY,Sname CHAR(20) UNIQUE,Ssex CHAR(2) DEFALULT 男, Sage SMALLINT CHECK(Sage0)Sdept CHAR(20)CREATE TABLE Course (Cno CHAR(4) PRIMARY KEY,Cname CHAR(40),Cpno CHAR(4) REFERENCES Course(Cno),Ccredit SMALLINT,CHECK (Ccredit 0)CREATE TABLE sc(Sno CHAR(9),Cno CHAR(4),Grade SMALLINT,PRIMARY KEY (Sno,Cno),/
13、注意一定要有括號FOREIGN KEY(Sno) REFERENCES Course(Cno),/sno一定要有括號)(4)說明 1)列約束:在每個列后定義,可以有多個約束子句,不能定義多個列上的約束2)表約束:在全部列定義完成后定義,可以有多個約束子句,多個列上的約束必須使用表約束,單列上的約束可以用列約束,也可用表約束2表的刪除 DROP TABLE CASCADE | RESTRICT(1)CASCADE(級聯(lián))刪除該表沒有任何限制,刪除表的同時,相關的依賴對象(如視圖)也一起刪除。(2)RESTRICT(限制)刪除該表是有限制條件的。欲刪除的表不能被其他表的約束所引用 (如CHECK,
14、FOREIGN KEY等約束),不能有視圖,不能有觸發(fā)器(trigger),不能存儲過程或函數(shù)。(3)缺省情況下是RESTRICT3 表的修改 ALTER TABLE ADD 完整性約束 | MODIFY 完整性約束 | DROP COLUMN | ADD | DROP CONSTRAINT 例如(1)ALTER TABLE StudentADD Dept Varchar2(10)UNIQUE(2)Alter Table StudentDROP COLUMN age(3)AlLTER TABLE StudentMODIFYage number(3) NOT NULL(4)ALTER TABLE
15、 StudentADD CONSTRAINT PK_Student PRIMARY KEY(S#)(5)ALTER TABLE SC DROP CONSTRAINT FK_SC(三)視圖的定義和刪除1視圖的定義 CREATE VIEW (列名1,列名2,)/列名一定要放在括號里 AS WITH CHECK OPTION |WITH READ ONLY例如:CREATE VIEW cs_view (sno, name, age)AS SELECT s#, sname, ageFROM student WHERE Dept = 計算機系 WITH READ ONLY;(1)WITH CHECK O
16、PTION表示對視圖進行UPTATE,INSERT,DELETE操作時要保證更新,插入,刪除的行滿足視圖定義中的謂詞條件(即子查詢中的條件表達式) WITH READ ONLY表示視圖是只讀的(2)視圖的屬性列名只能是全部缺省或全部指定,沒有別的選擇。但在下列兩種情況下必須明確指定組成視圖的列名。 1)某個目標列不是單純的屬性名,而是聚集函數(shù)或列表達式。 2)多表連接時選出幾個同名列作為視圖的字段。(3)子查詢可以是任意的SELECT子句,但通常不允許含有OREER BY 子句各DISDINCT短語。(4)不是所有視圖都是可更新的1)基于聯(lián)接查詢的視圖不可更新2)使用了函數(shù)的視圖不可更新3)使
17、用了分組操作的視圖不可更新4)只有建立在單個表上而且沒有使用函數(shù)的視圖才是可更新的2 視圖的刪除 DROP VIEW CASCADE(四)索引的定義和刪除1索引的定義CREATE UNIQUE | CLUSTER INDEX ON ( , )例如:CREATE UNIQUE INDEX SCno on SC(Sno ASC,Cno DESC);(1)UNIQUE表明此索引的每一個索引值只對應唯一的數(shù)據(jù)記錄(2)CLUSTER表示要建立的索引是聚簇索引。聚簇索引是指索引項的順序與表中的物理順序一致的索引組織,在一個表上只能建立一個聚簇索引。(3)次序可選ASC(升序)或DESC(降序)缺省值為A
18、SC2索引的刪除DROP INDEX DROP INDEX SCno;三 數(shù)據(jù)更新(一)插入數(shù)據(jù)INSERT插入數(shù)據(jù)通常有兩種形式,一種是插入一個元組,另一種是插入子查詢結果。后者可以一次插入多個元組。1 插入一個元組INSERT INTO ( ,)VALUES( ,) 例如 INSERT INTO Student (Sno, Sname, Ssex, Sdept, Sage)VALUES (20081512, 陳冬 , 男 , IS , 18);INTO 語句中沒有出現(xiàn)的屬性列,新元組在這些列上將取空值或默認值。在INTO子句中只指出了表名,沒有指出屬性名,新元組要在所有屬性列上都指定值,屬
19、性列的次序與CREATE TABLE 中的次序相同。2 插入子查詢結果INSERT INTO ( ,)子查詢;例如INSERT INTO Dept_age( Sdept ,Avg_age)SELECT Sdept ,AVG(Sage)FROM StudentGROUP BY Sdept;(二)修改數(shù)據(jù) UPDATE SET =,= WHERE ;例如:UPDATE Student SET Sage=22 WHERE Sno=200215021;(三)刪除數(shù)據(jù)DELETE FROMWHERE ;例如:DELETE FROM Student WHERE Sno=20021528;DELETE語句刪
20、除的是表中的數(shù)據(jù),而不是關于表的定義。四 數(shù)據(jù)查詢基本數(shù)據(jù)查詢的格式:SELECT ALL | DISTINCT AS,ASFROM ,WHEREGROUP BY HAVINGORDER BY ASC|DESC; (一)單表查詢在一個表中查詢數(shù)據(jù) 1* 查詢查詢全部記錄:查詢全部的學生信息SELECT * FROM Student;*表示所有列等同于SELECT s#, sname, age, sex FROM Student2使用別名(AS或空格) 使用別名:查詢所有學生的學號和姓名SELECT s# AS 學號, sname AS 姓名 FROM Student如果別名包含空格,須使用雙引
21、號SELECT s# AS “Student Number” FROM Student3表達式查詢(三種表達式,字符串表達式,算術表達式,函數(shù)表達式)(1)字符串表達式查詢所有學生的學號、姓名和出生年份,返回兩列信息,其中一列是“學號:姓名”,另一列是出生年份SELECT s# | “:”| sname AS 學生,2003age AS 出生年份 FROM Student說明連接字符串 | 表示則多個查詢列連接為一個列輸出。(2)算術表達式查詢學生的出生年份SELECT 2003age AS 出生年份 FROM Student;(3)函數(shù)表達式SELECT sno, to_char(birth
22、, mm-dd-yyyy) AS birthday FROM StudentSELECT Count(sno) As 學生人數(shù) FROM Student4條件查詢(1)WHERE條件注:1)在where子句中使用列名和表達式,但不能使用別名。2)在where子句中使用數(shù)值時,既可以用單引號也可以不用單引號,使用日期值字符值時,都必須使用單引號,并且日期值的格式必須要符合數(shù)據(jù)庫中支持的日期格式,否則必須事先使用to_date函數(shù)將其轉換成為數(shù)據(jù)庫中支持的日期格式。oracle 中日期的默認格式為: 01-1月-82在輸入查詢條件時,可以用to_date(1998-01-01,yyyy-mm-dd
23、) 3)在SQL語句中,命令不區(qū)分大小寫,但字符串區(qū)分大小寫WHERE子句中的關系運算符:比較操作符:, =, =, =, 邏輯操作符:AND OR NO其他操作符:INBETWEEN ANDIS NULL和IS NOT NULLLIKEEXISTS 例如: 1)IN:查詢s001,s003,s006和s008四學生的信息SELECT * FROM StudentWHERE s# IN (s001,s003,s006,s008)2)IS NOT NULL:查詢缺少年齡數(shù)據(jù)的學生SELECT * FROM Student WHERE age IS NULLLIKE:查詢姓名的第一個字母為R的學生
24、SELECT * FROM Student WHERE sname LIKE R%:任意長度的字符串_:單個字符(一個漢字占兩個字節(jié))注意:LIKE只能用于字符串的匹配,不能用于其他類型。查詢姓名的第一個字母為R并且倒數(shù)第二個字母為S的學生SELECT * FROM Student WHERE sname LIKE R%S_多個比較式可用NOT、AND和OR連接SELECT * FROM Student WHERE age IS NULL and sname LIKE R%3)若要查詢通配符可以用轉義字符 escape character 通常 character 用 (2)去除重復記錄(DI
25、STINCT)查詢學生的姓名SELECT Distinct sname FROM StudentDISTINCTt只對記錄有效,不針對某個特定列SELECT Distinct sname, age FROM Student(3)排序查詢(ORDER BY)注:1)order by只能對最終查詢結果進行排序,也就是說其只能放在查詢語句的最后一條。2)可以使用列的別名,列的位置進行排序。3)在大多數(shù)情況下,指定的排序列(order by 列名)都是選擇列(select 列名),但排序 列也可以不是選擇列。但如果在select 語句中使用了distinct關鍵字,則排序列必須 是選擇列了。查詢所有學
26、生信息并將結果按年齡升序排列SELECT * FROM Student ORDER By age將結果按年齡升序排列,按姓名降序排列SELECT * FROM StudentORDER By age ASC,sname DESCASC表示升序,DESC表示降序(4)聚集函數(shù) 注: 1)聚集函數(shù)和group by 子句聯(lián)合使用,表示對每個組進行統(tǒng)計,否則將所有數(shù)據(jù)行當 成一個組進行統(tǒng)計。 2)聚集函數(shù)只能出現(xiàn)在選擇列表、order by子句、having子句中,而不能出現(xiàn)在where 和group by 子句中。 3)除了count(*)外,其他聚集函數(shù)都會忽略null行。 4)聚集函數(shù)中可以指
27、定all和distinct選項。其中all是默認選項,表示統(tǒng)計所有的行(包 括重復行),而distinct只統(tǒng)計不同的行。count(distinct sal) (DISTINCT | ALL) COUNT(列名):對一列中的值計數(shù)COUNT(*):計算記錄個數(shù)SUM(列名):求一列值的總和(數(shù)值)AVG (列名):求一列值的平均值MIN (列名):求一列值的最小值MAX (列名):求一列值的最大值例子:求學生的總人數(shù)SELECT count(*) FROM student求選修了課程的學生人數(shù)SELECT COUNT(DISTINCT s#) FROM SC求學生的平均年齡SELECT av
28、g(age) as average_age FROM student(5)分組查詢(GROUP BY) 1)基本格式 group by 列名1,列名2 having 條件 ORDER by 列名 查詢男生和女生的平均年齡SELECT sex, AVG(age) as Average_age FROM StudentGroup By sex注意:除聚集函數(shù)外的屬性必須全部出現(xiàn)在Group By子句中 2)返回特定的分組結果(HAVEING)查詢不同年齡的學生人數(shù),并返回人數(shù)在5人以上的結果SELECT age, COUNT(*) as students FROM StudentGroup By
29、ageHaving COUNT(*) 5Having子句中必須聚集函數(shù)的比較式,而且聚集函數(shù)的比較式也只能通過Having子句給出Having中的聚集函數(shù)可與SELECT中的不同查詢人數(shù)在60以上的各個班級的學生平均年齡SELECT class, AVG(age) FROM StudentGroup By classHaving COUNT(*) 60(6)使用rollup和cube限定詞 Rollup 用于生成橫向統(tǒng)計結果 SQL select deptno,job,avg(sal),max(sal) from emp 2 group by rollup(deptno,job); DEPTN
30、O JOB AVG(SAL) MAX(SAL)- - - - 10 CLERK 1300 1300 10 MANAGER 2450 2450 10 PRESIDENT 5000 5000 10 2916.66667 5000 20 CLERK 950 1100 20 ANALYST 3000 3000 20 MANAGER 2975 2975 20 2175 3000 30 CLERK 950 950 30 MANAGER 2850 2850 30 SALESMAN 1400 1600 30 1566.66667 2850 2073.21429 5000 Cube 用于生成縱向統(tǒng)計結果 SQL
31、 select deptno,job,avg(sal),max(sal) from emp 2 group by cube (deptno,job); DEPTNO JOB AVG(SAL) MAX(SAL)- - - - 2073.21429 5000 CLERK 1037.5 1300 ANALYST 3000 3000 MANAGER 2758.33333 2975 SALESMAN 1400 1600 PRESIDENT 5000 5000 10 2916.66667 5000 10 CLERK 1300 1300 10 MANAGER 2450 2450 10 PRESIDENT 5
32、000 5000 20 2175 3000 20 CLERK 950 1100 20 ANALYST 3000 3000 20 MANAGER 2975 2975 30 1566.66667 2850 30 CLERK 950 950 30 MANAGER 2850 2850 30 SALESMAN 1400 1600(二)連接查詢一個查詢同時涉及兩個以上的表,則稱之為連接查詢。SELECT ,FROM ,WHERE1 等值連接和非等值連接注:在連接查詢中應在列前加上表作為前綴,但如果列名在不同的表中不同,則可以不加表名限制,否則必須加。當指定表的別名時,別名應跟在表名后面。例如:SQL se
33、lect d.deptno , d.dname, e.ename, e.sal 2 from dept d,emp e 3 where d.deptno=e.deptno 4 and d.deptno=20;1)等值連接查詢學生的學號,姓名和所選課程號SELECT student.s#, student.sname,sc.c#FROM student,scWHERE student.s# = sc.s# 聯(lián)接條件2)非等值連接 SELECT SC.S# , Course.credit FROM SC,Course WHERE SC.C# I IN Course.C#2自然連接 若在等值連接中把
34、目標列中重復的屬性列去掉則為自然連接3自身連接 給一個表定義兩個或多個不同的別名,就可以像使用這兩個別名進行連接查詢。 SELECT FIRST.Cno, SECOND.Cpno FROM Course FIRST , Course SECOND WHERE FIRST.Cpno=SECOND.Cno4外連接查詢 外連接分為左外連接和右外連接 左外連接列出左邊關系中所有的元組 右外連接列出右邊關系中所有的元組SELECT ,FROM LEFT|RIGHT OUT JOIN USING ON (連接條件)USING去掉重復行5復合條件查詢 WHERE子句中可以有多個連接條件,稱為復合條件連接。(
35、三)嵌套查詢在SQL語言中,一個SELECT-FROM-WHERE語句稱為一個查詢塊。將一個查詢塊嵌套在另一個查詢塊的WHERE子句或HAVING短語的條件中的查詢稱為嵌套查詢。1 無關子查詢父查詢與子查詢相互獨立,子查詢語句不依賴父查詢中返回的任何記錄,可以獨立執(zhí)行查詢沒有選修課程的所有學生的學號和姓名SELECT s#,snameFROM studentWHERE s# NOT IN ( SELECT distinct s# FROM sc)子查詢返回選修了課程的學生學號集合,它與外層的查詢無依賴關系,可以單獨執(zhí)行無關子查詢一般與IN一起使用,用于返回一個值列表2 相關子查詢相關子查詢的結
36、果依賴于父查詢的返回值查詢選修了課程的學生學號和姓名SELECT s#, snameFROM studentWHERE EXISTS (SELECT * FROM sc WHERE sc.s# = student.s#)相關子查詢不可單獨執(zhí)行,依賴于外層查詢EXISTS(子查詢):當子查詢返回結果非空時為真,否則為假執(zhí)行分析:對于student的每一行,根據(jù)該行的s#去sc中查找有無匹配記錄3 連接視圖子查詢出現(xiàn)在FROM子句中作為表使用查詢只選修了1門或2門課程的學生學號、姓名和課程數(shù)SELECT s#, count_c#FROM (SELECT s.s# as s#, count(sc.s
37、#) as count_c# FROM student s, sc WHERE s.s#=sc.s# Group by s.s#) SC2, studentWHERE sc2.s# = student.s# and (count_c#=1 OR count_c#=2)聯(lián)機視圖可以和其它表一樣使用(四)查詢結果的連接Union和Union AllMinusIntersect1 Union和Union All查詢課程平均成績在90分以上或者年齡小于20的學生學號(SELECT s# FROM student WHERE age90) SC2)UNION操作自動去除重復記錄UNION All操作不去
38、除重復記錄2 Minus查詢未選修課程的學生學號(SELECT s# FROM Student)Minus(SELECT distinct s# FROM SC)3 Intersect返回兩個查詢結果的交集查詢課程平均成績在90分以上并且年齡小于20的學生學號(SELECT s# FROM student WHERE age90) SC2)五 授權 (一)創(chuàng)建數(shù)據(jù)庫模式的權限CREATE USER WITH DBA | RESOURCE | CONNECT1 對數(shù)據(jù)庫模式的授權由DBA在創(chuàng)建用戶時實現(xiàn)2 新創(chuàng)建的用戶有三種權限擁有的權限可否執(zhí)行的操作CREATE USERCREATE SCHE
39、MACREATE TABLE登錄數(shù)據(jù)庫執(zhí)行查詢和操作DBA可以可以可以可以RESOURCE不可以不可以可以可以CONNECT不可以不可以不可以可以但必須擁有相應權限(二)授權和回收關系數(shù)據(jù)庫系統(tǒng)中的存取權限對象類型對象操作類型(權限)數(shù)據(jù)庫模式CREATE SCHEMA基本表CREATE TABEL ,ALTER TEBLE模式視圖CREATE VIEW索引CREATE INDEX數(shù)據(jù)基本表和視圖SELECT,INSERT,UPDATE,DELETE,REFERENCES,ALL PRIVILEGES數(shù)據(jù)屬性列SELECT,INSERT,UPDATE,DELETE,REFERENCES,ALL
40、 PRIVILEGES1 授權GRANT ,ON , TO ,WITH GRANT OPTION ; 例如:GRANT SELECT ON TABLE StudentTO U1 WITH GRANT OPTION(1)WITH GRANT OPTION表示獲得某種權限后的用戶,還可以把這種權限授予其他用戶。如果沒有此句,則不能傳播該權限(2)用戶可以是PUBLIC即全體用戶2 回收REVOKE , ON ,FROM , CASCADE | RESTRICT;例如:REVOKE SELECT ON TABLE Student FROM U1 CASCADE;(三)數(shù)據(jù)庫角色1 創(chuàng)建角色CREAT
41、E ROLE ;例如:CREATE ROLE R1;數(shù)據(jù)庫角色是被命名的一組與數(shù)據(jù)庫操作相關的權限,角色是權限集合2 給角色授權 GRANT , ON , TO ,; 例如:GRANT SELECT,UPDATE,INSERT ON TABLE Student TO R1;3 將一個角色授予其他角色或用戶GRANT ,TO , WITH ADMIN OPTIONWITH ADMIN OPTION 表示獲得某權限的角色或用戶還可以把這種權限再授予其他角色或用戶例如:GRANT R1 TO wang;4 角色權限回收REVOKE , ON ,FROM , ;例如:REVOKE R1 FROM wa
42、ng;六 完整性約束命名子句完整性約束條件可以在CREATE TABLE語句中定義。SQL還在CREATE TABLE語句中提供了完整性約束命名子句CONSTRAINT,用來對完整性約束條件命名。1 創(chuàng)建完整性約束CONSTRAINTPRIMARY KEY 短語 | FOREIGN KEY短語| CHECK短語例如:CREATE TEBLE Student (Sno NUMERIC(6)CONSTRAINT C1 CHECK(Sno BETWEEN 90000 AND 999999)Sname CHAR(20) CONSTRAINT C2 NOT NULL, Sage NUMERIC(3)CO
43、NSTRAINT C3 CHECK(Sage30), Ssex CHAR(2)CONSTRAINT C4 CHECK (Ssex IN(男 , 女), CONSTRAINT StudentKey PRIMARY KEY (Sno));2 修改完整性約束 例如:ALTER TABLE Student DROP CONSTRAINT C4;ALTER TABLE StudentADD CONSTRAINT C5 CHECK (Sage40);七 觸發(fā)器CREATE TRIGGERBEFORE | AFTER ON FOR EACH ROW| STATEMENTWHEN第三章 關系數(shù)據(jù)庫理論一 關系模式(回顧)一個關系模式應當是一個五元組。 R(U,D,DOM,F(xiàn))R 為關系名U為組成該關系的屬性名集合D為屬性組U中屬性所來自的
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 醫(yī)學資料 PDCA抗菌藥物臨床應用管理學習課件
- 工廠質量管理培訓課件
- 護師晉升護師述職報告
- 2025至2030年中國水楊酸硅烷醇C行業(yè)發(fā)展研究報告
- 大班生活中的防盜安全教育
- 2025至2030年中國數(shù)控風閥跳汰機行業(yè)發(fā)展研究報告
- 大學生校園安全知識講座
- 醫(yī)療設備冷卻系統(tǒng)維護
- 工人徒弟工作總結
- 護理投訴管理制度流程
- 大學物理第8章-機械振動
- 《線面平行的判定》課件
- 《電力工程電纜設計規(guī)范》
- 與發(fā)包人、監(jiān)理及設計人的配合
- 2022-2023學年北京市懷柔區(qū)八年級下學期期末語文試題及答案
- 腹腔壓力監(jiān)測演示文稿
- 《匆匆》朱自清ppt課件-小學語文六年級
- 高中生讀后續(xù)寫現(xiàn)狀調查報告1 論文
- 汽油機振動棒安全操作規(guī)程
- 認證咨詢機構設立審批須知
- 項目式學習 知甜味百劑 享“甜蜜”人生 阿斯巴甜合成路線的設計 上課課件
評論
0/150
提交評論