




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、刘安丰刘安丰()1数据库原理及应用数据库原理及应用数据库原理及应用数据库原理及应用principle and application of database第三章第三章 关系数据库标准语言关系数据库标准语言sqlsql(续)(续)刘安丰刘安丰()2数据库原理及应用数据库原理及应用掌握掌握sql的数据更新的数据更新掌握掌握sql的视图使用的视图使用掌握掌握sql的数据控制的数据控制刘安丰刘安丰()3数据库原理及应用数据库原理及应用插入数据:插入数据:有插入单个元组、插入子查询结果两种方式有插入单个元组、插入子查询结果两种方式 。插入单个元组插入单个元组语句格式:语句格式: insert into
2、 (,) values ( , )功能:功能:将新元组插入指定表中。将新元组插入指定表中。 其中:其中:into子句指定要插入数据的表名及属性列,属性列的子句指定要插入数据的表名及属性列,属性列的顺序可与表定义中的顺序不一致。若没有指定属性列,则表顺序可与表定义中的顺序不一致。若没有指定属性列,则表示要插入的是一条完整的元组,且属性列属性与表定义中的示要插入的是一条完整的元组,且属性列属性与表定义中的顺序一致;若指定部分属性列,则插入的元组在其余属性列顺序一致;若指定部分属性列,则插入的元组在其余属性列上取空值。上取空值。values子句提供的值必须与子句提供的值必须与into子句在值的个子句
3、在值的个数和值的类型上匹配数和值的类型上匹配 。刘安丰刘安丰()4数据库原理及应用数据库原理及应用例例1将一个新学生记录将一个新学生记录(95020,陈冬,男,陈冬,男,is,18岁)插入到岁)插入到student表中。表中。 insert into student values (95020,陈冬陈冬,男男,is,18);例例2插入一条选课记录插入一条选课记录( 95020,1 )。 insert into sc(sno,cno) values ( 95020 , 1 ); 新插入的记录在新插入的记录在grade列上取空值。列上取空值。插入子查询结果插入子查询结果语句格式语句格式 inser
4、t into ( , ) 子查询;子查询;功能:功能:将子查询结果插入指定表中。将子查询结果插入指定表中。 其中:其中:into、select子句的说明与插入单条元组类似。子句的说明与插入单条元组类似。刘安丰刘安丰()5数据库原理及应用数据库原理及应用例例3对每一个系,求学生的平均年龄,并把结果存入数据库。对每一个系,求学生的平均年龄,并把结果存入数据库。首先建表:首先建表: create table deptage (sdept char(15) , avgage smallint); /* 定义系名和学生平均年龄定义系名和学生平均年龄*/然后插入数据:然后插入数据: insert into
5、 deptage(sdept,avgage) select sdept,avg(sage) from student group by sdept;注意点:注意点:无论是插入单个元组,还是插入子查询结果,无论是插入单个元组,还是插入子查询结果, dbms在执行插入语句时会自动检查所插元组是否破坏表上已定义的在执行插入语句时会自动检查所插元组是否破坏表上已定义的完整性规则完整性规则(实体完整性、参照完整性、用户定义的完整性实体完整性、参照完整性、用户定义的完整性): 对于有对于有not null约束的属性列是否提供了非空值;约束的属性列是否提供了非空值; 对于有对于有unique约束的属性列是否
6、提供了非重复值;约束的属性列是否提供了非重复值; 对于有值域约束的属性列所提供的属性值是否在值域范围内。对于有值域约束的属性列所提供的属性值是否在值域范围内。 刘安丰刘安丰()6数据库原理及应用数据库原理及应用修改数据:修改数据:有修改某一个元组的值、修改多个元组的值、带子有修改某一个元组的值、修改多个元组的值、带子查询的修改三种方式,查询的修改三种方式, dbms也会自动检查三类完整性规则。也会自动检查三类完整性规则。语句格式语句格式 update set =,= where ;功能:功能:修改指定表中满足修改指定表中满足where子句条件的元组。子句条件的元组。 其中:其中:set子句指定
7、修改方式、要修改的列和修改后的取值;子句指定修改方式、要修改的列和修改后的取值;where子句指定要修改的元组,缺省表示修改表中所有元组子句指定要修改的元组,缺省表示修改表中所有元组修改某一个元组的值修改某一个元组的值例例4将学生将学生95001的年龄改为的年龄改为22岁。岁。 update student set sage=22 where sno= 95001 ; 刘安丰刘安丰()7数据库原理及应用数据库原理及应用修改多个元组的值修改多个元组的值例例5将所有学生的年龄增加将所有学生的年龄增加1岁。岁。 update student set sage= sage+1; 将信息系所有学生的年龄
8、增加将信息系所有学生的年龄增加1岁。岁。 update student set sage= sage+1 where sdept= is ;带子查询的修改语句带子查询的修改语句例例6将计算机系全体学生的成绩置零。将计算机系全体学生的成绩置零。 update sc set grade=0 where cs= (selete sdept from student where student.sno = sc.sno);刘安丰刘安丰()8数据库原理及应用数据库原理及应用删除数据:删除数据:有删除某一个元组的值、删除多个元组的值、带子有删除某一个元组的值、删除多个元组的值、带子查询的删除三种方式。查询
9、的删除三种方式。dbms在执行删除语句时会检查所删元在执行删除语句时会检查所删元组是否破坏表上已定义的参照完整性规则组是否破坏表上已定义的参照完整性规则(不允许删除或级联不允许删除或级联删除删除)。语句格式:语句格式:delete from where ;功能:功能:删除指定表中满足删除指定表中满足where子句条件的元组。子句条件的元组。 其中:其中:where子句指定要删除的元组,缺省表示要修改表中子句指定要删除的元组,缺省表示要修改表中的所有元组。的所有元组。删除某一个元组的值删除某一个元组的值例例7删除学号为删除学号为95019的学生记录。的学生记录。 delete from stud
10、ent where sno=95019;刘安丰刘安丰()9数据库原理及应用数据库原理及应用删除多个元组的值删除多个元组的值例例8删除所有的学生选课记录。删除所有的学生选课记录。 delete from sc;带子查询的删除带子查询的删除例例9删除计算机系所有学生的选课记录。删除计算机系所有学生的选课记录。 delete from sc where cs= (selete sdept from student where student.sno=sc.sno);数据更新与数据一致性:数据更新与数据一致性:dbms在执行插入、删除、更新语句在执行插入、删除、更新语句时必须保证数据库一致性:即必须有
11、事务的概念和原子性、必时必须保证数据库一致性:即必须有事务的概念和原子性、必须有完整性检查和保证。须有完整性检查和保证。刘安丰刘安丰()10数据库原理及应用数据库原理及应用视图的特点视图的特点视图是视图是rdbms提供给用户以多种角度观察数据库中数据的重提供给用户以多种角度观察数据库中数据的重要机制。要机制。虚表,是从一个或几个基本表虚表,是从一个或几个基本表(或视图或视图)导出的表。导出的表。只存放视图的定义,不会出现数据冗余。只存放视图的定义,不会出现数据冗余。基表中的数据发生变化,从视图中查询出的数据也随之改变。基表中的数据发生变化,从视图中查询出的数据也随之改变。基于视图的内容:基于视
12、图的内容:定义视图定义视图查询视图查询视图更新视图更新视图视图的作用视图的作用刘安丰刘安丰()11数据库原理及应用数据库原理及应用定义视图定义视图建立视图建立视图语句格式:语句格式:create view ( ,) as with check option;功能:功能:dbms将视图的定义存入数据字典,并不执行其中的将视图的定义存入数据字典,并不执行其中的select语句,查询视图时,按其定义从基本表中将数据查出语句,查询视图时,按其定义从基本表中将数据查出说明:说明:组成视图的属性列名或全部省略或全部指定。若全部省组成视图的属性列名或全部省略或全部指定。若全部省略,则该视图由子查询中略,则该
13、视图由子查询中select目标列中的诸字段组成;但目标列中的诸字段组成;但下述三种情况必须明确指定组成视图的所有列名:某个目标列下述三种情况必须明确指定组成视图的所有列名:某个目标列是集函数或列表达式、多表连接时选出了几个同名列作为视图是集函数或列表达式、多表连接时选出了几个同名列作为视图的字段、需要在视图中为某个列启用新的更合适的名字。的字段、需要在视图中为某个列启用新的更合适的名字。刘安丰刘安丰()12数据库原理及应用数据库原理及应用常见的视图形式常见的视图形式行列子集视图行列子集视图with check option的视图的视图基于多个基表的视图基于多个基表的视图基于视图的视图基于视图的
14、视图带表达式的视图带表达式的视图分组视图分组视图一类不易扩充的视图一类不易扩充的视图刘安丰刘安丰()13数据库原理及应用数据库原理及应用行列子集视图:行列子集视图:从单个基本表导出,建立的视图只是去掉了基从单个基本表导出,建立的视图只是去掉了基本表的某些行和某些列,但保留了码。本表的某些行和某些列,但保留了码。例例1建立信息系学生的视图。建立信息系学生的视图。 create view is_student as select sno,sname,sage from student where sdept= is;with check option视图:视图:表示对视图进行增删改操作时表示对视图
15、进行增删改操作时不得破坏视图定义中的谓词条件不得破坏视图定义中的谓词条件(即子查询中的条件表达式即子查询中的条件表达式)。例例2建立信息系学生的视图,并要求透过该视图进行的更新操作建立信息系学生的视图,并要求透过该视图进行的更新操作只涉及信息系学生。只涉及信息系学生。 create view is_student as select sno,sname,sage from student where sdept= is with check option;刘安丰刘安丰()14数据库原理及应用数据库原理及应用 对对is_student视图的更新操作:视图的更新操作: 修改操作:修改操作:dbms
16、自动加上自动加上sdept= is的条件。的条件。 删除操作:删除操作:dbms自动加上自动加上sdept= is的条件。的条件。 插入操作:插入操作:dbms会自动检查会自动检查sdept属性值是否为属性值是否为is ,如果不是,则拒,如果不是,则拒绝该插入操作;如果没有提供绝该插入操作;如果没有提供sdept属性值,则自动定义属性值,则自动定义sdept为为is。基于多个基表的视图基于多个基表的视图例例3建立信息系选修了建立信息系选修了1号课程的学生视图。号课程的学生视图。 create view is_s1(sno,sname,grade) as select student.sno,s
17、name,grade from student,sc where sdept= is and student.sno=sc.sno and sc.cno= 1;刘安丰刘安丰()15数据库原理及应用数据库原理及应用基于视图的视图:视图可建立在一个或多个已定义的视图上。基于视图的视图:视图可建立在一个或多个已定义的视图上。例例4建立信息系选修了建立信息系选修了1号课程且成绩在号课程且成绩在90分以上的学生视图。分以上的学生视图。 create view is_s2 as select sno,sname,grade from is_s1 where grade=90;带表达式的视图:必须明确定义组
18、成视图的各个属性列名。带表达式的视图:必须明确定义组成视图的各个属性列名。例例5定义一个反映学生出生年份的视图。定义一个反映学生出生年份的视图。 create view bt_s(sno,sname,sbirth) as select sno,sname,2005-sage from student; 由于视图中的数据并不实际存储,所以可根据需要设置一些派生属性列由于视图中的数据并不实际存储,所以可根据需要设置一些派生属性列(也也称虚拟列称虚拟列),如本例中的,如本例中的sbirth 。刘安丰刘安丰()16数据库原理及应用数据库原理及应用分组视图:带有集函数和分组视图:带有集函数和group
19、by子句查询的视图。子句查询的视图。例例6将学生的学号及他的平均成绩定义为一个视图。将学生的学号及他的平均成绩定义为一个视图。 creat view s_g(sno,gavg) as select sno,avg(grade) from sc group by sno;一类不易扩充的视图:一类不易扩充的视图:以以 select * 方式创建的视图,其可扩方式创建的视图,其可扩充性差,应尽可能避免。充性差,应尽可能避免。例例7将将student表中所有女生记录定义为一个视图。表中所有女生记录定义为一个视图。 create view f_student1(stdnum,name,sex,age,d
20、ept) as select * from student where ssex=女女; 缺点:缺点:修改基表修改基表student的结构后,的结构后,student表与表与f_student1视图的映象关系被破坏,导致该视图不能正确工作。视图的映象关系被破坏,导致该视图不能正确工作。刘安丰刘安丰()17数据库原理及应用数据库原理及应用 解决方法:为基表解决方法:为基表student增加属性列不会破坏增加属性列不会破坏student基表基表与与f_student2视图的映象关系。视图的映象关系。 create view f_student2 (stdnum,name,sex,age,dept)
21、 as select sno,sname,ssex,sage,sdept from student where ssex=女女;删除视图删除视图语句格式:语句格式:drop view ;功能:功能:从数据字典中删除指定的视图定义。视图删除后,由该从数据字典中删除指定的视图定义。视图删除后,由该视图导出的其他视图定义仍在数据字典中,但这些视图已不能视图导出的其他视图定义仍在数据字典中,但这些视图已不能使用,必须使用使用,必须使用drop view显式删除。基表删除后,由该基显式删除。基表删除后,由该基表导出的所有视图定义没有被删除,但却无法使用,必须使用表导出的所有视图定义没有被删除,但却无法使
22、用,必须使用drop view显式删除。显式删除。 例例88删除视图删除视图is_s1。 drop view is_s1;刘安丰刘安丰()18数据库原理及应用数据库原理及应用查询视图:查询视图:视图定义后,用户可以象对基本表一样对视图进行视图定义后,用户可以象对基本表一样对视图进行查询。查询。dbms实现视图查询时,首先进行有效性检查,检查所实现视图查询时,首先进行有效性检查,检查所查询的表、视图是否存在。若存在,则从数据字典中取出视图查询的表、视图是否存在。若存在,则从数据字典中取出视图的定义,把定义中的子查询和用户的查询结合起来,转换成等的定义,把定义中的子查询和用户的查询结合起来,转换成
23、等价的对基本表的查询,然后再执行修正了的查询。这一转换过价的对基本表的查询,然后再执行修正了的查询。这一转换过程称为视图消解程称为视图消解(view resolution)。刘安丰刘安丰()19数据库原理及应用数据库原理及应用例例1在信息系学生的视图中找出年龄小于在信息系学生的视图中找出年龄小于20岁的。岁的。 select sno,sage from is_student where sage20;is_student视图的定义视图的定义 (视图定义例视图定义例1)为:为: create view is_student as select sno,sname,sage from studen
24、t where sdept= is; 采用视图消解法转换后的查询语句为:采用视图消解法转换后的查询语句为: select sno,sage from student where sdept= is and sage=90=90分的学生学号和平均成绩。分的学生学号和平均成绩。 select * from s_g where gavg=90; s_g视图定义如下:视图定义如下: create view s_g (sno,gavg) as select sno,avg(grade) from sc group by sno; 错误的转换:错误的转换: select sno,avg(grade) fr
25、om sc where avg(grade)=90 group by sno; 正确的转换:正确的转换:select sno,avg(grade) from sc group by sno having avg(grade)=90;刘安丰刘安丰()21数据库原理及应用数据库原理及应用更新视图:更新视图:通过视图实现插入、删除和修改数据。由于视图是通过视图实现插入、删除和修改数据。由于视图是不实际存储数据的虚表,因此对视图的更新最终要转换为对基不实际存储数据的虚表,因此对视图的更新最终要转换为对基本表的更新。本表的更新。 dbms实现对视图的更新也是采用视图消解法。实现对视图的更新也是采用视图消
26、解法。用户指定用户指定with check option子句后,子句后,dbms在更新视图时在更新视图时会进行检查,防止用户通过视图对不属于视图范围内的基本表会进行检查,防止用户通过视图对不属于视图范围内的基本表数据进行更新。数据进行更新。例例1将视图将视图is_student中学号中学号95002的学生姓名改为刘辰。的学生姓名改为刘辰。 update is_student set sname= 刘辰刘辰 where sno= 95002; 转换后的语句:转换后的语句:update student set sname= 刘辰刘辰 where sno= 95002 and sdept= is;刘
27、安丰刘安丰()22数据库原理及应用数据库原理及应用例例2向信息系学生视图向信息系学生视图is_s中插入一个新的学生记录:中插入一个新的学生记录:95029,赵新,赵新,20岁。岁。 insert into is_student values(95029,赵新赵新,20); 转换为对基本表的更新:转换为对基本表的更新: insert into student(sno,sname,sage,sdept) values(95029,赵新赵新,20,is );例例3删除视图删除视图cs_s中学号为中学号为95029的记录。的记录。 delete from is_student where sno= 9
28、5029; 转换为对基本表的更新:转换为对基本表的更新: delete from student where sno= 95029 and sdept= is;刘安丰刘安丰()23数据库原理及应用数据库原理及应用更新视图的限制:更新视图的限制:一些视图是不可更新的,因为对这些视图的一些视图是不可更新的,因为对这些视图的更新不能唯一地有意义地转换成对相应基本表的更新。更新不能唯一地有意义地转换成对相应基本表的更新。 例视图例视图s_g为不可更新视图:为不可更新视图: create view s_g (sno,gavg) as select sno,avg(grade) from sc group
29、 by sno; 对于如下更新语句用消解法无法将其转换成对基本表对于如下更新语句用消解法无法将其转换成对基本表sc的更新的更新 update s_g set gavg=90 where sno= 95001;实际系统对视图更新的限制实际系统对视图更新的限制允许对行列子集视图进行更新。允许对行列子集视图进行更新。对其他类型视图的更新不同对其他类型视图的更新不同dbmsdbms有不同的限制。有不同的限制。刘安丰刘安丰()24数据库原理及应用数据库原理及应用一般一般dbms对视图更新的限制:对视图更新的限制:若视图是由两个以上基本表导出的,则此视图不允许更新。若视图是由两个以上基本表导出的,则此视图
30、不允许更新。若视图的字段来自字段表达式或常数,则不允许对此视图执行若视图的字段来自字段表达式或常数,则不允许对此视图执行insert和和update操作,但允许执行操作,但允许执行delete操作。操作。若视图的字段来自集函数,则此视图不允许更新。若视图的字段来自集函数,则此视图不允许更新。若视图定义中含有若视图定义中含有group by子句,则此视图不允许更新。子句,则此视图不允许更新。若视图定义中含有若视图定义中含有distinct短语,则此视图不允许更新。短语,则此视图不允许更新。一个不允许更新的视图上定义的视图也不允许更新。一个不允许更新的视图上定义的视图也不允许更新。若视图定义中有嵌
31、套查询,并且内层查询的若视图定义中有嵌套查询,并且内层查询的from子句中涉及子句中涉及的表也是导出该视图的基本表,则此视图不允许更新。的表也是导出该视图的基本表,则此视图不允许更新。刘安丰刘安丰()25数据库原理及应用数据库原理及应用例将例将sc中成绩在平均成绩之上的元组定义成一个视图中成绩在平均成绩之上的元组定义成一个视图good_sc: create view good_sc as select sno,cno,grade from sc where grade (select avg(grade) from sc); 由于导出视图由于导出视图good_sc的基本表是的基本表是sc,内层
32、查询中涉及的,内层查询中涉及的表也是表也是sc,所以视图,所以视图good_sc是不允许更新的。是不允许更新的。视图的作用视图的作用能够简化用户的操作:能够简化用户的操作:当视图中数据不是直接来自基本表时,当视图中数据不是直接来自基本表时,如基于多张表连接形成的视图、基于复杂嵌套查询的视图、含如基于多张表连接形成的视图、基于复杂嵌套查询的视图、含导出属性的视图等,定义视图能够简化用户的操作。导出属性的视图等,定义视图能够简化用户的操作。使用户能以多种角度看待同一数据:使用户能以多种角度看待同一数据:视图机制能使不同用户以视图机制能使不同用户以不同方式看待同一数据,适应数据库共享的需要。不同方式
33、看待同一数据,适应数据库共享的需要。刘安丰刘安丰()26数据库原理及应用数据库原理及应用对重构数据库提供了一定程度的逻辑独立性:对重构数据库提供了一定程度的逻辑独立性:关系数据库中数关系数据库中数据库的重构往往是不可避免的,重构数据库最常见的是将一个据库的重构往往是不可避免的,重构数据库最常见的是将一个基本表垂直地分成多个基本表。基本表垂直地分成多个基本表。 例如,将学生关系例如,将学生关系student(sno,sname,ssex,sage,sdept) 垂直地分成垂直地分成sx(sno,sname,sage)和和sy(sno,ssex,sdept)两两个关系,这时原表个关系,这时原表st
34、udent为为sx表和表和sy表自然连接的结果。表自然连接的结果。可以建立一个视图可以建立一个视图student: create view student(sno,sname,ssex,sage,sdept) as select sx.sno,sx.sname,sy.ssex,sx.sage,sy.sdept from sx,sywhere sx.sno=sy.sno; 这样,尽管数据库的逻辑结构改变了,但应用程序不必修改,这样,尽管数据库的逻辑结构改变了,但应用程序不必修改,因为新建立的视图定义了用户原来的关系,使用户的外模式保因为新建立的视图定义了用户原来的关系,使用户的外模式保持不变,用
35、户的应用程序通过视图仍然能够查找数据。持不变,用户的应用程序通过视图仍然能够查找数据。刘安丰刘安丰()27数据库原理及应用数据库原理及应用能够对机密数据提供安全保护:能够对机密数据提供安全保护:对不同用户定义不同视图,使对不同用户定义不同视图,使每个用户只能看到他有权看到的数据。通过每个用户只能看到他有权看到的数据。通过with check option可以对关键数据定义操作时间限制。可以对关键数据定义操作时间限制。 例建立例建立1号课程的选课视图,并要求透过该视图进行的更新操号课程的选课视图,并要求透过该视图进行的更新操作只涉及作只涉及1号课程,同时对该视图的任何操作只能在工作时间号课程,同
36、时对该视图的任何操作只能在工作时间进行。进行。 create view is_sc as select sno,cno,grade from sc where cno= 1 and to_char(sysdate,hh24) between 9 and 17 and to_char(sysdate,d) between 2 and 6 with check option;刘安丰刘安丰()28数据库原理及应用数据库原理及应用概述:概述:由由dbms提供统一的数据控制功能是提供统一的数据控制功能是dbs的特点之一。的特点之一。数据控制的概念:数据控制的概念:又称数据保护,包括数据的安全性控制、完又
37、称数据保护,包括数据的安全性控制、完整性控制、并发控制、恢复。整性控制、并发控制、恢复。sql语言的数据控制功能:语言的数据控制功能:sqlsql语言提供了数据控制功能,能语言提供了数据控制功能,能够在一定程度上保证数据库中数据的完全性、完整性,并提供够在一定程度上保证数据库中数据的完全性、完整性,并提供了一定的并发控制及恢复能力。了一定的并发控制及恢复能力。完整性:完整性:指数据库中数据的正确性与相容性。指数据库中数据的正确性与相容性。sql语言定义完语言定义完整性约束条件的功能主要体现在整性约束条件的功能主要体现在create table和和alter table语句中,可以在这些语句中定
38、义码、取值唯一的列、语句中,可以在这些语句中定义码、取值唯一的列、不允许空值的列、外码不允许空值的列、外码(参照完整性参照完整性)及其他约束条件。及其他约束条件。并发控制:并发控制:当多个用户并发地对数据库进行操作时,对他们加当多个用户并发地对数据库进行操作时,对他们加以控制、协调,以保证并发操作的正确执行和数据库的一致性以控制、协调,以保证并发操作的正确执行和数据库的一致性。sql语言并发控制的功能主要体现在支持事务、事务开始、语言并发控制的功能主要体现在支持事务、事务开始、事务结束、事务提交等概念。事务结束、事务提交等概念。刘安丰刘安丰()29数据库原理及应用数据库原理及应用恢复:恢复:当
39、发生各种类型的故障导致数据库处于不一致状态时,当发生各种类型的故障导致数据库处于不一致状态时,将数据库恢复到一致状态的功能。将数据库恢复到一致状态的功能。sql语言恢复的功能主要体语言恢复的功能主要体现在提供事务回滚现在提供事务回滚undo 、重做、重做redo等概念。等概念。安全性安全性( (本节主要讨论本节主要讨论) ):保护数据库,防止不合法的使用所造保护数据库,防止不合法的使用所造成的数据泄露和破坏。保证数据安全性的主要措施是存取控制成的数据泄露和破坏。保证数据安全性的主要措施是存取控制,控制用户只能存取他有权存取的数据规定不同用户对于不同,控制用户只能存取他有权存取的数据规定不同用户
40、对于不同数据对象所允许执行的操作。数据对象所允许执行的操作。 dbms实现数据安全性保护的过程:实现数据安全性保护的过程:用户或用户或dba把授权决定告知系统,这是由把授权决定告知系统,这是由sql的的grant和和revoke语句来完成的。语句来完成的。dbms把授权的结果存入数据字典。把授权的结果存入数据字典。当用户提出操作请求时,当用户提出操作请求时,dbms根据授权定义进行检查,以决根据授权定义进行检查,以决定是否执行操作请求。定是否执行操作请求。刘安丰刘安丰()30数据库原理及应用数据库原理及应用授权:授权:sql语言用语言用drant语句向用户授予操作权限。语句向用户授予操作权限。
41、一般格式:一般格式: grant grant , on on to to , with grant option;with grant option;功能:功能:将对指定操作对象的指定操作权限授予指定的用户。将对指定操作对象的指定操作权限授予指定的用户。说明:说明:with grant optionwith grant option子句:子句:若指定了该子句,则获得某种权限若指定了该子句,则获得某种权限的用户还可以把该权限再授予别的用户;若没有指定该子句,的用户还可以把该权限再授予别的用户;若没有指定该子句,则获得某种权限的用户只能使用该权限,不能传播该权限。则获得某种权限的用户只能使用该权限
42、,不能传播该权限。刘安丰刘安丰()31数据库原理及应用数据库原理及应用select,insert,update,delete,all privilegesselect,insert,update,delete,all privileges对象类型对象类型对对 象象select,insert,update,delete,all privilegesselect,insert,update,delete,all privilegestabletable属性列属性列select,insert,update,delete,alter,index,all privilegestabletable基本表基
43、本表select,insert,update,delete,all privilegesselect,insert,update,delete,all privilegestabletable视视 图图createtabcreatetabdatabasedatabase数据库数据库常见操作权限常见操作权限 用户的权限:用户的权限:对数据库可以有对数据库可以有建表建表(createtab)(createtab)的权限,该权的权限,该权限属于限属于dbadba,可由,可由dbadba授予普通用户。基本表或视图的属主拥有对授予普通用户。基本表或视图的属主拥有对该表或视图的一切操作权限。该表或视图的一
44、切操作权限。接受权限的用户可以是接受权限的用户可以是一个或多个一个或多个具体用户,也可以是具体用户,也可以是public(public(全体用户全体用户) )。刘安丰刘安丰()32数据库原理及应用数据库原理及应用例例1把查询把查询student表权限授给用户表权限授给用户u1。 grant select on table student to u1;例例2把对把对student表和表和course表的全部权限授予用户表的全部权限授予用户u2和和u3。 grant all priviliges on table student, course to u2,u3;例例3把对表把对表sc的查询权限授予所有用户。的查询权限授予所有用户。 grant select on table sc to public;例例4把查询把查询student表和修改学生学号的权限授给用户表和修改学生学号的权限授给用户u4。 grant update(sno), select on table student to u4;例例5把对表把对表sc的的insert权限授予权限授予u5用户,并允许他再将此权用户,并允许他再将此权限授予其他用户。限授予其他用户。 grant insert on
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 南京2025年江苏南京市溧水区人民检察院招聘编外人员2人笔试历年参考题库附带答案详解
- 服装临时合同范本
- 生物医药产业创新推动健康医疗的科技进步
- 2025重庆高新技术产业研究院有限责任公司招聘3人(26截止)笔试参考题库附带答案详解
- α-Pyrrolidinocyclohexanophenone-hydrochloride-生命科学试剂-MCE
- MAT2A-IN-21-生命科学试剂-MCE
- EGFR-IN-145-生命科学试剂-MCE
- 科技产业变革的经济影响分析
- 建筑施工特种作业人员安全技术理论考核试题-建筑起重司索信号工专业试题
- 电动汽车电池技术推动商业创新的引擎
- 新部编版小学六年级下册语文第二单元测试卷及答案
- 2025年山东传媒职业学院高职单招高职单招英语2016-2024历年频考点试题含答案解析
- 2025年春新教科版物理八年级下册课件 第10章 流体的力现象 1 在流体中运动
- 《中医基础理论》课件-中医学理论体系的基本特点-整体观念
- 2025年广东省深圳法院招聘书记员招聘144人历年高频重点提升(共500题)附带答案详解
- 2025年人教版新教材数学一年级下册教学计划(含进度表)
- 2025年春西师版一年级下册数学教学计划
- 课题申报书:“四新”视域下地方高校学科建设与人才培养研究
- 施工爆破作业审批制度范文(2篇)
- 企业员工退休管理规章制度(3篇)
- 中国干眼临床诊疗专家共识(2024年)解读
评论
0/150
提交评论