大战熟女丰满人妻av-荡女精品导航-岛国aaaa级午夜福利片-岛国av动作片在线观看-岛国av无码免费无禁网站-岛国大片激情做爰视频

專注Java教育14年 全國咨詢/投訴熱線:400-8080-105
動力節(jié)點LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁 hot資訊 淺談Oracle序列

淺談Oracle序列

更新時間:2021-03-01 17:36:57 來源:動力節(jié)點 瀏覽1176次

Oracle是目前最流行的客戶/服務器(CLIENT/SERVER)或B/S體系結(jié)構(gòu)的數(shù)據(jù)庫之一,而序列是一個計數(shù)器,它并不會與特定的表關(guān)聯(lián),通過創(chuàng)建Oracle序列和觸發(fā)器實現(xiàn)表的主鍵自增。 序列一般是用來填充主鍵和計數(shù)的,不占用磁盤空間,占用內(nèi)存。本文我們重點來講述一下Oracle序列
1、創(chuàng)建序列

ORACLE序列的語法格式為:

CREATE SEQUENCE 序列名
[INCREMENT BY n]
[START WITH n]
[{MAXVALUE/ MINVALUE n|NOMAXVALUE}]
[{CYCLE|NOCYCLE}]
[{CACHE n|NOCACHE}];

1)INCREMENT BY用于定義序列的步長,如果省略,則默認為1,如果出現(xiàn)負值,則代表Oracle序列的值是按照此步長遞減的。

2)START WITH 定義序列的初始值(即產(chǎn)生的第一個值),默認為1。

3)MAXVALUE 定義序列生成器能產(chǎn)生的最大值。選項NOMAXVALUE是默認選項,代表沒有最大值定義,這時對于遞增Oracle序列,系統(tǒng)能夠產(chǎn)生的最大值是10的27次方;對于遞減序列,最大值是-1。

4)MINVALUE定義序列生成器能產(chǎn)生的最小值。選項NOMAXVALUE是默認選項,代表沒有最小值定義,這時對于遞減序列,系統(tǒng)能夠產(chǎn)生的最小值是?10的26次方;對于遞增序列,最小值是1。

5)CYCLE和NOCYCLE 表示當序列生成器的值達到限制值后是否循環(huán)。CYCLE代表循環(huán),NOCYCLE代表不循環(huán)。如果循環(huán),則當遞增序列達到最大值時,循環(huán)到最小值;最小值為1。對于遞減序列達到最小值時,循環(huán)到最大值。如果不循環(huán),達到限制值后,繼續(xù)產(chǎn)生新值就會發(fā)生錯誤。

ORACLE OCP考試有道題關(guān)于序列,如下所示
Evaluate the following CREATE SEQUENCE statement:
CREATE SEQUENCE seq1
START WITH 100
INCREMENT BY 10
MAXVALUE 200
CYCLE
NOCACHE;
The sequence SEQ1 has generated numbers up to the maximum limit of 200. You issue the following
SQL statement:
SELECT seq1.nextval FROM dual;
What is displayed by the SELECT statement?
A. 1
B. 10
C. 100
D. an error

答案:A
6)CACHE(緩沖)定義存放序列的內(nèi)存塊的大小,默認為20。NOCACHE表示不對序列進行內(nèi)存緩沖。對序列進行內(nèi)存緩沖,可以改善序列的性能。 緩存選項會造成數(shù)據(jù)丟失,當實例異常關(guān)閉時。

2.刪除序列
語法是DROP SEQUENCE [schema].序列名;

CREATE SEQUENCE SEQ_TEST
INCREMENT BY 1
START WITH 1
MINVALUE 1 NOMAXVALUE
NOCYCLE;

DROP SEQUENCE SEQ_TEST;

3:序列使用

CURRVAL: 返回序列的當前值。
NEXTVAL: 序列遞增,返回下一值。

你不能使用序列的CURRVAL和NEXTVAL,在下面情況下(具體參見官方文檔):
1:在DELETE、SELECT、UPDATE的子查詢中
2:在視圖或物化事物的查詢中。
3:SELECT查詢中使用了DISTINCT操作符。
4:SELECT查詢中有GROUP BY或ORDER BY

4:序列查看

SELECT * FROM USER_SEQUENCES;

SELECT * FROM ALL_SEQUENCES;

SELECT * FROM DBA_SEQUENCES;

5:序列修改

不能修改序列的初始值,否則會報ORA-02283:

SQL> ALTER SEQUENCE SEQ_TEST START WITH 2;
ALTER SEQUENCE SEQ_TEST START WITH 2
ORA-02283: 無法更改啟動序列號
SQL> ALTER SEQUENCE SEQ_TEST INCREMENT BY 2;
Sequence altered

序列是一個節(jié)省時間的對象,因為它可以減少應用程序中產(chǎn)生序列程序的代碼量。序列

號獨立于表被存儲和產(chǎn)生,因此,相同的序列可以被多個表使用。Oracle序列在某種程度上能夠幫助Oracle數(shù)據(jù)庫簡化代碼,提高效率。本站的Oracle教程中對Oracle的知識點總結(jié)的很詳細,想學習的小伙伴千萬不要錯過啊。

 

提交申請后,顧問老師會電話與您溝通安排學習

免費課程推薦 >>
技術(shù)文檔推薦 >>
主站蜘蛛池模板: 国产一级视频在线观看 | 久久久久久综合一区中文字幕 | 九色av99久久| 午夜美女久久久久爽久久 | 亚洲在线观看视频 | 97影院在线午夜 | 伊人.com| 九九视频热 | 欧美一级毛片免费大片 | 亚洲精品美女久久777777 | 高清一区二区三区免费 | 成人乱色短篇合集 | 性欧美暴力猛交xxxxx高清 | 99在线热播 | 美日韩视频 | 国内精品久久久久久久久久久久 | 亚洲毛片在线观看 | 国产午夜精品久久久久 | 免费人成激情视频在线看 | 亚洲欧美bt | 久久精品国产亚洲婷婷 | 国内精品伊人久久久影院 | 国产日产欧美精品一区二区三区 | 亚洲图片色图 | 97高清国语自产拍中国大陆 | 视频一区欧美 | 欧美日韩一区二区不卡三区 | 91亚洲国产三上悠亚在线播放 | porno日本xxxx| 免费国内精品久久久久影院 | 特级生活片| 国产麻豆精品hdvideoss | 日本aaaa视频 | 伊人久久网站 | 在线 色| 久久久日本精品一区二区三区 | 欧美乱一级在线观看 | 国产高清在线观看麻豆 | 欧美日韩高清在线观看一区二区 | 福利入口在线观看 | 国产美女午夜精品福利视频 |