ORACLE日常 序列

2022-03-11 17:36:43 字數 1777 閱讀 9573

一、序列的概念:在oracle中就是乙個物件,這個物件用來提供乙個有序的資料列,這個有序資料列的值都不會重複。

1.序列可以自動生成唯一值;

2.是可以可以被共享的物件;

3.典型的被生成主鍵值的乙個物件;

4.可以被替代的應用程式**;

5.當sequence值存放在快取中的時候可以提高訪問效率。

二、建立序列的語法:

create

sequence name

[increment by n][

start with n][

][][

]

引數值解析:

1.increment by n:表明值每次增長n(步長)

2.start with n: 從n開始

3.: 設定最大值

4.: 設定最小值,start with不能小於最小值。

5.cycle | nocycle          : 是否迴圈,建議不使用

6.cache n | nocache    : 是否啟用快取。

例如:

create

sequence emp_id_seq

start

with

100//

從100開始

increment by1

//每次增長1

nomaxvalue

//沒有最大值

nominvalue

//沒有最小值

nocycle

//沒有迴圈

nocache;

//不快取

可以通過資料字典user_sequences來檢視當前使用者擁有的序列資訊;

select

sequence_name,min_value,max_value,last_number

from

user_sequences

where sequence_name =

'emp_id_seq

';

序列的屬性:

1.nextval 返回下乙個可用的序列值;

即使被不同的使用者呼叫,每次也返回乙個唯一的值;

select emp_id_seq.nextval from dual;

2.currval獲取序列當前的值;

在currval呼叫之前,必須保證nextval已經獲取過一次值。

select emp_id_seq.currval from dual;

3.快取:使用快取可以提高sequence的訪問效率

三、修改序列:

alter

sequence name

[increment by n][

][][

]

注意:1.使用者必須是序列的擁有者,或者有修改序列的許可權;

2.修改後的序列,只能對之後的值起作用;

3.不能修改start with,如果想修改序列,只能刪了重新建。

四、刪除序列:

drop sequence seq_name;

例如:

drop sequence emp_id_seq;

oracle 日常筆記

1.替換文字 update table name set field name replace field name from str to str where 說明 table name 表的名字 field name 欄位名 from str 需要替換的字串 to str 替換成的字串 2.排序...

Oracle日常記錄

oracle 資料型別number m,n 中m表示的是所有有效數字的位數,n表示的是小數字的位數。m的範圍是1 38,即最大38位。我以為,m表示整數字數,n表示小數字數,在專案中,死活都儲存不了。切記!varchar2 100 表示可以儲存100個字元,50個漢字。nvarchar2 100 表...

oracle日常運維

1.解鎖使用者 select username,account status from dba users b where b.username upper alter user account unlock 解鎖 alter user identified by sh 解開expired alte...