其他数据库对象.ppt

上传人:牧羊曲112 文档编号:5928690 上传时间:2023-09-05 格式:PPT 页数:31 大小:368KB
返回 下载 相关 举报
其他数据库对象.ppt_第1页
第1页 / 共31页
其他数据库对象.ppt_第2页
第2页 / 共31页
其他数据库对象.ppt_第3页
第3页 / 共31页
其他数据库对象.ppt_第4页
第4页 / 共31页
其他数据库对象.ppt_第5页
第5页 / 共31页
点击查看更多>>
资源描述

《其他数据库对象.ppt》由会员分享,可在线阅读,更多相关《其他数据库对象.ppt(31页珍藏版)》请在三一办公上搜索。

1、北京传智播客教育,第七章其他数据库对象,北京传智播客教育,知识回顾,从多个表中获取数据分组函数子查询,北京传智播客教育,内容摘要,约束视图序列,北京传智播客教育,约束,列级约束 column CONSTRAINT constraint_name constraint_type,北京传智播客教育,表级约束,column,.CONSTRAINT constraint_name constraint_type(column,.),北京传智播客教育,NOT NULL 约束,北京传智播客教育,唯一约束,北京传智播客教育,主键约束,北京传智播客教育,外键约束,北京传智播客教育,CHECK约束,.,dept

2、noNUMBER(2),CONSTRAINT emp_deptno_ck CHECK(DEPTNO BETWEEN 10 AND 99),.,北京传智播客教育,添加约束,北京传智播客教育,删除约束,北京传智播客教育,移走PRIMARY KEY 约束,北京传智播客教育,Disable 或者 Enable 约束,北京传智播客教育,通过视图USER_CONSTRAINTS查看约束信息,北京传智播客教育,序列(sequence),序列为ORACLE整数,最多可有38位数字 序列号生成是独立于表,所以同一序列生成器可用于一个和多个表 序列号可用于生成唯一的主码,北京传智播客教育,创建序列,SQL CRE

3、ATE SEQUENCE test_sequence 2 INCREMENT BY 1 3 START WITH 1 4 NOMAXVALUE 5 NOCYCLE 6 CACHE 10;序列已创建。SQL,北京传智播客教育,使用序列,SQL select test_sequence.currval from dual;select test_sequence.currval from dual*ERROR 位于第 1 行:ORA-08002:序列TEST_SEQUENCE.CURRVAL 尚未在此进程中定义SQL select test_sequence.nextval from dual;N

4、EXTVAL-1SQL select test_sequence.currval from dual;CURRVAL-1SQL,北京传智播客教育,使用序列形成自动编号,创建序列:Create sequence myseq;创建表:Create table myttt(id number,name varachar2(10);插入记录,第一个列使用序列生成值:Nextval会取得序列的下一个值,而currval会取得序列的当前值Insert into myttt values(myseq.nextval,aa);Insert into myttt values(myseq.nextval,bb)

5、;Insert into myttt values(myseq.nextval,cc);Insert into myttt values(myseq.currval,dd);尝试查询获得结果看看。,北京传智播客教育,一个复杂的序列,SQL CREATE SEQUENCE test_sequence 2 INCREMENT BY 5 3 START WITH 0 4 MAXVALUE 100 5 MINVALUE-100 6 CYCLE 7 CACHE 20;该序列从0开始,每次增长5,最大到100,之后循环回-100再次增长,系统在内存中缓存20个值,北京传智播客教育,删除序列,SQL dro

6、p sequence test_sequence;序列已丢弃。SQL,北京传智播客教育,同义词(synonym),一个同义词(synonym)为任何表、视图、快照、序列、过程、函数或包的别名,其定义存储在数据字典中 有两种同义词:公用和专用。公用同义词可为数据库中每一个用户所存取;专用同义词是包含在指定用户的模式中,仅为该用户和授权的用户所使用。,北京传智播客教育,数据库对象的替换名称 优点:简化SQL语句 隐藏对象的名称和所有者 为分布式数据库的远程对象提供了位置透明性 提供对对象的公共访问,北京传智播客教育,创建同义词,SQL select*from tab;TNAME TABTYPE C

7、LUSTERID-A TABLEB TABLEC TABLEJY_PER TABLEJY_RENWU TABLEPLAN_TABLE TABLESQLEXPERT_PLAN1 TABLETEST TABLE已选择8行。SQL CREATE PUBLIC SYNONYM testsyn FOR lunar.aaa;同义词已创建。SQL,北京传智播客教育,删除同义词,删除私有同义词:DROP SYNONYM testsyn;删除公共同义词:DROP PUBLIC SYNONYM testsyn1;例如:SQL CREATE PUBLIC SYNONYM testsyn1 FOR lunar.aaa

8、;同义词已创建。SQL drop SYNONYM testsyn1;drop SYNONYM testsyn1*ERROR 位于第 1 行:ORA-01434:要删除的隐含同义词不存在SQL drop public SYNONYM testsyn1;同义词已丢弃。SQL教师实验:分别建立公有私有同义词进行访问实验,北京传智播客教育,视图,视图是一个虚拟的表视图本本身其中并没有存储任何数据使用视图我们可以限定用户只访问表的一部分数据利用with check option选项我们可以限制用户对视图的更改和插入记录在我们制定的值域中。,北京传智播客教育,创建视图,1、简单的视图:Create vie

9、w myview as select*from emp where job=MANAGER;2、带有聚合函数的视图Create view myviewa as select deptno,sum(sal)totsal from emp group by deptno;3、从多张表连接形成的视图Create view myviewb as select ename,job,dname,loc from emp e,dept d where e.deptno=d.deptno;,北京传智播客教育,视图的可更改性,第一张视图可以更改,对视图的更改实际上是对表的更改。Update myview set

10、 sal=sal+20;第二张视图的更改语句会失败:Update myviewa set totsal=10000 where deptno=10;原因是totsal列的数据都是表中多个数据聚合得来的,存在一对多的关系所以不能更改。对第三个视图发出两个语句:Update myviewb set job=MANAGER WHERE ENAME=SMITH;和update myviewb set loc=beijing where ename=SMITH;教师实验:通过实验分析为什么第一个语句成功,而第二个语句失败,北京传智播客教育,With check option,回想刚才的简单的视图:Cre

11、ate view myview as select*from emp where job=MANAGER;含义是:公司的所有的经理我们给它插入记录:Insert into myview(empno,ename,job,deptno)values(2222,rose,CLERK,10);该记录可以插入成功,可是我们查询视图却看不到这这个记录,原因是这个记录根本就不满足这个视图的要求,可是为什么还是可以插入呢?我们删除视图:drop view myview;重新建立:Create view myview as select*from emp where job=MANAGER with check option;教师实验:再次发出插入语句试试看!,北京传智播客教育,本章总结,序列利用序列使表实现自动编号同义词私有公有同义词利用公有同义词实现对象的公共访问 视图,北京传智播客教育,提问时间,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号