1. 程式人生 > >ORACLE初學第二篇

ORACLE初學第二篇

一、oracle中序列的簡介

序列作為資料庫中的物件,主要作用是生成唯一的主鍵值

二、建立序列

create sequence user_seq;

在上面的基礎上:

insert into t_user values(user_seq.nextval,’xiao123456’,’xiao123456’);

然後提交事務就可以看到記錄!(nextval是下一個值,currval是當前值,插入的時候要用下一個值)
我們可以查序列的當前值如下

SQL> insert into t_user values(user_seq.nextval,'xiao123456'
,'xiao123456'); 1 row insert SQL> insert into t_user values(user_seq.nextval,'xiao123456','xiao123456'); 1 row inserted SQL> insert into t_user values(user_seq.nextval,'xiao123456','xiao123456'); 1 row inserted SQL> select user_seq.currval from dual; CURRVAL ---------- 3 /*通過查詢虛表裡面的資料*/

我們建立序列預設初始值是1,我們可以指定預設的初始值:

SQL> create sequence user_seq2 start with 100;
Sequence created

SQL> insert into t_user values(user_seq2.nextval,'xiao123456','xiao123456');
1 row inserted

SQL> select user_seq2.currval from dual;
   CURRVAL
----------
       100

三、序列的屬性

Minvalue maxvalue 最大值和最小值 預設最小值 1 最大值 10 的 27 次方; Increment by 屬性
序列增長步長 預設值 1 Cycle 設定迴圈; (瞭解即可,不使用); Cache 快取設定; 一次獲取序列的多個連續值,預設 20
,放到記憶體中,方便下次快速獲取;

例如:

create sequence user_seq3 minvalue 5 maxvalue 100;

跳著增長,例子:

SQL> create sequence user_seq4 increment by 3;
Sequence created

SQL> select user_seq4.nextval from dual;
   NEXTVAL
----------
         1

SQL> select user_seq4.nextval from dual;
   NEXTVAL
----------
         4

設定快取能進行優化

create sequence user_seq5 cache 30;

四、插入和更新語句(用的是oracle自帶的dept表)

SQL> update dept set dname='司法部' where deptno=50;
1 row updated

SQL> update dept set dname='網路部',loc='China' where deptno=50;
1 row updated

SQL> insert into dept(deptno,dname)values(60,'社會輿論部');
1 row inserted