2000字范文,分享全网优秀范文,学习好帮手!
2000字范文 > 7 索引 视图 同义词 序列 表空间

7 索引 视图 同义词 序列 表空间

时间:2023-11-19 08:31:32

相关推荐

7 索引 视图 同义词 序列 表空间

1.重要性

索引提供对数据标的快速访问,视图给表提供了另外一种数据组织方式,应用相当广泛。

2.具体事例及sql

(1)对索引的操作(增删查改) 以及相关知识点

--创建唯一索引(唯一索引列上的值不为空)(普通索引不加UNIQUE即可)CREATE UNIQUE INDEX UN_SNO ON TABLE(SNO ASC);--创建复合索引CREATE INDEX INDEX_SNODEPT ON TABLE(SNO DESC,SDEPT);--重命名索引ALTER INDEX INDEX_LIZI RENAME TO INDEX_LIZI1;--对索引进行合并ALTER INDEX INDEX_LIZI COALESCE;--重建INDEX_LIZI索引ALTER INDEX INDEX_LIZI REBUILD;--删除索引DROP INDEX INDEX_SND;--查看索引SELECT INDEX_NAME,INDEX_TYPE,TABLE_NAME FROM USER_INDEXES ORDER BY TABLENAME;--查看被索引的列(查找索引INDEX_SAGE被引用的字段以及对应的表)SELECT INDEX_NAME,TABLE_NAME,COLUMN_NAME FROM USER_IND_COLUMNS WHERE INDEX_NAME=UPPER('INDEX_SAGE');--查看索引的大小SELECT SUM(BYTES)/(1024) AS "SIZE(KB)",SUM(BYTES)/(1024*1024) AS "SIZE(MB)" FROM USER_SEGMENTS WHERE SEGMENT_NAME=UPPER('INDEX_SAGE');

A:数据库表的索引,可以极大的提高查询的速度。对于一个较大的表,创建索引,通常花费几小时的来完成的查询只需要几分钟。

B:复合索引的顺序一定要和查询语句中的WHERE子句后的顺序相同才有效。

C:索引类型为FUNCTION-BASED NORMAL,为B树索引。当表在使用一段时间后,伴随着索引的改变,索引会产生大量的碎片,降低效率。合并索引操作在不改变索引的物理组织结构基础上,将B树叶子节点中的存储碎片合并在一起。重建索引和合并索引都可以消除索引碎片,区别在于合并索引代价较低,无需额外空间,而重建相反。

(2)对视图的操作以及知识点

--创建视图CREATE VIEW V_VIEW1 ASSELECT STU.SNO,STU.SNAME,AME,GRADE.SCOREFROM STU INNER JOIN GRADE ON STU.SNO=GRADE.SNOWHERE STU.DEPT=''; --通过视图插入数据 删除修改等和对表操作语句一致INSERT INTO(...) VALUES(...);UPDATE ...; DELETE ...;--删除视图DROP VIEW V_VIEW1;

A:视图在数据库中存储的是select语句,也即数据库内并没有存储视图这个表,select语句的结果集构成视图返回的虚拟表。

B:create view创建视图时,select语句不能包含order by,into等子句,且不能引用临时表或表变量。

C:创建视图是若加上了参数WITH READ ONLY,那么该视图只可查询。对视图数据删除时,视图的数据必须来源于一个单表。

(3)同义词SYNONYM的使用

--创建同义词Synonym,并执行相应查询CREATE [OR REPLACE] SYNONYM MYSTU FOR SYSTEM.TABLE;SELECT * from MYSTU;--删除同义词DROP SYNONYM MYSTU;

A:同义词的优势:节省了大量数据库空间,扩展了数据库的使用范围,可创建在不同数据库服务器上通过网络实现连接。

B:若不显式指定同义词参数PUBLIC,则创建的为私有同义词,只供当前用户使用。

(4)序列Sequence的操作

--创建序列(起始值为1,start with:升序为1降序为-1,自增1)CREATE SEQUENCE STUSEQMINVALUE 1 START WITH 1 NOMAXVALUEINCREMENT BY 1 CACHE 30;--使用SEQUENCE(通过NEXTVAL CURRVAL这两个伪列来访问下一个值和当下值)SELECT STUSEQ.NEXTVAL FROM DUAL;SELECT STUSEQ.CURRVAL FROM DUAL;--修改序列(不会改变当前序列的值)--(修改也不能对已经使用的序列出现逻辑上的错误,如修改的后的最大值企图小于当前的值)ALTER SEQUENCE STUSEQMINVALUE -1000 MAXVALUE 1000;--删除序列DROP SEQUENCE STUSEQ;

A:MINVALUE:最小值start with:升序为1降序为-1 NOMAXVALUE升序的最大值为10的27次方,降序的默认值为-1 CACHE标表示生成一组序列号保留在内存中,默认为20;

(5)表空间的操作

--创建表空间(两个数据文件供占有空间15M,EXTENT指明表空间类型是本地管理表空间,UNIFORM指定分区大小)CREATE TABLESPACE MYSPACE DATAFILE 'PATH' SIZE 10M,'PATH1' SIZE 5MEXTENT MANAGEMENT LOCAL UNIFORM SIZE 1M;--查询表空间信息SELECT tablespace_name,sum(bytes)/1024/1024 as MB FROM dba_data_files GROUP BY tablespace_name;--扩充表空间ALTER TABLESPACE MYSPACE ADD DATAFILE 'PATH' SIZE 1000M; --删除表空间(数据文件未删除)DROP TABLESPACE MYSPACE;--创建用户,并为用户指定表空间CREATE USER BISADMIN IDENTIFIED BY BISADMIN DEFAULT TABLESPACE MYSPACE;--查询用户所属表空间信息SELECT USERNAME,DEFAULT_TABLESPACE FROM DBA_USERS WHERE USERNAME='BISADMIN';

A:表空间是oracle统一存取格式的数据对象,由若干操作系统文件组成。表空间统一管理空间中的数据文件,一个数据文件只能属于一个表空间,一个数据库(实例)由若干表空间组成。oracle的所有数据都保存在表空间中。

B:用户通过CREATE创建的表空间都称为用户表自定义空间,除此外oracle还有两种表空间(系统表空间和临时表空间)。系统表空间用于存放系统数据,在数据库创建时创建,名称为SYSTEM。临时表空间也是安装库时创建,用于数据排序。

C:用户创建表可在Create语句后加上TABLESPACE ...,若不指定,存放在用户默认的表空间中。创建索引指定表空间同样。

基本表和索引一旦创建完成,表空间无法修改。

(6)数据字典

ORACLE数据字分为三类(10g版本已有1800多个数据字段)。

1.USER_(对象名),记录用户对象的信息.有USER_TABLES,USER_VIEWS,USER_CONSTRAINTS等。

2.ALL_(对象名),记录用户对象的信息及呗授权访问的对象信息。如ALL_TABLES等。

3.DBA_(对象名),记录数据库实例的所有对象信息,如DBA_USERS。一般来说DBA包含USER和ALL的信息。

以上代码用到的:DBA_USERS是oracle安装后自动创建的数据字典之一,其包含数据库实例中的所有用户的信息。

USER_TABLES,用于存储用户分配的表。USER_INDEXES,存储索引信息。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。