韩顺平玩转oracleg实战教程

上传人:辰*** 文档编号:108774076 上传时间:2022-06-16 格式:PPTX 页数:39 大小:470.91KB
收藏 版权申诉 举报 下载
韩顺平玩转oracleg实战教程_第1页
第1页 / 共39页
韩顺平玩转oracleg实战教程_第2页
第2页 / 共39页
韩顺平玩转oracleg实战教程_第3页
第3页 / 共39页
资源描述:

《韩顺平玩转oracleg实战教程》由会员分享,可在线阅读,更多相关《韩顺平玩转oracleg实战教程(39页珍藏版)》请在装配图网上搜索。

1、会计学1韩顺平玩转韩顺平玩转oracleg实战教程实战教程主讲 韩顺平玩转oracle 10g实战教程oracle第第4讲讲1. 1. 维护数据的完整性维护数据的完整性 2. 2. 序列序列(sequence) (sequence) 3. 3. 管理管理索引索引4. 4. 管理权限和角色管理权限和角色第1页/共39页主讲 韩顺平玩转oracle 10g实战教程维护数据的完整性维护数据的完整性 介绍介绍数据的完整性用于确保数据库数据遵从一定的商业的逻辑规则。在oracle中,数据完整性可以使用约束、触发器、应用程序(过程、函数)三种方法来实现,在这三种方法中,因为约束易于维护,并且具有最好的性能

2、,所以作为维护数据完整性的首选.第2页/共39页主讲 韩顺平玩转oracle 10g实战教程维护数据的完整性维护数据的完整性 约束约束约束用于确保数据库数据满足特定的商业规则。在oracle中,约束包括: not null、unique,primary key,foreign key,和check 五种.第3页/共39页主讲 韩顺平玩转oracle 10g实战教程维护数据的完整性维护数据的完整性 not null(非空非空)如果在列上定义了not null,那么当插入数据时,必须为列提供数据。 unique(唯一唯一)当定义了唯一约束后,该列值是不能重复的.但是可以为null。 primary

3、 key(主键主键)用于唯一的标示表行的数据,当定义主键约束后,该列不但不能重复而且不能为null。需要说明的是:一张表最多只能有一个主键,但是可以有多个unqiue约束。 foreign key(外键外键)用于定义主表和从表之间的关系.外键约束要定义在从表从表上,主表则必须具有主键约束或是unique约束.,当定义外键约束后,要求外键列数据必须在主表的主键列存在或是为null第4页/共39页主讲 韩顺平玩转oracle 10g实战教程维护数据的完整性维护数据的完整性 check用于强制行数据必须满足的条件,假定在sal列上定义了check约束,并要求sal列值在10002000之间如果不再1

4、0002000之间就会提示出错。第5页/共39页主讲 韩顺平玩转oracle 10g实战教程维护数据的完整性维护数据的完整性 商店售货系统表设计案例商店售货系统表设计案例(1)(1)现有一个商店的数据库,记录客户及其购物情况,由下面三个表组成:现有一个商店的数据库,记录客户及其购物情况,由下面三个表组成:商品商品goodsgoods(商品号(商品号goodsIdgoodsId,商品名,商品名goodsNamegoodsName,单价,单价unitpriceunitprice,商品类别,商品类别categorycategory,供应商,供应商provider);provider);客户客户cus

5、tomercustomer(客户号(客户号customerId,customerId,姓名姓名name,name,住址住址address,address,电邮电邮emailemail性别性别sex,sex,身份证身份证cardId);cardId);购买购买purchasepurchase(客户号(客户号customerId,customerId,商品号商品号goodsId,goodsId,购买数量购买数量nums);nums);请用请用SQLSQL语言完成下列功能:语言完成下列功能:1 1 建表,在定义中要求声明:建表,在定义中要求声明:(1)(1)每个表的每个表的主外键主外键;(2)(2)

6、客户的姓名不能为空值;客户的姓名不能为空值;(3)(3)单价必须大于单价必须大于0 0,购买数量必须在,购买数量必须在1 1到到3030之间;之间;(4)(4)电邮不能够重复电邮不能够重复; ;(5)(5)客户的性别必须是客户的性别必须是 男男 或者或者 女女, ,默认是男默认是男第6页/共39页主讲 韩顺平玩转oracle 10g实战教程维护数据的完整性维护数据的完整性维护维护 商店售货系统表设计案例商店售货系统表设计案例(2)(2)如果在建表时忘记建立必要的约束,则可以在建表后使用如果在建表时忘记建立必要的约束,则可以在建表后使用alter tablealter table命令为表增加约束

7、命令为表增加约束. .但是要注意但是要注意: : 增加增加not nullnot null约束约束时时, ,需要使用需要使用modifymodify选项选项, ,而增加其它四种约束使用而增加其它四种约束使用addadd选项。选项。(1)(1)每个表的主外码;每个表的主外码;(2)(2)客户的姓名不能为空值;客户的姓名不能为空值;-增加商品名也不能为空增加商品名也不能为空(3)(3)单价必须大于单价必须大于0 0,购买数量必须在,购买数量必须在1 1到到3030之间;之间;(4)(4)电邮不能够重复电邮不能够重复;-;-增加身份证也不重复增加身份证也不重复(5)(5)客户的性别必须是客户的性别必

8、须是 男男 或者或者 女女, ,默认是男默认是男(6)(6)增加客户的住址只能是增加客户的住址只能是海淀海淀、朝阳朝阳、东城东城、西城西城、通州通州、崇文崇文第7页/共39页主讲 韩顺平玩转oracle 10g实战教程维护数据的完整性维护数据的完整性维护维护 删除约束删除约束当不再需要某个约束时,可以删除当不再需要某个约束时,可以删除. .alter table alter table 表名表名 drop constraint drop constraint 约束名称约束名称; ;在删除主键约束的时候,可能有错误在删除主键约束的时候,可能有错误, ,比如:比如:alter table alte

9、r table 表名表名 drop primary key ;drop primary key ;这是因为如果在两张表存在主从关系,那么在删除主表的主键这是因为如果在两张表存在主从关系,那么在删除主表的主键约束时,必须带上约束时,必须带上 cascade cascade 选项选项 如象如象alter table alter table 表名表名 drop primary key drop primary key cascadecascade; ;第8页/共39页主讲 韩顺平玩转oracle 10g实战教程维护数据的完整性维护数据的完整性维护维护 列级定义列级定义列级定义是在定义列的同时定义约束

10、列级定义是在定义列的同时定义约束。 表级定义表级定义表级定义是指在定义了所有列后,再定义约束表级定义是指在定义了所有列后,再定义约束. .这里需要注意这里需要注意: : not nullnot null约束只能在列级上定义约束只能在列级上定义。第9页/共39页主讲 韩顺平玩转oracle 10g实战教程序列序列(sequence) 一个问题一个问题在某张表中,存在一个在某张表中,存在一个id列列(整数整数),我们希望在添加记录的时候,我们希望在添加记录的时候,该列从该列从1开始,自动的增长,怎么处理开始,自动的增长,怎么处理? 第10页/共39页主讲 韩顺平玩转oracle 10g实战教程序列

11、序列(sequence) 介绍介绍oracle中,是通过使用序列(sequence)来处理自动增长列。 (1) 可以为表中的列自动产生值. (2) 由用户创建数据库对象,并可由多个用户共享. (3) 一般用于主键或唯一列. 案例案例说明说明 第11页/共39页主讲 韩顺平玩转oracle 10g实战教程序列序列(sequence) 细节说明细节说明一旦定义了某个序列,你就可以用CURRVAL,NEXTVAL CURRVAL:返回 sequence的当前值 NEXTVAL:增加sequence的值,然后返回 sequence 值 比如: 序列名.CURRVAL 序列名.NEXTVAL 什么时候使

12、用sequence: - 不包含子查询、snapshot、VIEW的 SELECT 语句 - INSERT语句的子查询中 - INSERT语句的VALUES中 - UPDATE 的 SET中 第12页/共39页主讲 韩顺平玩转oracle 10g实战教程序列序列(sequence) 细节说明细节说明可以看如下例子:可以看如下例子: INSERT INTO emp VALUES INSERT INTO emp VALUES (my_seq.nextval, TOMCAT, CLERK,(my_seq.nextval, TOMCAT, CLERK,75667566, SYSDATE, 1200,

13、, SYSDATE, 1200, NULL,20); NULL,20); SELECT my_seq.currval FROM DUAL; SELECT my_seq.currval FROM DUAL; 但是要注意的是:但是要注意的是: 第一次第一次NEXTVALNEXTVAL返回的是初始值返回的是初始值;随后的;随后的NEXTVALNEXTVAL会自动增加你定义的会自动增加你定义的INCREMENT BYINCREMENT BY值,然后返回增加后的值。值,然后返回增加后的值。CURRVAL CURRVAL 总是返回当前总是返回当前SEQUENCESEQUENCE的值,的值,但是在第一次但是

14、在第一次NEXTVALNEXTVAL初始化之后才能使用初始化之后才能使用CURRVALCURRVAL,否则会出错,否则会出错。一次一次NEXTVALNEXTVAL会增加一次会增加一次SEQUENCESEQUENCE的值,所以如果你在同一个语句里面使用的值,所以如果你在同一个语句里面使用多个多个NEXTVALNEXTVAL,其值就是不一样的。如果指定,其值就是不一样的。如果指定CACHECACHE值,值,ORACLEORACLE就可以预先就可以预先在内存里面放置一些在内存里面放置一些sequencesequence,这样存取的快些。,这样存取的快些。cachecache里面的取完后,里面的取完后

15、,oracleoracle自动再取一组到自动再取一组到cachecache。 使用使用cachecache或许会跳号,或许会跳号, 比如数据库突然比如数据库突然不正常不正常downdown掉(掉(shutdown abort),cacheshutdown abort),cache中的中的sequencesequence就会丢失就会丢失. . 所以可所以可以在以在create sequencecreate sequence的时候用的时候用nocachenocache防止这种情况。防止这种情况。 第13页/共39页主讲 韩顺平玩转oracle 10g实战教程管理索引管理索引原理介绍原理介绍 介绍介

16、绍索引是索引是用于加速数据存取的数据用于加速数据存取的数据对象对象.合理的使用合理的使用索引可以大大降索引可以大大降低低i/o次数次数,从而提高数据访问性能。索引有很多种我们主要介绍常从而提高数据访问性能。索引有很多种我们主要介绍常用的几种用的几种:为什么添加了索引后,会加快查询速度呢为什么添加了索引后,会加快查询速度呢?第14页/共39页主讲 韩顺平玩转oracle 10g实战教程管理索引管理索引创建索引创建索引 单列索引单列索引单列索引是基于单个列所建立的索引,语法: 复合索引复合索引复合索引是基于两列或是多列的索引。在同一张表上可以有多个索引,但是要求列的组合必须不同,语法:create

17、 index index_nameon table(columnname,columnname);create index index_nameon table(columnname);第15页/共39页主讲 韩顺平玩转oracle 10g实战教程管理索引管理索引使用原则使用原则 使用原则使用原则在大表上建立索引才有意义在where子句或是连接条件上经常引用的列上建立索引索引的层次不要超过4层这里能不能给学生演示这个效果呢?如何构建一个大表呢?第16页/共39页主讲 韩顺平玩转oracle 10g实战教程管理索引管理索引索引的缺点索引的缺点 索引缺点分析索引缺点分析索引有一些先天不足:索引有一

18、些先天不足:1:建立索引,系统要占用大约为表的1.2倍的硬盘和内存空间来保存索引。2:更新数据的时候,系统必须要有额外的时间来同时对索引进行更新,以维持数据和索引的一致性。实践表明,不恰当的索引不但于事无补,反而会降低系统性能。因为大量的索引在进行插入、修改和删除操作时比没有索引花费更多的系统时间。比如在如下字段建立索引应该是不恰当的:比如在如下字段建立索引应该是不恰当的:1、很少或从不引用的字段;2、逻辑型的字段,如男或女(是或否)等。综上所述,提高查询效率是以消耗一定的系统资源为代价的,索引不能盲目的建立,这是考验一个DBA是否优秀的很重要的指标第17页/共39页主讲 韩顺平玩转oracl

19、e 10g实战教程管理索引管理索引其它索引其它索引 介绍介绍按照数据存储方式,可以分为B*树、反向索引、位图索引;按照索引列的个数分类,可以分为单列索引、复合索引;按照索引列值的唯一性,可以分为唯一索引和非唯一索引.此外还有函数索引,全局索引,分区索引对于索引我还要说对于索引我还要说:在不同的情况我们会在不同的列上建立索引,甚至建立不同种类的索引,请记住,技术是死的,人是活的。比如:B*-树索引建立在重复值很少的列上,而位图索引则建立在重复值很多、不同值相对固定的列上。第18页/共39页主讲 韩顺平玩转oracle 10g实战教程管理权限和角色管理权限和角色 介绍介绍这一部分我们主要看看ora

20、cle种如何管理权限和角色,权限和角色的区别在那里。当刚刚建立用户时,用户没有任何权限,也不能执行任何操作。如果要执行某种特定的数据库操作,则必须为其授予系统的权限;如果用户要访问其它方案的对象,则必须为其授予对象的权限.为了简化权限的管理,可以使用角色。这里我们会详细的介绍第19页/共39页主讲 韩顺平玩转oracle 10g实战教程管理权限和角色管理权限和角色 权限权限权限是指执行特定类型sql命令或是访问其它方案对象的权利,包括系统权限和对象权限两种:第20页/共39页主讲 韩顺平玩转oracle 10g实战教程管理权限和角色管理权限和角色系统权限系统权限 系统权限介绍系统权限介绍系统权

21、限是指执行特定类型sql命令的权利.它用于控制用户可以执行的一个或是一组数据库操作.比如当用户具有create table权限时,可以在其方案中建表,当用户具有create any table权限时,可以在任何方案中建表.oracle提供了100多中系统权限。常用的有:create session连接数据库连接数据库create table建表建表create view 建视图建视图create public synonym键同义词键同义词create procedure 建过程、函数、包建过程、函数、包 create trigger 建触发器建触发器create cluster建簇建簇 显示

22、系统权限显示系统权限oracel提供了100多系统权限,而且oracle的版本越高,提供的系统权限就越多,我们可以查询数据字典视图system_privilege_map,可以显示所有系统权限select * from system_privilege_map order by name;第21页/共39页主讲 韩顺平玩转oracle 10g实战教程管理权限和角色管理权限和角色系统权限系统权限 授予系统权限授予系统权限一般情况,授予系统权限是有dba完成的,如果用其它用户来授予系统权限,则要求该用户必须具有grant any privilege的系统权限在授予系统权限时,可以带有with ad

23、min option选项,这样,被授予权限的用户或是角色还可以将该系统权限授予其它的用户或是角色。为了让大家快速入门,我们举例说明:1.创建两个用户 ken , tom.初始阶段他们没有任何权限,如果登陆就会给出错误的信息1.1创建两个用户,并指定密码.2.给用户ken授权:2.1:授予create session 和create table权限时 带with admin option2.2 授予create view 时不带with admin option第22页/共39页主讲 韩顺平玩转oracle 10g实战教程管理权限和角色管理权限和角色系统权限系统权限3.给用户tom授权我们可以通

24、过ken 给tom授权,因为with admin option是加上的。当然也可以通过dba给tom授权,我们就用ken给tom授权: grant create session,create table to tom; grandt create view to tom; ok吗?不ok 回收系统权限回收系统权限一般情况下,回收系统权限是dba来完成的,如果其它的用户来回收系统权限,要求该用户必须具有相应系统权限及转授系统权限的选项(with admin option)。回收系统权限使用revoke来完成,当回收了系统权限后,用户就不能执行相应的操作了,但是请注意,系统权限级联收回问题?不是级

25、联回收!sys-ken-tom(create session) (create session)(create session)用用system执行如下操作执行如下操作:revoke create session from ken; 请思考请思考 tom还能登录?还能登录?第23页/共39页主讲 韩顺平玩转oracle 10g实战教程管理权限和角色管理权限和角色对象权限对象权限 对象权限介绍对象权限介绍指访问其它方案对象的权利,用户可以直接访问自己方案的对象,但是如果要访问别的方案的对象,则必须具有对象的权限. 比如smith用户要访问scott.emp表(scott:方案,emp :表)则必

26、须在scott.emp表上具有对象的权限。常用的有:alter 修改修改 delete删除删除select查询查询 insert 添加添加update 修改修改index索引索引references 引用引用 execute 执行执行第24页/共39页主讲 韩顺平玩转oracle 10g实战教程管理权限和角色管理权限和角色对象权限对象权限 授予对象权限授予对象权限在oracle9i前,授予对象权限是由对象的所有者来完成的,如果用其它的用户来操作,则需要用户具有相应的(with grant option )权限,从oracle9i开始,dba,sys,system 可以将任何对象上的对象权限授予

27、其它用户.授予对象权限是用grant命令来完成的.我们看几个案例:1.monkey用户要操作scott.emp表,则必须授予相应的对象权限希望monkey可以查询scott.emp的表数据,怎样操作?希望monkey可以修改scott.emp的表数据,怎样操作?希望monkey可以删除scott.emp的表数据,怎样操作?有没有更加简单的方法,一次把所有权限赋给monkey?grant 对象权限对象权限 on 数据库对象数据库对象 to 用户名用户名,角色名角色名,public with grant option第25页/共39页主讲 韩顺平玩转oracle 10g实战教程管理权限和角色管理权

28、限和角色对象权限对象权限2.能否对能否对monkey访问权限更加访问权限更加精细控制精细控制.(授予列权限授予列权限)希望monkey只可以修改scott.emp的表的sal字段,怎样操作?希望monkey只可查询scott.emp的表的ename,sal数据,怎样操作?3.授予授予alter权限权限如果black用户要修改scott.emp表的结构,则必须授予alter对象权限4.授予授予execute权限权限如果用户想要执行其它方案的包/过程/函数,则须有execute权限.比如为了让ken可以执行包dbms_transaction,可以授execute权限第26页/共39页主讲 韩顺平玩

29、转oracle 10g实战教程管理权限和角色管理权限和角色对象权限对象权限5.5.授予授予indexindex权限权限如果想在别的方案的表上建立索引,则必须具有index对象权限,如为了让black可以在 scott.emp上建立索引,就给其index的对象权限sqlconn scott/tigersqlgrant index on scott.emp to blake 6.6.使用使用with grant optionwith grant option选项选项该选项用于转授对象权限.但是该选项只能被授予用户,而不能授予角色sqlconn scott/tigersqlgrant select

30、on emp to blake with grant optionsqlconn black/shunpingsqlgrant select on scott.emp to jones第27页/共39页主讲 韩顺平玩转oracle 10g实战教程管理权限和角色管理权限和角色对象权限对象权限 回收对象权限回收对象权限在oracle9i中,收回对象的权限可以由对象的所有者来完成,也可以用dba用户(sys,system)来完成这里要说明的时:收回对象权限后,用户就不能执行相应的sql命令,但是要注意的是对象的权限是否会被级联收回?级联回收请看一个案例:scott-blake-jonesselect

31、 on empselect on empselect on emprevoke 对象权限对象权限 on 数据库对象数据库对象 from 用户名用户名,角色名角色名,public第28页/共39页主讲 韩顺平玩转oracle 10g实战教程管理权限和角色管理权限和角色角色角色 介绍介绍角色就是相关权限的命令集合,使用角色的主要目的就是为了简化权限的管理.假定有用户1,2,3为了让他们都拥有权限连接数据库在scott.emp表上select,insert,update,如果采用直接授权操作,则需要进行12次授权。因为要进行因为要进行1212次授权操作次授权操作, ,所以比较麻烦喔所以比较麻烦喔!

32、! 怎么办怎么办? ?第29页/共39页主讲 韩顺平玩转oracle 10g实战教程管理权限和角色管理权限和角色角色角色 介绍介绍我们如果采用角色就可以简化:首先将create session , select on scott.emp, insert on scott.emp,update on scott.emp授予角色,然后将该角色授予a,b,c用户,这样就可以三次授权搞定.角色分为预定义和自定义角色两类:可以考虑使用可以考虑使用自定义角色来自定义角色来解决问题的。解决问题的。第30页/共39页主讲 韩顺平玩转oracle 10g实战教程管理权限和角色管理权限和角色角色角色 预定义角色预

33、定义角色预定义角色是指oracle所提供的角色,每种角色都用于执行一些特定的管理任务,下面我们介绍常用的预定义角色connect,resource,dbaconnectconnect角色角色connect角色具有一般应用开发人员需要的大部分权限,当建立了一个用户后,多数情况下,只要给用户授予connect和resource角色就够了,那么,connect角色具有哪些系统权限呢?alter session create cluster create database linkcreate sesssion create table create view create sequence第31页/

34、共39页主讲 韩顺平玩转oracle 10g实战教程管理权限和角色管理权限和角色角色角色 预定义角色预定义角色resourceresource角色角色resource角色具有应用开发人员所需要的其它权限,比如建立存储过程、触发器等。这里需要注意的是resource角色隐含了 unlimited tablespace系统权限。resourceresource角色包含以下系统权限角色包含以下系统权限: :create clustercreate indextypecreate tablecreate sequencecreate typecreate procedure create trigge

35、r第32页/共39页主讲 韩顺平玩转oracle 10g实战教程管理权限和角色管理权限和角色角色角色 预定义角色预定义角色dbadba角色角色dba角色具有所有的系统权限,及with admin option选项,默认的dba用户为sys和system他们可以将任何系统权限授予其它用户.但是要注意的是dba角色不具备sysdba和sysoper的特权(启动和关闭数据库)第33页/共39页主讲 韩顺平玩转oracle 10g实战教程管理权限和角色管理权限和角色角色角色 自定义角色自定义角色顾名思义就是自己定义的角色,根据自己的需要来定义.一般是dba来建立,如果用的别的用户来建立,则需要具有cr

36、eate role的系统权限.在建立角色时可以指定验证方式(不验证,数据库验证等)建立角色建立角色( (不验证不验证) )如果角色是公用的角色,可以采用不验证的方式建立角色.create role 角色名 not identified;建立角色建立角色( (数据库验证数据库验证) )采用这样的方式时,角色名、口令存放在数据库中。当激活该角色时,必须提供口令.在建立这种角色时,需要为其提供口令create role 角色名 identified by shunping第34页/共39页主讲 韩顺平玩转oracle 10g实战教程管理权限和角色管理权限和角色角色角色 角色授权角色授权当建立角色时,

37、角色没有任何权限,为了使得角色完成特定任务,必须为其授予相应的系统权限和对象权限。给角色授权给角色授权给角色授予权限和给用户授权没有太多区别,但是要注意,系统权限的 unlimited tablespace 和对象权限的with grant option 选项是不能授予角色的。grant 对象权限对象权限 on 数据库对象数据库对象 to 自定义角色名自定义角色名 with admin option练习 : 1. 用system 给某个自定义角色 授予create session权限,要求该权限可以转授2.用scott用于给某个自定义角色授予 查询权限第35页/共39页主讲 韩顺平玩转orac

38、le 10g实战教程管理权限和角色管理权限和角色角色角色分配角色给某个用户分配角色给某个用户一般分配角色是由dba来完成的,如果要以其它用户身份分配角色,则要求用户必须具有grant any role的系统权限。sqlconn system/managersqlgrant 角色名 to blake with admin option因为我给了with admin option 选项所以,blake可以把system分配给它的角色分配给别的用户. 删除角色删除角色使用drop role,一般是dba来执行,如用其它用户则要求该用户具有drop any role系统权限sqlconn system

39、/managersqldrop role 角色名第36页/共39页主讲 韩顺平玩转oracle 10g实战教程管理权限和角色管理权限和角色角色角色 显示角色信息显示角色信息显示所有角色显示所有角色sqlselect * from dba_roles;显示角色具有的系统权限显示角色具有的系统权限sqlselect privilege,admin_option from role_sys_privs where role=角色名;显示角色具有的对象权限显示角色具有的对象权限通过查询数据字典视图dba_tab_privs可以查看角色具有的对象权限或是列的权限。显示用户具有的角色,及默认角色显示用户具

40、有的角色,及默认角色当以用户的身份连接到数据库时,oracle会自动的激活默认的角色,通过查询数据字典视图dba_role_privs可以显示某个用户具有的所有角色及当前默认的角色 sqlselect granted_role,default_role from dba_role_privs where grantee=角色名;第37页/共39页主讲 韩顺平玩转oracle 10g实战教程管理权限和角色管理权限和角色角色角色 精细访问控制精细访问控制是指用户可以使用函数、策略实现更加细微的安全访问控制。如果使用精细访问控制,则当在客户端发出sql语句(select ,insert,update,delete)时,oracel会自动在sql语句后追加谓词(where子句),并执行新的sql语句。通过这样的控制,可以使得不同的数据库用户在访问相同表时,返回不同的数据信息,如图用户:scott blakejones策略 emp_access 数据库表emp如上图所示:通过策略emp_access,用户scott,black,jones在执行相同的sql语句时,可以返回不同的结果.例如,当执行select ename from emp;时,更具 实际情况可以返回不同的结果简单了解,不详细介绍了第38页/共39页

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!