资源描述:
《《oracle常用对象》PPT课件》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、Oracle快速入门Oracle中的对象目标表视图索引同义词序列表空间什么是视图视图是一种数据库对象,它允许用户从一个或多组表中通过查询语句创建一个“虚表”。视图中并没有存放数据,而仅仅是一条select查询语句,查询结果以表的形式表示。视图是创建在表的基础上的,也可以在视图的基础上再创建视图。视图不能创建索引。创建视图的表称为基表视图中可含有多表联接、集合运算符、DISTINCY运算符、集合函数、GROUPBY、CONNECTBY等字句时,视图通常是不能修改。视图的优点基表视图(虚表)安全,使用视图将用户与基表分开方便,简化用户的
2、SQL命令一致性,试图不存储数据,操作视图的数据就是操作基表数据创建语句CREATEVIEWVIEW_NAMEASSELECT*FROMBASE_TABLE[WITHREADONLY][WITHCHECKOPTION]使用视图进行操作selectcolumn_listfromVIEW_NAME删除视图DropVIEW_NAMESQL语句管理视图视图举例CREATEORREPLACEVIEWV_EMP1ASSELECT*FROMEMP;SELECT*FROMUSER_VIEWS;--查看用户的视图DESCV_EMP1--查看视图的结构
3、INSERTINTOV_EMP(empno,ename,sal)VALUES(51,’HR’,4000);往视图插入数据,实际将数据插入到了基表SELECT*FROMEMP;--查询看一下插入成功没CREATEORREPLACEVIEWV_EMP2ASSELECT*FROMEMPWHEREsal>2500;INSERTINTOV_EMP2(empno,ename,sal)values(51,’HR’,2100);--OK插入也能成功,可以查一下基表,但是查询该视图却看不到数据SELECT*FROMV_EMP2--看不到往视图插入的数
4、据,造成错觉视图举例CREATEORREPLACEVIEWV_EMP2ASSELECT*FROMEMPWHEREsal>2500WITHCHECKOPTION--不符合视图条件的数据不让插INSERTINTOV_EMP2(empno,ename,sal)VALUES(52,’HR’,2100);--失败CREATEORREPLACEVIEWV_EMP_DEPTASSELECTempno,ename,sal,d.deptno,d.dnameFROMEMPeINNERJOINDEPTdONe.deptno=d.deptno;INSERT
5、INTOV_EMP_DEPTVALUES(‘1005’,’TOM’,3100,’52’,‘SALES’);失败,多表连接的视图不让插入和修改CREATEORREPLACEVIEWV_READASSELECT*FROMEMPWITHREADONLY; --只读的视图,不能插入、修改、删除记录索引是基于表建立的一种数据结构,通过表中的某些字段上建立索引,可以提高系统对表的查询速度。索引表中只保存索引关键字和纪录号,查询时根据索引关键字,可以从索引表中找到对应的纪录号,根据纪录号就可以快速的将纪录指针移到与关键字相对应的纪录上,从而得到
6、查询结果。Oracle支持两种索引:B树索引用一个倒置的树状结构来加快查询表的速度位图索引只存在与oracle的企业版本中,适合在数据表中的列值重复较多的情况下创建索引索引的管理索引的原理deptnomgrROWID107010100102070201020030703010050ROWIDdeptnomgr10010107010…10050307030…10200207020…索引表EMPCREATEINDEXIDX_EMPonEMP(deptno,mgr);创建不唯一索引CREATEINDEXindex_nameonTABLE_
7、NAME(index_column)TABLESPACESYSTEMSTORAGE(initial20knext20kpctincrease75)pctfree0;创建唯一索引CREATEUNIQUEINDEXidx_emp_enameonEMP(empno)TABLESPACEusersSTORAGE(initial20knext20kpctincrease75)、pctfree0;创建位图索引CREATEbitmapINDEXonEMP(sex);--可能的值少,重复多删除索引DROPINDEXindex_ename;索引的管理
8、User_indexes:存放用户所创建的索引信息User_ind_columns:存放用户索引的字段信息查询ida表的索引信息selectindex_name,column_name,column_positionfromuser_