1、视图
dm中视图分为普通视图和物化视图。其中普通视图不占磁盘空间。
1.1、创建语法
SQL> create view () as select () from () where ();
例子:
SQL> create view v1 as select * from dmhr.employee;
1.2、视图查看
SQL> select view_name,text from dba_views where view_name='V1';
1.3、修改视图
SQL> create or replace view v1 as select employee_name,JOB_ID from dmhr.employee;
1.4、删除视图
Sql>Drop view v1;
2、序列
2.1、创建序列
SQL> create sequence s1
start with 1 ---序列的起始
increment by 1 --自增多少
maxvalue 5 ---最大值
Nocache --是否缓存
nocycle; --是否循环
2.2、序列应用
SQL> create table test.t12(id int primary key);
SQL> insert into test.t12 values(s1.nextval);
SQL> insert into test.t12 values(s1.nextval);
SQL> insert into test.t12 values(s1.nextval);
SQL> insert into test.t12 values(s1.nextval);
SQL> insert into test.t12 values(s1.nextval);
3、同义词
同义词指表或视图的别名,分为普通同义词、公共同义词。
3.1、创建同义词
公共:
SQL> create public synonym ss1 for dmhr.employee;
普通:
SQL> create synonym ss2 for dmhr.employee;
3.2、修改同义词
SQL> create or replace synonym ss2 for dmhr.employee;
3.3、删除同义词
SQL> Drop synonym ss2;
SQL> Drop public synonym ss1;
4、索引
dm支持哪些索引?
二级索引,位图索引,唯一索引,复合索引,函数索引,分区索引等。
默认的表是索引组织表,利用rowid创建一个默认的索引,所以我们创建的索引,称为二级索引。
4.1、查看表的索引
SQL> select table_name,index_name from dba_indexes where table_name='T12';
4.2、索引的作用
加快表的查询,对数据库做DML操作的时候,数据库会自动维护索引。索引是一棵倒置的树,使用索引,就是对这个索引树进行遍历。
建立索引的规则:
1、经常查询的列
2、连接条件列
3、谓词经常出现的列(where)
4、查询是返回表的一小部分数据
不适合创建索引的情况:
1、列上有大量的null
2、列上的数据有限(例如:性别)
4.3、怎么创建索引
1、规划索引表空间。
2、表的数据是无序的,索引的数据是有序的。
案例:emp中的employee_id 建立索引。
SQL> create index ind_emp on emp(employee_id) tablespace indx;
4.4、查询索引
SQL> select table_name,index_name from dba_indexes where table_name='EMP';
查看表的执行计划:
我们可能常常碰到上面的情况,明明表上有索引却不走索引扫描,这个时候我们一般需要重新收集下统计信息:
begin
2 dbms_stats.gather_table_stats('SYSDBA','EMP');
3 end;
4 /
重新收集完统计信息后,再次查看果然走索引了:
注意一下:
创建索引,删除,重建索引和收集统计信息,不要在业务高峰去做。
4.5、维护索引
重建:
SQL> alter index ind_emp rebuild;
删除:
SQL> drop index ind_emp;