欢迎来到天天文库
浏览记录
ID:48046751
大小:637.00 KB
页数:54页
时间:2020-01-12
《9 索引、序列、同义词、数据字典.ppt》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、复习1、约束的延迟创建约束时默认使用NOTDEFERRABLE,即约束不可延迟。创建可延迟约束使用DEFERRABLE关键字,并且可以指定INITIALLYIMMEDIATE或INITIALLYDEFERRED说明可延迟约束在初始状态下是立即检查还是延迟检查,默认为立即检查。CREATETABLEscott.new_dept(deptnonumberprimarykeydeferrableinitiallyimmediate,dnamevarchar2(20)unique)2、临时表Oracle数据库根据临时表的性质不
2、同,可以分为事务临时表与会话临时表。CREATEGLOBALTEMPORARYTABLEtable_name(col_namedate_type,………..)注意:一般情况下,如果在创建临时表时没有特殊指明,则该表默认为事务临时表。ONCOMMITDELETEROWSONCOMMITPRESERVEROWS3、创建视图create[orreplace][force
3、noforce]viewv_name[(alias,……)]assubquery[withcheckoption[constraintconstraint_
4、name]][withreadonly]withcheckoption选项:注:要在此视图上执行insert语句,那么插入的值必须满足子查询中的查询条件。要执行update语句,那只能修改除约束条件中涉及列之外的列。createviewscott.emp_vu10asselect*fromscott.empwheredeptno=10withcheckoptionconstraintchk_vu10可更新的连接视图连接视图是基于连接的视图。一个连接视图上的DML语句只能修改视图中的一个键值保留表(key-preserv
5、edtable)。如果连接视图中的一个基础表的主键在它的视图中仍然存在,并且在连接视图中仍然是主键,则称这个基表为“键值保存表”。在连接视图上,对视图进行插入、删除、更新等操作时,只能够对视图中的键值保存表的列进行更新。键值保存表一般地,由主外键关系的2个表组成的连接视图,外键表(子表)就是键值保存表,而主键表(父表)不是。删除视图dropview命令dropview索引NEW用户对数据库最频繁的操作是进行数据查询。一般情况下,数据库在进行查询操作时需要对整个表进行数据搜索。当表中数据很多时,搜索
6、数据就需要很长的时间,这就造成了服务器资源的浪费。为了提高检索数据的能力,数据库引入了索引机制。为什么要引入索引?索引是一个单独的、物理的数据库结构,它是表中一列或多列值的集合和相应行所对应的rowid。索引的概念数据库中引入索引的目的是为了提高对表中数据的查询速度。如果一个表没有创建索引,则对该表进行查询时需要进行全表扫描;如果对表创建了索引,在进行有条件查询时,系统根据查询条件中的索引值信息,利用特定的排序算法在索引表中很快的查询到相应的索引值及其对应rowid,根据rowid可以在数据库表中很快查询到符合条件的记
7、录。索引的作用及原理注:并不是只要使用索引就能提高检索速度,例如无条件查询时,不使用索引就比使用索引要快。通用规则:只用当经常查询索引列中的数据时,才需要在表上创建索引。Oracle的索引主要包含两类:BTree索引和位图索引。默认情况下大多使用Btree索引,该索引就是通常所见的唯一索引、非唯一性索引、单列索引、复合索引等。索引的分类索引的分类—BTree索引创建索引---createindex命令create[unique][bitmap]indexindex_nameontable_name(col_name1[
8、ASC
9、DESC],……)unique:建立唯一索引。bitmap:建立位图索引。注:在默认情况下,createindex命令创建的是非唯一的B树索引。例1:在emp1表中,为员工工资和奖金建立索引。createindexscott.sal_comm_indexonscott.emp1(sal,comm)例2:在emp1表中,为员工姓名建立位图索引。createbitmapindexscott.ename_indexonscott.emp1(ename)练习在emp1表中,为员工号建立唯一索引。createunique
10、indexscott.empno_indexonscott.emp1(empno)查看索引select*fromuser_indexeswhere table_name='表名';select *from user_ind_columnswhere table_name='表名';查看索引例如:查看EMP1表中所创建有哪些索引?s
此文档下载收益归作者所有