Oracle同義詞和序列

2022-03-21 04:55:30 字數 2017 閱讀 8530

1

1同義詞:是表、索引、檢視的模式物件的乙個別名,通過模式物件建立同意詞,可以隱藏物件的實際名稱和 所有者資訊,為物件提供一定的安全性,開發應用程式時;應該盡量避免直接使用表,檢視 或其他物件,改用物件的同義詞。23

2避免當管理員對資料庫物件做出修改和變動後,必須重新編譯應用程式,只需要在資料庫中對同義詞進行修改,不必對應用程式做任何改動;45

3同義詞分為 兩種型別:公有同義詞和私有同義詞,公有同義詞被乙個特殊的使用者組public所擁有

6所有使用者都可以使用,而私有詞只能被建立它的使用者使用

7同義詞只是乙個模式物件的別名,不占用任何的儲存空間89

--建立部門表的同義詞

10create

public synonym public_dept for

scott.dept1;

11select

*from

public_dept;

12--

賦予simon 查詢任何表的許可權

13grant

select

anytable

tosimon;

14--

建立私有同義詞 ,私有詞只有當前使用者可以直接引用,其他使用者引用必須帶模式名 :sys.private_dept

15create synonym private_dept for

scott.dept;

16select

*from

sys.private_dept;

17drop

synonym private_dept;

18drop

public

synonym public_dept;

1920

--***序列物件

21--

序列是oracle提供的用於生成一系列唯一數字的資料庫物件,生成自動遞增的序列號;提供唯一主鍵值

22create

sequence empno_seq

23 maxvalue 99999

24 start with

9000

25 increment by

10026 cache 50; --

序列允許將序列提前生成 cache x個先存入記憶體,在發生大量申請序列語句時,可直接到執行最快的記憶體中去得到序列。

27insert

into

emp(empno,ename,deptno)

28values(empno_seq.nextval,'

中國',20

);29

select

*from

emp;

30--

觸發器31

create

orreplace

trigger

tr_emp

32 before insert

onemp

33for

each row

34begin

35select empno_seq.nextval into :new.empno from

dual;

36end;37

insert

into

emp(ename,deptno)

38values('

南昌',20

);39

--查詢當期的序列號 -插入測試資料,啟用當前回話

40select empno_seq.nextval from

dual;

41select empno_seq.currval from

dual;

42--

修改序列

43alter

sequence empno_seq

44 maxvalue 100000

45 increment by

246 cache 100

47--

刪除序列

48drop sequence empno_seq;

序列和同義詞

序列 序列和檢視一樣,不占有實際的儲存空間,只是在資料庫中儲存它的定義 建立序列 create sequence emp seq increment by 1 start with 1 nomaxvalue nocycle cache 10 引用序列 insert into emp values e...

序列和同義詞

1 定義 僅向前的數字變數 和sql 中的自動編號有點像 identity 1,2 2 如何定義乙個序列 格式 create sequence 序列名稱 start with 起始數 increment by 增長量 maxvalue 值 minvalue 值 cycle 當到達最大值的時候,將繼續...

oracle 序列與同義詞

建立序列需要許可權 create sequence 授權過程 建立序列的語法 create sequence 序列名 increment by n increment by n 設定序列的間隔長度 例如 預設情況下,不設定間隔長度預設為一 其他引數 start with 定義序列的起始值 maxva...