1. 程式人生 > >第一講(管理方案對象)

第一講(管理方案對象)

存儲 res varchar2 lec var bms table 存儲過程 splay

一、什麽是方案: 屬於一個用戶下,所有數據庫對象的總稱表、視圖、序列、索引、同義詞 存儲過程、存儲函數、觸發器、包和包體一個用戶就是一個方案,創建用戶的時候,系統會自動創建一個同名的方案 二、常用的數據庫對象 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‘,[email protected]
/* */); insert into test3 values(2,‘Mary‘,[email protected]); 在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 );

第一講(管理方案對象)