oracle中序列,同義詞的創建


序列

  序列是用來生成唯一,連續的整數的數據庫對象.序列通常用來自動生成主機那或唯一鍵的值.序列可以按升序排序,

也可以按降序排序.例如,銷售流水表中的流水號可以使用序列自動生成.

創建序列語法:

create sequence sequence_name

  [START WITH integer]

  [INCREMENT BY integer]

  [MAXVALUE integer|NOMAXVALUE ]

  [MINVALUE integer|]NOMAXVALUE ]

  [CYCLE|NOCYCLE]

  [CACHE integer|NOCACHE]

  • START WITH: 指定要生成的第一 一個序列號。對於升序序列其默認值為序列的最小值,對於降序序列,其默認值為序列的最大值。
  • INCREMENT BY: 用於指定序列號之間的間隔,其默認值為1. 如果為正值,則生成的序列將按升序排列:如果n為負值,則生成的序列將按降序排列。
  • MAXVALUE:指定序列可以生成的最大值。
  • NOMAXVALUE: 如果指定了NOMAXVALUE. Oracle 將升序序列的最大值設為10的27次方,將降序序列的最大值設為-1。這是默認選項。
  • MINVALUE:指定序列的最小值。MINVALUE 必須小於或等於START WITH的值,並且必須小於MAXVALUE。
  • NOMINVALUE:如果指定了NOMINVALUE. Oracle 將升序序列的最小值設為1.將降序序列的最小值設為-10的26次方。這是默認選項。
  • CYCLE:指定序列在達到最大值或最小值后.將繼續從頭開始生成值。
  • NOCYCLE:指定序列在達到最大值或最小值后,將不能再繼續生成值。這是默認選項。
  • CACHE:使用CACHE選項可以預先分配一組序列號,並將其保留在內存中.這樣可以更快地訪問序列號。當用完緩存中的所有序列號時, Oracle 將生成另一組數值,並將其保留在緩存中。
  • NOCACHE:使用NOCACHE選項,則不會為加快訪問速度而預先分配序列號。如果在創建序列時忽略了CACHE和NOCACHE選項,Orale將默認緩存20個序列號。

創建序列

create sequence seq1
       start with 1
       increment by 1
       maxvalue 300
       nocycle
       cache 10;

  創建序列之后,可以通過nextval和currval偽列來訪問該序列的值.可以偽列中選擇值,但是不能操縱他們的值

  1. nextval:創建序列后第一次使用nextval時,將返回該序列的初始值.以后再引用nextval時,將使用increment by子句來增加序列值,並返回這個新值
  2. currval:返回序列的當前值,即最后一次引用nextval時返回的值

更改序列

  alter sequence 命令用於修改序列的定義,如果執行下列操作,則會修改序列

  • 設置或刪除minvalue或maxvalue
  • 修改增量值
  • 修改緩存中序列號的數目

修改語法如下

alter sequence [schema.]sequence_name

  [INCREMENT BY integer]

  [MAXVALUE integer|NOMAXVALUE ]

  [MINVALUE integer|]NOMAXVALUE ]

  [CYCLE|NOCYCLE]

  [CACHE integer|NOCACHE]

刪除序列

刪除語法:drop sequence [schema.]sequence_name

用於從數據庫刪除: drop sequence sequence_name

同義詞

  同義詞就有點像應用分身,可以把一張表復制一份,不過需要用戶有權限才能去創建,而且可以限定使用范圍

注意:創建的時候它不會管表存不存在,只有當使用的時候才會去調用

作用

  • 簡化SQL語句語句
  • 隱藏對象的名稱和所有
  • 為分布式數據庫的遠程對象提供了位置透明性
  • 提供對對象的公共訪問

私有同義詞

  私有同義詞只能被當前模式的用戶訪問,且私有同義詞名稱不可與當前模式對象名稱相同,要在當前模式下創建私有同義詞,用戶必須

擁有create sysnonym系統權限.要在其他用戶模式下創建私有同義詞,用戶必須擁有create any synonym系統權限

  創建私有同義詞的語法:

create [or replace] sysnonym [schema.] sysnonym_name

for [schema.]object_name;

 create synonym system.empTow
 for scott.emp

在語法中:

  • or replace:表示在同義詞存在的情況下替換該同義詞
  • synonym_name:表示要創建的同一詞的名稱
  • object_name: 指定要為之創建同義詞的對象的名稱
  • schema:當前用戶名

公有同義詞

   公有同義詞可被所有的數據庫用戶訪問.公有同義詞可以隱藏數據庫對象的所有作者和名稱,並降低SQL語句的復雜性.要創建

公有同義詞,用戶必須擁有craete public synonym系統權限

語法:

create [or replace] public synonym 

for [schema.]object_name;

create or replace public synonym empTow
for scott.emp

刪除同義詞

語法: drop synonym [schema.]object_name;

drop public synonym empTow

刪除也需要權限否則不允許刪除

該命令只會刪除同義詞,不會刪除對應的對象.


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM