資源描述:
《oracle數(shù)據(jù)庫對(duì)象序列索引視圖同義詞》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、數(shù)據(jù)庫操作與管理語言O(shè)racleSQL數(shù)據(jù)庫對(duì)象本章目標(biāo)創(chuàng)建序列創(chuàng)建索引創(chuàng)建視圖序列Sequence序列是一個(gè)數(shù)據(jù)庫對(duì)象,用于生成一系列的整數(shù)。學(xué)習(xí)內(nèi)容包括創(chuàng)建序列查詢序列的信息使用序列修改序列刪除序列創(chuàng)建序列-1可以使用CREATESEQUENCE語句來創(chuàng)建序列,語法如下:CREATESEQUENCEsequence_name[STARTWITHstart_num][INCREMENTBYincrement_num][{MAXVALUEmaximum_num
2、NOMAXVALUE}][{MINVALUEminimum_num
3、NOMINVALU
4、E}][{CYCLE
5、NOCYCLE}][{CACHEcache_num
6、NOCACHE}][{ORDER
7、NOORDER}];說明sequence_name:序列的名稱start_num:序列開始的第一個(gè)整數(shù),默認(rèn)從1開始increment_num:每次增長的數(shù)值maximum_num:序列能夠增長到的最大值NOMAXVALUE:對(duì)于序列最大值,不指定最大值,對(duì)于升序最大值是1027,對(duì)于降序是-1創(chuàng)建序列-2可以使用CREATESEQUENCE語句來創(chuàng)建序列,語法如下:CREATESEQUENCEsequence_name[STARTWITH
8、start_num][INCREMENTBYincrement_num][{MAXVALUEmaximum_num
9、NOMAXVALUE}][{MINVALUEminimum_num
10、NOMINVALUE}][{CYCLE
11、NOCYCLE}][{CACHEcache_num
12、NOCACHE}][{ORDER
13、NOORDER}];說明minimum_num:序列中的最小值,該值必須比start_num小,比maximum_num也要小NOMINVALUE:對(duì)于序列最小值,不指定最小值,對(duì)于升序最小值是1,對(duì)于降序最小值是-1026CYCLE:對(duì)于序
14、列的值達(dá)到最大值或最小值時(shí)的處理方法。如果是升序達(dá)到最大值了,那么下一個(gè)生成的值將是最小值;如果是降序達(dá)到最小值時(shí),那么下一個(gè)值將是最大值。NOCYCLE:當(dāng)序列的值達(dá)到最大或最小值時(shí),序列將不再產(chǎn)生任何數(shù)值。默認(rèn)是NOCYCLE。創(chuàng)建序列-3可以使用CREATESEQUENCE語句來創(chuàng)建序列,語法如下:CREATESEQUENCEsequence_name[STARTWITHstart_num][INCREMENTBYincrement_num][{MAXVALUEmaximum_num
15、NOMAXVALUE}][{MINVALUEminimu
16、m_num
17、NOMINVALUE}][{CYCLE
18、NOCYCLE}][{CACHEcache_num
19、NOCACHE}][{ORDER
20、NOORDER}];說明cache_num:保存在內(nèi)存中緩存整數(shù)的數(shù)量,默認(rèn)緩存的數(shù)量是20,最小的緩存數(shù)是2,最大的緩存數(shù)是CEIL(maximum_num-minimum_num)/ABS(increment_num)NOCACHE:表示沒有緩存數(shù)字ORDER:保證整數(shù)的請(qǐng)求順序是按照生成順序得到的。NOORDER:不保證整數(shù)的請(qǐng)求順序是按照生成順序得到的。默認(rèn)值。案例使用默認(rèn)選項(xiàng)創(chuàng)建序列CREATESEQ
21、UENCEs_test;說明創(chuàng)建序列忽略了其他選項(xiàng),那么將會(huì)使用默認(rèn)值。start_num和increment_num都是1指定相關(guān)選項(xiàng)創(chuàng)建序列CREATESEQUENCEs_test2STARTWITH10INCREMENTBY5MINVALUE10MAXVALUE20CYCLECACHE2ORDER;創(chuàng)建降序的序列CREATESEQUENCEs_test3STARTWITH10INCREMENTBY-1MINVALUE1MAXVALUE10CYCLECACHE5;查看序列的信息可以通過查看user_sequences視圖了解序列的信息查看序列
22、信息SELECT*FROMuser_sequencesORDERBYsequence_name;查詢結(jié)果如下圖所示:使用序列-1創(chuàng)建序列之后,序列可以產(chǎn)生一系列的數(shù)值。可以通過currval和nextval來訪問它們來獲取當(dāng)前值和下一個(gè)值。例如SELECTs_test.nextvalFROMdual;在s_test序列中的第一個(gè)值是1,一旦序列被初始化之后,就可以從序列中獲取當(dāng)前值SELECTs_test.currvalFROMdual;使用序列-2s_test2序列的初始值是10,每次增加5,最大值為20執(zhí)行3次SELECTs_test2.ne
23、xtvalFROMdual;說明由于設(shè)置了循環(huán),當(dāng)達(dá)到最大值20時(shí),又會(huì)重新從10開始進(jìn)行循環(huán)使用序列填充主鍵-1序列經(jīng)常用于填充整型的