[獨孤九劍]Oracle知識點梳理(一)表空間、用戶
[獨孤九劍]Oracle知識點梳理(二)數據庫的連接
[獨孤九劍]Oracle知識點梳理(三)導入、導出
[獨孤九劍]Oracle知識點梳理(四)SQL語句之DML和DDL
[獨孤九劍]Oracle知識點梳理(五)數據庫常用對象之Table、View
[獨孤九劍]Oracle知識點梳理(六)數據庫常用對象之Procedure、function、Sequence
[獨孤九劍]Oracle知識點梳理(七)數據庫常用對象之Cursor
[獨孤九劍]Oracle知識點梳理(八)常見Exception
[獨孤九劍]Oracle知識點梳理(九)數據庫常用對象之package
[獨孤九劍]Oracle知識點梳理(十)%type與%rowtype及常用函數
Oracle 的結構是 區/段、表空間、用戶、表...(區段是Oracle存儲方面的概念,編碼人員不需要了解過多)。當我們安裝完Oracle後,默認就會擁有一個數據庫,之後的所有操作,都是在這個默認的數據庫中進行的。
注: 這裡要與SqlServer的數據庫(database)概念區別開,SqlServer中的數據庫是我們最常操作的,給我們的印象是每個數據庫是相互隔離的,不同用戶(user)登錄後可看到所有數據庫並進行操作;而Oracle中我們的操作都是在同一個數據庫(database或叫數據庫實例)中進行的,起到隔離作用的是用戶(user),不同用戶(user)登錄後,只能看到自己所擁有的對象(如表、視圖、過程、函數等);當然,以上的前提是權限最小的情況下。
用戶(user)擁有多個表(Table)、視圖(View)、存儲過程(Procedure)、函數(Function)、包(packgae)等;用戶及其包含的對象要存儲到某一個表空間中;一個表空間可以存儲多個用戶信息。
Oracle的表空間分為:
a) 創建(表空間文件為1個)
1 create tablespace tablespaceName 2 logger -- 可將表空間的創建信息記錄到Oracle的日志中 3 datafile 'tablespaceName.dbf' --保存文件的路徑,習慣上將表空間的名稱用於文件的名稱
--(可設置絕對路徑,相對路徑的話會保存到默認目錄下) 4 size 64m --最初的數據文件大小 5 autoextend on --開啟自增長 6 next 64m maxsize 1024m --每次增長64m,最大1024m 7 extent management local; --extent management 有兩種方式 local(本地管理,默認);
--dictionary(數據字典管理)
b) 創建(表空間文件為多個)
1 create tablespace tablespaceName 2 logger 3 datafile 4 'tablespaceName01.dbf' size 64m autoextend on next 64m maxsize unlimited, --設置自增長且無上限 5 'tablespaceName02.dbf' size 64m autoextend on next 64m maxsize unlimited, 6 'tablespaceName03.dbf' size 64m autoextend on next 64m maxsize unlimited 7 extent management local;
c) 表空間增加文件
1 alter tablespace tablespaceName 2add datafile 'tablespaceName04.dbf' 3 size 64m autoextend on 4next 64m maxsize unlimited;
d) 刪除表空間
1 drop tablespace tablespaceName including contents and datafiles cascade constraints;
a) 創建(表空間文件為1個)
1 create tablespace tablespaceName 2 logger -- 可將表空間的創建信息記錄到Oracle的日志中 3 tempfile 'tablespaceName.dbf' --保存文件的路徑,習慣上將表空間的名稱用於文件的名稱
--(可設置絕對路徑,相對路徑的話會保存到默認目錄下) 4 size 64m --最初的數據文件大小 5 autoextend on --開啟自增長 6 next 64m maxsize 1024m --每次增長64m,最大1024m 7 extent management local; --有兩種方式 local(本地管理,默認)、dictionary(數據字典管理)
b) 創建(表空間文件為多個)
1 create tablespace tablespaceName 2 logger 3 tempfile 4 'tablespaceName01.dbf' size 64m autoextend on next 64m maxsize unlimited, --設置自增長且不設置上線 5 'tablespaceName02.dbf' size 64m autoextend on next 64m maxsize unlimited, 6 'tablespaceName03.dbf' size 64m autoextend on next 64m maxsize unlimited 7 extent management local;
c) 給表空間增加文件
1 alter tablespace tablespaceName 2 add tempfile 'tablespaceName04.dbf' size 64m autoextend on next 64m maxsize unlimited;
d) 刪除表空間
1 drop tablespace tablespaceName including contents and datafiles cascade constraints;
a) 創建
1 create undo tablespace tablespaceName datafile 'tablespaceName.dbf' size 64m;
b) 修改系統默認UNDO表空間(有UNDOTBS修改為自己創建的)
1 alter system set undo_tablespace=tablespaceName;
c) 刪除UNDO表空間
1 drop tablespace "tablespaceName" including contents and datafiles;
用戶(user)的創建過程需要:a)設置用戶名、密碼;b)設置數據表空間;c)設置臨時表空間;d)設置權限,幾個步驟。
1 create user userName identified by password 2 defalut tablespace dataTablespaceName 3 temporary tablespace tempTablespaceName; -- a、b、c
1 grant connect,resource,exp_full_database,imp_full_database to userName; --d
用戶的修改及刪除
1 --修改密碼 2 alter user userName identified by password2; 3 4 --刪除用戶及其擁有對象 5 drop user userName cascade;
在創建用戶的過程中,有設置權限的操作。Oracle的內置了多個角色,角色擁有不同權限。
a) Oralce的特殊權限
b) 特殊角色
c) 用戶授權常用參數:
1 connect、resource、dba、unlimited tablespace、 2 create session --創建會話 3 create any sequence --創建序列 4 create any table --創建表 5 create any view --創建視圖 6 create any index --創建索引 7 create any procedure --創建存儲過程 8 create any directory --創建目錄 9 10 alter session --修改會話 11 alter any sequence --修改序列 12 alter any table --修改表 13 alter any view --修改視圖 14 alter any index --修改索引 15 alter any procedure --修改存儲過程 16 alter any directory --修改目錄 17 18 drop session --刪除會話 19 drop any sequence --刪除序列 20 drop any table --刪除表 21 drop any view --刪除視圖 22 drop any index --刪除索引 23 drop any procedure --刪除存儲過程 24 drop any directory --刪除目錄 25 26 select any table --查詢表 27 select any dictionary --查詢目錄 28 insert any table 29 update any table 30 delete any table 31 debug any procedure --debug存儲過程 32 debug connect session 33 exp_full_database --導出 34 imp_full_database --導入
1 select * from dba_role_privs a where a.grantee='userName'; 2 --或 3 select * from dba_sys_privs a where a.grantee='userName';
1 select ROLE, PRIVILEGE from role_sys_privs where role='RESOURCE'; --RESOURCE,CONNECT,DBA 2 --或 3 select grantee,privilege from dba_sys_privs where grantee='RESOURCE';
revoke resource from userName;
revoke unlimited tablespace from userName;
select * from v$version where rownum <=1;
當不同版本數據庫的導入導出操作是,需要標記版本號