a毛片毛费观看-a毛片在线-a毛片在线观看-a毛片在线免费观看-国产成人综合洲欧美在线-国产成人综合高清在线观看

始創于2000年 股票代碼:831685
咨詢熱線:0371-60135900 注冊有禮 登錄
  • 掛牌上市企業
  • 60秒人工響應
  • 99.99%連通率
  • 7*24h人工
  • 故障100倍補償
您的位置: 網站首頁 > 幫助中心>文章內容

Oracle中序列詳解

發布時間:  2012/8/30 17:25:17

數據庫設計的三大范式第一條就是獨立的表結構中必須有唯一主鍵來標識表中數據.在以往微軟的SQL Server(duo版本)平臺上.手動編碼實現表中主鍵.并設定為自增列是極其簡單.編碼如下:
-
 

 --簡單主鍵定義如下并設置為自增(只取出主鍵定義)
 typeid int not null primary key identity(1,1),
在Oracle中如果要設定一個獨立表結構的主鍵為自增.其中就涉及到了Oracle 10G中關于序列(Sequence)的使用.

(A)Sequence-序列的定義語法

SEquence-序列是一個數據庫項.它生成一個整數序列..Oracle中序列所生成的整數通?梢杂脕硖畛洫毩⒈斫Y構中數字類型的主鍵列.來實現同SQL Server自增效果. 但是序列的定義同SQL Server下定義區別很大.在Oracle 10G官方開發手冊中顯得有些復雜,先來看看定義序列的(精簡后,如有詳細請參考官方文檔.)語法:


代碼
--定義序列完整語法
Create Sequence Sequence_Name
[Start With start_num]--自增開始初始值
[Increment by increment_num]--每次增量
[{MaxValue maximum_num | NoMaxValue}]
[{MinValue minimum_num | NoMinValue}]
[{Cycle | NoCycle}]
[{Cache cache_num | NoCache}]
[{Order | NoOrder}];

 語法定義說明:

Sequence_Name:定義序列的名稱[有意義的命名].

Start With (start_num):用來定義序列的初始值.可選. 系統默認值為1.

Increment By(increment_num):指定序列每次自增的增量. 可選. 系統默認值同樣為1.

MaxValue(maximum_num):設定序列自增最大上限整數值.maximum_num必須大于或等于start_num即初始值.同時maximum_num必須大于序列最小下限值minimum_num.[保證有意以].

NoMaxValue:是系統對序列設置的默認值. 即指定升序序列的最大值為10的27次方.降序序列的最大值為-1.NoMaxValue為系統默認值. 同理MinValue.

MinValue(minimum_num):設定序列自增最小下限整數值. ,minmum_num必須小于或等于start_num即初始值. 而且minimum_num必須小于maximum_num.同理.

NoMinvalue:即使序列自增下限的默認值. 升序序列的最小值為1, 降序序列最小為負的10的26次方.NoMinValue為默認值.

Cycle:指定當序列即使已經達到序列自增的最大值或最小值時也繼續生成整數. 當升序序列達到最大值時. 下一個生成的值為最小值即初始值. 當降序序列達到最小值時. 下一個生成的值最大值. 以這種規則來循環.

NoCycle:正好反之:指定到序列自增到最大值或最小值時就不能再生成整數了. NoCycle是默認值.

Cache(cache_num):指定要保留在內存中整數的個數.默認緩存的格式為20個. 可以緩存的整數最少為2個. 可以緩存的整數個數最多為:Cell(maximum_num—minimum_num)/ABS(increment_num). 算法即:Cell(序列的最大上限值—最小下限值,)/ABS(每次自增的增量).

NoCache:指定不適用緩存整數數據.【個人建議不適用緩存來存儲數據. 當數據庫連接斷開后.自動清空內存數據,導致后面插入數據序列值不連續.效果  建議在創建不適用Cache存儲 后有詳解】.

Order:確保按照請求次序生成整數 【不常用的設置】.只有在使用Real Application Cluster(RAC)時才可以使用Order選項設置.

Noorder:就是(以上)反之.(不在贅述) NoOrder為系統默認值.

詳細了解sequence序列的詳細語法定義. 定義一個簡單的Sequence序列.并使用在表中主鍵列中實現自增.代碼如下:

1 --創建序列
2 create sequence product_sequence
3 start with 1 --初始值默認為1
4 increment by 1--每次增量默認為1
5 maxvalue 10 --增量的最大上限
6 minvalue 1--增量的最小底限
7 cycle
8 nocache ;
 (B)Use Sequence-使用序列

 序列生成的是一系列整數數字.一個序列中包含兩個"偽列" ,分別為"Currval"和"Nextval",可以分別用來獲取該序列的當前值和下一個值.

雖然我們在定義時指定序列product_sequence初始值為1但并沒有真正初始化該值. 當在檢索序列的當前值前,必須通過檢索序列的下一個值即Nextval來對序列進行初始化操作.在選擇了product_sequence.Nextval時,該序列就被初始化為1.如下為實例.

 1 --初始化序列
 2 select product_sequence.nextval from ProductType
 3
 4 --ProductType為表明.在初始化前 必須先創建表ProductType 如下:
 5 create table Producttype
 6 (
 7   typeid integer constraint producttype_pk primary key,
 8   typename varchar(120) default'CastChen Test Date!' not null,
 9   createdate date  default sysdate not null
10 ); 執行查詢結果如下:

 

上述為第一次執行后. 序列中初始化的值為定義時1. 如果在定義時沒有指定初始值. 默認值為1.成功初始化后我們來獲得當前序列的值.

1 --獲取序列當前值
2 select product_sequence.currval from ProductType
查詢結果如下:

 

當查詢Currval時,Nextval保持不變.而nextval只有在再次查詢nextval以獲得下一個值是才會改變. 下面做一個實例. 注意nextval和Currval先后順序.

1 --同時查看兩個偽列的值. 注意Nextval 在前 Currval在后.
2 select product_sequence.nextval, product_sequence.currval from ProductType
 查詢結果如下:

 

當查詢兩個值時Nextval在前. 前面提到再次查詢Nextval可以獲得序列的下一個值. 所以此處序列的當前值Currval為2.其實可以理解這樣這個過程:Nextval其實通過查詢來向序列賦值的,而賦值對象就是Currval.Currval同時又是對外訪問序列值的唯一窗口.product_sequence.currval 就直接取到了序列的當前值.同理我們可以把product_sequence.currval放在主鍵賦值, 而不用手動每次定義.  是否又再一次接近我們目的.

注意我們在定義使用了Cycle選項:即當序列自增到最大值或最小值時產生循環效果. 我們來看下實例.

--一直執行賦值語句 直到達到序列上限的最大值10
select product_sequence.nextval from ProductType
 執行最后結果:

 

 當我們再次執行賦值語句時 結果:

 

 序列的值有最大上限10 又再次恢復到初始值1,實現一次循環. 如果再次執行其實同第一次執行時一樣的,Cycle實現序列在一個特定范圍內循環定義使用.

(C)使用序列填充主鍵-(核心內容)

上面做的都是準備工作, 我們要的最后結果即是在主鍵列中通過序列來自動賦值.當然前提表的主鍵定義時數據類型必須為整數. 在這里我還要再次提一下Cache這個選項.在使用序列填充主鍵時,常用設置為NoCache即采取默認方式. 當關閉數據庫連接時所緩存的值會全部丟失. 導致主鍵產生的數值不連續的現象. 使用序列來填充主鍵標識:

1 --插入數據 時 序列值代替主鍵值定義
2 insert into ProductType(typeid,Typename,Createdate)
3 values(product_sequence.nextval,'使用了序列定義主鍵',default)
這種方式不必每次添加數據時查看主鍵的數值. 害怕插入重復數據. 而主鍵列的賦值工作完全交給序列來做. 我只需把精力投放在其他地方.

上面操作基本實現我們當初預想. 但我也想提出一個問題:

在微軟的SQL Server平臺上定義獨立表結構的主鍵時. 可以同時指定多個列共同標識為該表的主鍵. 即如果多個合并在一起比對實現主鍵唯一標識. 而Oracle 10G中序列其實就分離這種關系. 兩者之間相互獨立. 也就是說主鍵的定義和主鍵賦值 是沒有關-系的. 完全分開的. 序列只是負責獨立的對主鍵進行賦值. 而至于主鍵約束的定義 沒有關系.

(D)修改和刪除序列

可以通過Alert  Sequence子句來修改序列, 但是我在修改序列中常常會報錯 而且很頻繁.修改序列內容有如下限制:

(1)不能修改序列的初始值

(2)序列的最小值不能大于當前值

(3)序列的最大值不能小于當前值

修改序列的增量:
1 --修改序列的增量為2
2 alert sequence product_sequence increment by 2;
再次查詢數據結果將以每次增量為2 增加. 如果在不使用情況下刪除序列:

1 --刪除序列 極其簡單.
2 drop  sequence product_sequence;
當我們添加多張表表中序列時, 我們可以同查詢系統中User_sequences表來獲取相關表的關于序列的詳細信息. User_sequences是字典表的一部分.

至此以上是在Oracle 10G關于序列的全部用法.


本文出自:億恩科技【www.ibaoshan.net】

服務器租用/服務器托管中國五強!虛擬主機域名注冊頂級提供商!15年品質保障!--億恩科技[ENKJ.COM]

  • 您可能在找
  • 億恩北京公司:
  • 經營性ICP/ISP證:京B2-20150015
  • 億恩鄭州公司:
  • 經營性ICP/ISP/IDC證:豫B1.B2-20060070
  • 億恩南昌公司:
  • 經營性ICP/ISP證:贛B2-20080012
  • 服務器/云主機 24小時售后服務電話:0371-60135900
  • 虛擬主機/智能建站 24小時售后服務電話:0371-60135900
  • 專注服務器托管17年
    掃掃關注-微信公眾號
    0371-60135900
    Copyright© 1999-2019 ENKJ All Rights Reserved 億恩科技 版權所有  地址:鄭州市高新區翠竹街1號總部企業基地億恩大廈  法律顧問:河南亞太人律師事務所郝建鋒、杜慧月律師   京公網安備41019702002023號
      0
     
     
     
     

    0371-60135900
    7*24小時客服服務熱線

     
     
    VPSWINDOWS另类极品| 免费夜里18款禁用B站软粉色| 99久久综合狠狠综合久久AⅤ| 无码专区AAAAAA免费视频| 免费无遮挡很爽很污很黄的网站| 国产精口品美女乱子伦高潮| 中文字幕人妻无码乱精品| 五月丁香伊人久久91视频| 免费国产黄网站在线观看视频| 国产精品无码永久免费888| 91蜜桃传媒精品久久久一区二区| 亚洲AV成人综合网久久成人| 人摸人人人澡人人超碰| 精品人妻一区二区三区乱码| 成熟丰满熟妇AV无码| 一区国产情侣宾馆射| 无码人妻精品一区二区三区不卡 | 国精品无码一区二区三区左线| YY1111111少妇影院光屁| 亚洲欧美国产免费综合视频| 三上悠亚被弄到痉挛惨叫AV| 鲁鲁网亚洲站内射污| 国产日产久久高清欧美一区 | 放荡爆乳女教师电影在线观看 | 日韩在线一区二区不卡视频| 久久婷婷五月综合色国产香蕉| 国产精品久久久久7777按摩| 97丨九色丨国产人妻▌| 亚洲成在人线AV| 色婷婷五月综合亚洲小说| 免费高清AV一区二区三区| 国产日产欧产精品精品蜜芽| 把插八插露脸对白内射| 一面亲上边一面膜下边的免费| 无码熟妇人妻AV影音先锋| 琪琪电影网WWW888DVDC| 久久久不卡国产精品一区二区| 国产精品538一区二区在线| AV无码人妻无码男人的天堂| 亚洲日韩中文在线精品第一| 铜铜铜铜铜铜铜铜好大好深黄| 欧美人与动牲交A欧美精品| 久久国产AVJUST麻豆| 国产精品爆乳在线播放第一人称| FREE性欧美18ⅩXOO极品| 亚洲中文字幕无码专区| 无码国产精成人午夜视频不卡| 欧美一进一出抽搐大尺度视频| 久久久久久国产精品免费免费| 国产精品一国产AV麻豆| 暗交小拗女一区二区三区三州| 伊人久久大香线蕉AⅤ色| 亚欧洲乱码视频一二三区| 日韩内射美女人妻一区二区三区| 免费人成网WW555KKK在线| 精品国品一二三产品区别在线观看| 国产AV无码专区影视| JAPANESE人妻少妇HD| 一炕四女被窝交换啪啪| 亚洲AV无码一区二区三区乱码4| 色欲AV永久无码精品无码| 欧美XXXX色视频在线观看| 精品影片在线观看的网站| 国产精品美女久久久久久久| 被主人调教边C边打屁股作文| 与上司出轨的人妻| 亚洲国产精品人人爽夜夜爽| 我被八个男人玩到早上| 日本WWW一道久久久免费| 免费观看添你到高潮视频| 精品无码AV无码免费专区| 国产精品无码翘臀在线观看| 成人网站WWW污污污网站| 99精品国产福利在线观看| 夜里18款禁用软件APP| 亚洲AV永久无码成人红楼影视| 四川老妇女乱HD| 人妻夜夜添夜夜无码AV| 免费无码AV一区二区三区| 久久99国产精品久久99软件| 国产女人乱人伦精品一区二区 | 亚洲AV无码专区在线观看漫画| 四虎永久在线精品无码视频| 人妻有码中文字幕在线| 男按摩师舌头伸进去了| 久久久久久精品免费免费WE| 韩国亚洲精品A在线无码| 国产精品IGAO视频网网址| 成人网站在线进入爽爽爽 | 精品久久人妻AV中文字幕| 国产乱码卡二卡三卡43| 丰满人妻熟妇乱又伦精品APP| ZLJZLJZLJ日本人水多多| 性欧美一区二区三区| 亚洲中文字幕久久精品无码APP| 亚洲AV无码卡通动漫AV| 无码国产69精品久久久久网站 | 48熟女嗷嗷叫国产毛片小说| 野花日本大全免费观看3中文版| 亚洲AV无码AV日韩AV网站不| 婷婷丁香六月激情综合啪| 日韩久久久久久中文人妻| 欧美又粗又大BBBB疯视频AV| 免费中文无码AV动作片| 久久夜色精品国产亚洲AV动态图| 精品 日韩 国产 欧美 视频| 国产日韩AV免费无码一区二区| 国产AV无码一区二区二三区J| 波多野结衣TORRENT| 9L国产精品久久久久尤物| 在线观看中文最近最新观看| 亚洲小说区图片区另类春色| 亚洲第一AV网站| 亚洲AV成人无码网站大全| 无码精品人妻一区二区三区人妻斩| 色婷婷粉嫩AV精品综合在线| 日本高清视频色WWWWWW色| 欧美综合天天夜夜久久| 欧美白人乱大交XXXX潮喷| 美女肛交视频蜜桃国产一二区| 久久久久久久精品成人热蜜桃| 精品无码久久久久久久久水蜜桃| 狠狠人妻熟妇Av又粗又大| 国产在线成人一区二区三区| 国产毛片一区二区精品| 国产精品国产三级国产AⅤ| 国产成人精品综合久久久| 公又粗又大又长挺进我的| 豆国产97在线 | 韩国| 差差差很疼30分钟的视频大全| TAP TAP下载官方正版| 99精品国产99久久久久久97| 2019NV天堂香蕉在线观看| 中文字幕在线无码一区二区三区 | 国产免费破外女真实出血视频| 国产成人无码精品久久久小说 | 亚洲人成人网站在线观看| 亚洲国产精品久久久就秋霞| 亚洲AV综合AV一区| 亚洲AV永久无码精品蜜芽| 亚洲AV涩涩涩成人网站在线播放| 性色AV无码一区二区三区人妻| 无码人妻丰满熟妇一区二区三区 | 亚洲AV永久无无码精品一区二区 | 玩弄CHINESE丰满人妻VI| 熟妇熟女乱妇乱女网站| 水蜜桃国产精品欧美日韩一区不卡| 色欲AV蜜臀AV一区在线| 色综合久久婷婷88| 熟妇人妻无乱码中文字幕蜜桃| 色欲av无码爆乳亚洲区一二 | 精品一区二区三区波多野结衣| 久草日B视频一二三区| 久久精品国产自清天天线| 久久久久国色AV免费观看| 久久久婷婷五月亚洲97号色| 巨胸美乳无码人妻在线| 免费A级毛片无码A∨中文字幕下| 免费人成视频X8X8入口| 欧美丰满熟妇XX猛交| 欧美亚洲国产精品久久高清| 人妻丰满熟妇AV无码区APP| 日本乱人伦AⅤ精品潮喷| 日韩人妻无码一区二区三区视频 | 久久精品国产99久久无毒不卡| 久久精品这里热有精品| 久久精品国产一区二区无码| 久久午夜福利无码1000合集| 麻豆传播媒体2023最新网站| 免费 黄 色 人成 视频 在| 嫩草影院网站进入| 欧美日韩一区精品视频一区二| 人妻中文字幕制服丝袜| 日韩精品专区在线影院重磅| 色窝窝无码一区二区三区色欲| 天堂√中文最新版在线| 无人区码一码二码三码区| 亚洲AV无码兔费综合在线观看| 亚洲男人AV香蕉爽爽爽爽| 野花AⅤ亚洲高清完整版在线观看| 在公交车上弄到高C了怎么办| 50妺妺窝人体色WWW在线| JK白丝极品被CAO到流水呻吟| 成人免费一区二区三区视频| 国产AV无码专区国产乱码| 国产精品无码一区二区三区不卡| 国精品午夜福利视频不卡| 精品久久久久久中文字幕| 久久久一本精品99久久精品66| 林静公交车被做到高C的原因| 内地性生生活影视大全| 秋霞无码AⅤ一区二区三区| 日韩一卡2卡3卡4卡| 无码不卡AV东京热毛片| 亚洲AV无码专区国产乱码软件| 亚洲日韩精品无码一区二区三区| 曰批全过程免费视频观看软件| 99久久国产综合精品麻豆| 草草影院CCYYCOM| 国产成人无码AV麻豆|