首页 > 代码库 > 第一讲(管理方案对象)

第一讲(管理方案对象)

一、什么是方案:
 
属于一个用户下,所有数据库对象的总称表、视图、序列、索引、同义词  存储过程、存储函数、触发器、包和包体一个用户就是一个方案,创建用户的时候,系统会自动创建一个同名的方案
 
二、常用的数据库对象
 
1、临时表:当事务或者会话结束的时候,表中的数据自动删除
 
创建:
自动创建:order by
手动创建:create global temporary table ******
基于事务的临时表:
create global temporary table test1 (tid number,tname varchar2(20))  on commit delete rows;
基于会话的临时表:
create global temporary table test2 (tid number,tname varchar2(20))  on commit preserve rows;  
 
  • delete rows表示事务相关,也就在事务结束后truncate data in the temporary table.当事务提交后数据就已经清除;
  • preserve rows表示在会话结束后清除临时表的数据,在会话中止时或者导常退出时数据都会被清除掉;
 
2、约束的状态
(1) enable  disable
(2) validate: 对表中已经存在的数据和将来的数据都要验证
(3) novalidate: 对表中已经存在的数据不做验证,只将来的数据
 
create table test3
(
  tid number,
  tname varchar2(20),
  email varchar2(40)
);
 
insert into test3 values(1,‘Tom‘,‘tom@126.com‘);
insert into test3 values(2,‘Mary‘,‘tom@126.com‘);
 
在email上加上unique约束:
alter table test3 add constraint test3_email_unique unique(email);
alter table test3 add constraint test3_email_unique unique(email) deferrable enable novalidate;
 
3、Oracle的分区
 
(1)类型:
*、范围分区
*、列表分区
*、Hash分区
*、范围-列表分区
*、范围-Hash分区
 
(2)例子:
*、范围分区
create table test4
(
     empno number,
     ename varchar2(20),
     sal   number,
      deptno number
)
partition by range(sal)
(
      partition part_range_1 values less than (1000),
      partition part_range_2 values less than (3000),
       partition part_range_3 values less than (MAXVALUE)
);
            
 
查看SQL的执行计划
explain plan for select * from test4 where sal<=2500;
select * from table(dbms_xplan.display);  
    
*、列表分区
create table test5
(
    empno number,
    ename varchar2(20),
    sal   number,
    deptno number
)
     partition by list(deptno)
(
     partition part_list_1 values(10,20),
     partition part_list_2 values(30),
     partition part_list_3 values(40,50)
);
 
*、Hash分区(求余数)
create table test6
(
    empno number,
    ename varchar2(20),
    sal   number,
    deptno number
)
    partition by hash(ename)   
 (
      partition part_hash_1,
      partition part_hash_2
);

第一讲(管理方案对象)