oracle常用对象.ppt
OracleOracle快速入门快速入门Oracle中的对象目标表视图索引同义词序列表空间什么是视图视图是一种数据库对象,它允许用户从一个或多组表中通过查询语句创建一个“虚表”。视图中并没有存放数据,而仅仅是一条select查询语句,查询结果以表的形式表示。视图是创建在表的基础上的,也可以在视图的基础上再创建视图。视图不能创建索引。创建视图的表称为基表视图中可含有多表联接、集合运算符、DISTINCY运算符、集合函数、GROUP BY、CONNECT BY等字句时,视图通常是不能修改。视图的优点基表基表视图(虚表)视图(虚表)n安全,使用视图将用户与基表分开安全,使用视图将用户与基表分开n方便,简化用户的方便,简化用户的 SQL SQL 命令命令n一致性,试图不存储数据,操作视图的数据就是操作基表数据一致性,试图不存储数据,操作视图的数据就是操作基表数据创建语句CREATE VIEW VIEW_NAME AS SELECT*FROM BASE_TABLE WITH READ ONLYWITH CHECK OPTION使用视图进行操作select column_list from VIEW_NAME删除视图Drop VIEW_NAMESQL语句管理视图视图举例CREATE OR REPLACE VIEW V_EMP1ASSELECT*FROM EMP;SELECT*FROM USER_VIEWS;-查看用户的视图DESC V_EMP1-查看视图的结构INSERT INTO V_EMP(empno,ename,sal)VALUES(51,HR,4000);往视图插入数据,实际将数据插入到了基表SELECT*FROM EMP;-查询看一下插入成功没CREATE OR REPLACE VIEW V_EMP2ASSELECT*FROM EMP WHERE sal2500;INSERT INTO V_EMP2(empno,ename,sal)values(51,HR,2100);-OK插入也能成功,可以查一下基表,但是查询该视图却看不到数据SELECT*FROM V_EMP2-看不到往视图插入的数据,造成错觉视图举例CREATE OR REPLACE VIEW V_EMP2ASSELECT*FROM EMP WHERE sal2500WITH CHECK OPTIONWITH CHECK OPTION -不符合视图条件的数据不让插INSERT INTO V_EMP2(empno,ename,sal)VALUES(52,HR,2100);-失败CREATE OR REPLACE VIEW V_EMP_DEPTASSELECT empno,ename,sal,d.deptno,d.dname FROM EMP e INNER JOIN DEPT d ON e.deptno=d.deptno;INSERT INTO V_EMP_DEPT VALUES(1005,TOM,3100,52,SALES);失败,多表连接的视图不让插入和修改CREATE OR REPLACE VIEW V_READ ASSELECT*FROM EMP WITH READ ONLY;-只读的视图,不能插入、修改、删除记录索引是基于表建立的一种数据结构,通过表中的某些字段上建立索引,可以提高系统对表的查询速度。索引表中只保存索引关键字和纪录号,查询时根据索引关键字,可以从索引表中找到对应的纪录号,根据纪录号就可以快速的将纪录指针移到与关键字相对应的纪录上,从而得到查询结果。Oracle支持两种索引:B树索引用一个倒置的树状结构来加快查询表的速度位图索引只存在与oracle的企业版本中,适合在数据表中的列值重复较多的情况下创建索引索引的管理索引的原理deptno mgrROWID107010100102070201020030703010050ROWIDdeptno mgr100101070101005030703010200207020索引表索引表EMPEMPCREATE INDEXCREATE INDEX IDX_EMPIDX_EMP on on EMPEMP(deptno,mgr);(deptno,mgr);创建不唯一索引CREATE INDEX index_name on TABLE_NAME(index_column)TABLESPACE SYSTEM STORAGE(initial 20 k next 20 k pctincrease 75)pctfree 0;创建唯一索引CREATE UNIQUE INDEX idx_emp_ename on EMP(empno)TABLESPACE users STORAGE(initial 20 k next 20 k pctincrease 75)、pctfree 0;创建位图索引CREATE bitmap INDEX on EMP(sex);-可能的值少,重复多删除索引DROP INDEX index_ename;索引的管理User_indexes:存放用户所创建的索引信息User_ind_columns:存放用户索引的字段信息查询ida表的索引信息select index_name,column_name,column_position from user_ind_columns where table_name=IDA索引的管理同义词管理同义词就是为oracle数据库中的对象创建一个别名,使该对象的非创建者也可以直接通过该别名来访问。Oracle同义词有两种:公有同义词公有同义词由DBA创建,所有用户都可以访问CREATE public SYNONYM EMP FOR SCOTT.EMP;私有同义词私有同义词只能由创建者自己使用CREATE SYNONYM EMP FOR SCOTT.EMP;删除同义词:Drop synonym EMP与同义词有关的数据字典DBA_SYNONYMS:是数据库中的所有同义词的描述ALL_SYNONYMS:是数据库中的所有同义词的描述User_SYNONYMS:是用户可存取的所有同义词select*from DBA_SYNONYMS WHERE SYNONYM_NAME=EMP;同义词管理同义词用途应用程序应当尽量避免直接使用表名,DBA或设计人员改变了表名将直接影响程序,如果程序使用同义词,则只需修改同义词即可方便使用,不需带上模式名增强移植性定义共有同义词,换了用户也可以使用序列的管理序列就是一个连续的数字生成器,可设置为上升或下降当序列第一次被调用的时候将返回一个指定的值,然后根据规则增量增长序列可以是循环的,也可以是连续增加的,直到一个限制值为止。序列有两个伪列:CurrVal:表示当前列NextVal:下一个序列值创建一个序列CREATE SEQUENCE myseq INCREMENT BY 1 START WITH 1 MAXVALUE 1.0E28 MINVALUE 1 NOCYCLE CACHE 20NOORDER;CREATE TABLE AA(id number(10,0)not null,aa varchar2(10);insert into AA values(myseq.NEXTVAL,first);insert into AA values(myseq.NEXTVAL,second);SELECT*FROM AA;SELECT myseq.CURRVAL from dual;序列的管理删除一个序列Drop sequence myseq与序列有关的数据字典DBA_SEQUENCE:存放数据库中的所有序列的描述信息ALL_SEQUENCE:存放当前用户可存取的所有序列USER_SEQUENCES:用户序列的说明SELECT SEQUENCE_NAME,MIN_VALUE ,MAX_VALUE FROM user_sequences where SEQUENCE_NAME=SQ序列的管理簇举例表空间数据库由若干表空间组成表空间空间的集合包含:表段,存放表数据索引段,存放索引数据临时段,排序回滚段,事务读一致性、回滚查看有哪些表空间Select*from v$tablespace查看有哪些数据文件Select*from v$datafile表空间和数据文件的作用:使用户数据和数据字典(系统表数据)数据相分离。减少字典对象和模式对象在同一个数据文件中的竞争使不同应用程序的数据相分离。使用户对数据文件的管理更清晰,各个程序的表空间的操作互不影响,即使单个表空间处于脱机也不影响其他的表空间正常运行将回滚段从用户数据中分离出来,防止了单个磁盘的故障造成的数据的不可恢复表空间管理表空间可以分为两大类:系统表空间:在创建数据库时一同创建的,用于存放数据字典对象,并包含了系统回滚段。可以存储用户数据,但oracle建议一般不用于存放用户数据非系统表空间:永久表空间:用于存储用户永久数据临时表空间(temporary tablespace):用于存储临时数据,如用户数据进行排序时产生的数据;使用临时表空间在很大程度上提高了用户进行大量数据的排序性能还原表空间(undo tablepspace):提供对回滚段的自动管理表空间管理管理表空间主要包括以下操作:创建表空间Create(temporary|undo)tablespace更改表空间的存储参数更改表空间的状态Alter tablespace/manage tablespace删除表空间drop tablepace/manage tablespace查看表空间的信息表空间管理对表空间中的区的分配和使用有两种管理方式:数据字典管理:使用数据字典来跟踪表空间的使用情况本地管理(10g默认的方式,也是推荐的方式):使用位图跟踪表空间的使用情况,位图存储于头文件中表空间管理创建表空间Extend management字句:区的管理方式本地管理(local)还是字典管理(dictionary)如果是local需要指定是自动管理(autoallocate)表空间大小还是一个指定大小(uniform size)的区来管理Segment space management字句:段空间的管理方式自动管理(auto)或使用空间列表进行管理(manual)是否启动重做日志文件纪录表空间的数据更改情况Logging /nologgingdatafile字句:至少指定一个属于该表空间的数据文件表空间管理创建表空间CREATE TABLESPACE APP LOGGING DATAFILE C:ORACLEORADATAEXAMPLEAPP1.DBF SIZE 5M REUSE AUTOEXTEND ON NEXT 512K MAXSIZE 10M EXTENT MANAGEMENT LOCAL创建本地管理的临时表空间CREATE temporary TABLESPACE APPTEMP TEMPFILE C:ORACLEORADATAEXAMPLEAPPTEMP.DBF SIZE 5M EXTENT MANAGEMENT LOCALUniform size 1 M创建本地管理的还原表空间CREATE undo TABLESPACE“roolback1 DATAFILE C:ORACLEORADATAEXAMPLEroolback1.DBF SIZE 5M 表空间管理表空间的状态联机:用户可以正常访问此表空间的数据又可以将联机状态的表空间设置为只读或可读写:脱机:此状态的表空间或数据暂时不可用,用户不能访问用于部分的停止数据库、修复数据库文件、改物理文件名、移动物理文件表空间脱机ALTER TABLESPACE APP OFFLINE Normal恢复表空间为联机状态ALTER TABLESPACE APP ONLINE更改表空间的状态SYSTEM表空间和临时表空间不能被脱机包含活动的回滚段的表空间也不能被脱机Normal清除此表空间的所有数据文件在SGA中分配的空间,该方式为默认方式,且再联机的时候不需要执行介质恢复Temporary脱机前需要设置检查点,则再联机的时候需要执行介质恢复Immediate脱机前不需要设置检查点,则再联机的时候需要执行介质恢复如果数据库运行在noarchivelog模式下,则不能立即脱机For recover将数据库中进行point-in-time恢复的表空间设置为脱机表空间管理设置表空间为只读,只读表空间不能写数据,可删除数据ALTER TABLESPACE APP READ ONLY 可将只读表空间写到CD中,然后修改表空间数据文件的位置设置表空间为读/写ALTER TABLESPACE APP READ WRITE 表空间管理删除表空间DROP TABLESPACE“APP”INCLUDING CONTENTS AND DATAFILES带INCLUDING CONTENTS可删除表空间的对象,不删文件带AND DATAFILE删除数据文件改变表空间数据文件大小ALTER DATABASE DATAFILE d:oracleoradatastudymyapp01.dbf autoextend on -自动扩张Resize 50m -改变大小ALTER TABLESPACE MYAPPADD DATAFILE d:oracleoradatastudymypp02.dbf size 10m;改变表空间数据文件准备好数据文件表空间离线修改数据文件举例表空间离线Alter tablespace myapp offline修改数据文件名称,在操作系统下改修改表空间数据文件alter tablespace myapprename datafile d:oracleoradatastudymyapp01.dbfto d:oracleoradatastudymyapp02.dbf如果要重命名如果要重命名systemsystem表空间的表空间的数据文件?数据文件?脚本创建表空间CREATE TABLESPACE STORE CREATE TABLESPACE STORE LOGGING LOGGING DATAFILE D:DATAFILE D:ORACLEORACLEORADATAORADATASTUDYSTUDYSTORE.ora SIZE 5M EXTENT STORE.ora SIZE 5M EXTENT MANAGEMENT LOCAL MANAGEMENT LOCAL表空间名表空间名启用重做日志记录表空间数据的更改启用重做日志记录表空间数据的更改本地管理表空间使用情况本地管理表空间使用情况总结Oracle对象管理表管理视图管理索引管理同义词管理序列的管理表空间的管理总结表视图索引同义词序列表空间