成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

Oracle中的小序列

    話說序列很少人知道,因為MySQL和sql server都有自動增長字段(如ID主鍵自動增長的整數(shù)),而Oracle卻沒有提供該用法,那么Oracle提供了更加靈活方便的策略-建立對象序列。

成都創(chuàng)新互聯(lián)公司專注于中大型企業(yè)的成都網(wǎng)站設(shè)計、做網(wǎng)站和網(wǎng)站改版、網(wǎng)站營銷服務(wù),追求商業(yè)策劃與數(shù)據(jù)分析、創(chuàng)意藝術(shù)與技術(shù)開發(fā)的融合,累計客戶近千家,服務(wù)滿意度達97%。幫助廣大客戶順利對接上互聯(lián)網(wǎng)浪潮,準確優(yōu)選出符合自己需要的互聯(lián)網(wǎng)運用,我們將一直專注品牌網(wǎng)站制作和互聯(lián)網(wǎng)程序開發(fā),在前進的路上,與客戶一起成長!

    序列創(chuàng)建之后也是真真實實存在的,存在我們的磁盤上,并可以適用場合調(diào)用,序列總是從指定的長度開始,創(chuàng)建了之后可以按照指定步長進行累加,獲得新的整數(shù)

    格式:

        create sequence emp_seq

    解釋:

        創(chuàng)建一個序列,經(jīng)常會用后綴seq來識別的

    格式:

        select object_name,object_type,status from user_objects where lower(object_name)='emp_seq';

    解釋:

        竟然是正兒八經(jīng)存在的對象,那么我們就可以通過數(shù)據(jù)庫user_objects.

    格式:

        select sequence_name,min_value,max_value,increment_by from user_sequences where lower(sequence_name)='emp_seq';

    解釋:

        用來查看我們創(chuàng)建的序列詳細信息的,我們通過這個突然發(fā)現(xiàn),還能看最大值,最小值,每次增長的步長.

  使用序列

      創(chuàng)建不用等于白創(chuàng),那么使用前先要理解兩個值,第一個currval,第二個nextval,從英語意思來看也很清晰,currval獲取當(dāng)前值,nextval獲取下一個值,每次調(diào)用nextval都會使當(dāng)前的序列增加單位步長(默認是1)

      調(diào)用序列這兩個屬性方法為seq.currval和seq.nextval,第一次使用序列,注意哈,要先調(diào)用next的屬性,否則會報錯的!

    格式:

        select emp_seq.nextval from dual;

    解釋:

        我們用虛表dual來作為seq.nextval的from源,單行輸出顯示,這時候結(jié)果會是1.

  因為nextval的值是默認整張的,所以我們要保證表ID為主鍵

     格式:

        alter table student_name modify(id number primary key);

     格式:

        insert into student(id,name) values(emp_seq,'你好',);

     解釋:

        假如student表中已有數(shù)據(jù),我們插入id時候直接調(diào)用創(chuàng)建的序列你會驚奇的發(fā)現(xiàn),失敗?。?!怎么回事,我們用select emp_seq.currval from dual;--發(fā)現(xiàn)數(shù)據(jù)是2,表中已經(jīng)有2了當(dāng)然不行了,怎么辦也不可能把原有的數(shù)據(jù)(這一列刪除掉),數(shù)據(jù)量小還可以用用,麻煩不說,顯示不出序列的威力!下面我們介紹怎么設(shè)置初始值,加入本表id值已經(jīng)1000條數(shù)據(jù),我們讓他從1000開始默認自增不是更好更高效!

     格式:

        drop sequence emp_seq;--刪除原來的序列

        create sequence emp_seq start with 1001;

     解釋:

        關(guān)鍵詞start with 英語單詞理解就是起始,那么意思就是說這個序列從1001開始自動增加(默認是1),插入的時候起始值是1001這樣就可以根據(jù)我們的需求來使用序列,是不是很方便簡單高效。

     格式:

        alter sequence emp_seq minvalue 8888;--修改最小值,注意當(dāng)前修改的最小值不能大于原表中的數(shù)值(1001)?。?/p>

        alter sequence emp_seq maxvalue 9999;--修改最大只

    格式:

        alter sequence emp_seq increment by 5;

    解釋:

        這就是我們前面一直給大家提到的默認增長的步調(diào),就是說每一次插入id值默認自動增長多少。

        這個地方要注意設(shè)置最大值的問題,如果我最大值是20的話,從1開始每次增加5,最大只能到17,第四次就會超出最大值報錯,這個的話大家一下就會明白。

        那么當(dāng)我超出最大值就不可以,超出最大值就讓他變成最小值,重新循環(huán),可以的,我們是操控者,只要我們愿意,他就得可以,下面介紹一個關(guān)鍵字來替我們?nèi)?zhí)行這個操作。

    格式:

        create sequence emp_seq

        start with 5

        minvalue 1

        maxvalue 30

        incremenet by 1

        /--創(chuàng)建結(jié)束

    這時候我們算是吧前面學(xué)的參數(shù)都用上了,看一看其實也很簡單啊,么點難度,我們開始多次nextval屬性值,直到用currval看當(dāng)前值最大值為30,當(dāng)我們在使用nextval的時候就會神奇的發(fā)現(xiàn)變成了1.

    格式:

        alter sequence emp_seq cycle;--開啟

        alter sequence emp_sql nocycle;--關(guān)閉

    緩存,什么是緩存,緩存是更好的讀數(shù)據(jù),速度比內(nèi)存都要快很多,那么序列也有緩存,大量數(shù)據(jù)能有緩存效果對于數(shù)據(jù)庫整體來說無疑是一個性能極大的提升。

        那么序列的cache,每次利用nextval,并非直接操作,而一次性獲取多個列表的緩存,從緩存中抓取數(shù)值,而且依賴于currval和步長increment.

        定義存放序列的內(nèi)存塊的大小,預(yù)先生成序列號,存放在內(nèi)存塊當(dāng)中,用下一個序號給予快速的相應(yīng),可以更快的響應(yīng),當(dāng)一組用完之后會再生成一組,這樣可以提高生成序列號的效率,默認值20。

        格式:

            alter sequence emp_seq cache 10;

        解釋:

            設(shè)置緩存區(qū)大小

    昨天在工作中,在表中添加了一個序列id,當(dāng)時數(shù)據(jù)量比較小,利用表格然后插入到數(shù)據(jù)表列,如果數(shù)據(jù)量這個方法不可行而且特別麻煩,那么今天學(xué)習(xí)的序列就派上了大用場!

    小序列并不簡單,能用好、用到正地方確實要很大學(xué)問,希望大家一起學(xué)以致用多多實戰(zhàn)。

網(wǎng)站名稱:Oracle中的小序列
本文鏈接:http://jinyejixie.com/article44/gdpshe.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供定制網(wǎng)站、ChatGPT微信公眾號、網(wǎng)站策劃域名注冊

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

網(wǎng)站建設(shè)網(wǎng)站維護公司
诸暨市| 武陟县| 息烽县| 宜兰市| 济阳县| 莎车县| 金昌市| 边坝县| 海南省| 普宁市| 广宁县| 高密市| 扎鲁特旗| 天峻县| 平谷区| 峨边| 彭泽县| 安阳市| 固安县| 贵溪市| 彭水| 泰宁县| 唐海县| 黑河市| 河曲县| 永胜县| 财经| 宁波市| 长垣县| 湖南省| 乌鲁木齐县| 麻城市| 绥德县| 恭城| 富裕县| 萝北县| 台北市| 牟定县| 邯郸市| 阜城县| 个旧市|