Oracle數據庫應用
01.表空間
我們知道oarcle數據庫真正存放數據的是數據文件(data files),Oarcle表空間(tablespaces)實際上是一個邏輯的概念,他在物理上是並不存在的,那麽把一組data files 撚在一起就成為一個表空間。
使用該CREATE TABLESPACE語句創建一個表空間,該表空間是數據庫中可以包含模式對象的空間分配。
表空間屬性:
一個數據庫可以包含多個表空間,一個表空間只能屬於一個數據庫
一個表空間包含多個數據文件,一個數據文件只能屬於一個表空間
表這空間可以劃分成更細的邏輯存儲單元
表空間分類:
一個永久表空間包含持久模式對象。永久表空間中的對象存儲在數據文件中。
一個撤銷表空間是一種通過使用Oracle數據庫,如果你在自動撤銷管理模式下運行的數據庫來管理還原數據永久表的。Oracle強烈建議您使用自動撤消管理模式,而不是使用回滾段進行撤消。
一個臨時表空間包含模式對象只有一個會話的持續時間。臨時表空間中的對象存儲在臨時文件中。
當你創建一個表空間時,它最初是一個讀/寫表空間。隨後可以使用該ALTER TABLESPACE語句使表空間脫機或聯機,向其中添加數據文件或臨時文件,或者使其成為只讀表空間。
您還可以使用該DROP TABLESPACE語句從數據庫中刪除表空間。
表空間作用
方便存儲管理
提高I/O性能
備份和恢復
1--查看當前數據庫的所有表空間 註意需管理員權限 2 select tablespace_name from dba_tablespaces; 3 --用system登錄 授權表空間權限 4 GRANT CREATE tablespace to LIUTAO 5 6 --創建表的同時指定表空間 7 create table grade 8 ( 9 gid number primary key not null, 10 gname nvarchar2(32) 11 )tablespace jbit 12 13 --創建表空間 第一次和創建至少指定一種物理文件14 create tablespace jbit 15 datafile ‘E:\app\Administrator\oradata\orcl\jbit.DBF‘ 16 size 10M --初始大小 17 autoextend on next 32M maxsize unlimited 18 19 --用system登錄 授權表空間刪除權限 20 GRANT drop tablespace to LIUTAO 21 --刪除表空間的同時刪除物理文件 22 drop tablespace jbit including contents and datafiles
02.序列
序列是用於生成唯一、連續序號的對象 序列可以是升序的,也可以是降序的
創建語法:
create sequence 序列名稱
[start with 初始量]
[increment by 遞增量]
[maxvalue 最大值| nomaxvalue]
[minvalue 最小值| nominvalue]
[cycle | nocycle]
[cache 緩存個數| nocache];
start with:生成第一個序列號,對於升序列,其默認值為序列最小值;對於降序序列,其默認值為序列的最大值 。
increment by:用於指定序列號之間的間隔,其默認值為1,如果integer為正值,則生成的序列按升序排列,如果integer為負值,則生成的序列將按降序排列。
maxvalue:序列可以生成的最大值。
nomaxvalue:oracle將升序序列的最大值設為1027,將降序序列的最大值設為-1.這是默認選項。
minvalue:minvalue必須小於或等於start with的值,並且必須小於maxvalue的值。
nominvalue:oracle將升序的最小值設為1,或將降序序列的最小值設為-1026.這是默認值。
cycle:序列在達到最大值或最小值後,將繼續從頭開始生成值。
nocycle:序列在達到最大值或最小值後,將不能再繼續生成值。不寫默認為nocycle這是默認選項 。
cache:預先分配一組序列號,並將其保留在內存中,這樣可以更快地訪問序列號.當用完緩存中的所有序列號.oracle將生成另一組數值,並將其保留在緩存中。
nocache:不會加快訪問速度而預先分配序列號,如果在創建序列時忽略了cache和nocache,orcale將默認緩存20個序列號。
通過序列的偽列來訪問序列的值
NEXTVAL 返回序列的下一個值
CURRVAL 返回序列的當前值
04.SYS_GUID函數
1 --創建一個序列 2 create sequence seq_first 3 --查詢下一個序列 4 select seq_first.nextval from dual 5 --查詢當前序列 6 select seq_first.currval from dual 7 --使用序列 8 insert into grade(gid,gname) VALUES(seq_first.nextval,‘ssh開發企業級框架‘)9 --刪除序列的SQL 10 DROP SEQUENCE seq_newsId;
03.同義詞
同義詞:使用對象(Table,View,同義詞)的一個別名,不占用任何實際的存儲空間,只是在Oracle的數據字典中保存其定義描述,在使用同義詞時,Oracle會將其翻譯為對應對象的名稱。
作用:屏蔽對象的名字及其持有者,為用戶簡化SQL語句
01、分類
私有同義詞
私有同義詞只能在其模式內訪問,且不能與當前模式的對象同名
公有同義詞
公有同義詞可被所有的數據庫用戶訪問
1 --同義詞 2 -- 私有同義詞 3 --私有同義詞只能在其模式內訪問,且不能與當前模式的對象同名 4 --公有同義詞 5 -- 公有同義詞可被所有的數據庫用戶訪問 6 --私有同義詞 7 --使用Ssytem登錄,授予私有同義詞的權限 8 grant create synonym to LIUTAO 9 --用liutso登錄 創建學生表的同義詞 10 CREATE synonym stu for LIUTAO.STUDENT 11 12 --創建共有同義詞權限 13 GRANT create PUBLIC SYNONYM to LIUTAO 14 15 --用liutao登錄,創建班級表的同義詞 16 CREATE PUBLIC SYNONYM gra for LIUTAO.grade 17 select * from gra 18 --liutao登陸模式授權 19 grant select on grade to PUBLIC 20 --查看某張表的同義詞 21 SELECT * FROM SYS.ALL_SYNONYMS WHERE table_NAME=‘GRADE‘ 22 --刪除私有同義詞 23 drop synonym gra 24 --用system登錄,授予liutao刪除共有同義詞的權限 25 grant drop PUBLIC SYNONYM to LIUTAO 26 --刪除共有同義詞 DROP PUBLIC SYNONYM public_emp; 刪除名為public_emp的公有同義詞 27 drop PUBLIC SYNONYM gra
小補充:收回權限
1 --用system登錄收回權限 2 revoke drop tablespace from LIUTAO
Oracle數據庫應用