文章詳情頁(yè)
Oracle建表與創(chuàng)建序列詳細(xì)實(shí)例
瀏覽:16日期:2023-09-18 20:52:23
目錄一、簡(jiǎn)單建表二、查看表結(jié)構(gòu)(在Xshell中輸入才能夠執(zhí)行)三、設(shè)置自增序列(一)普通自增序列(二)復(fù)雜序列四、修改表中的數(shù)據(jù)總結(jié)一、簡(jiǎn)單建表CREATE TABLE teacher1( id number, name varchar2(32), primary key (id)); select * from teacher1; -- 插入數(shù)據(jù)insert into teacher1(id, name) VALUES (7, 'zhangsan'); -- 插入數(shù)據(jù)后確認(rèn)無(wú)誤一定要提交,否則不會(huì)保存commit ; -- 修改表名alter table teacher rename to teacher1; -- 刪除表drop table teacher1; -- 提交事務(wù)commit;二、查看表結(jié)構(gòu)(在Xshell中輸入才能夠執(zhí)行)
desc 表名
序列是 Oracle 提供的用于產(chǎn)生一系列 唯一數(shù)字 的數(shù)據(jù)庫(kù)對(duì)象。
(一)普通自增序列1.創(chuàng)建序列,oracle中沒(méi)有自增,創(chuàng)建序列相當(dāng)于等差數(shù)列自增
通過(guò)序列的偽列訪問(wèn)序列值說(shuō)明NEXTVAL返回序列的下一個(gè)值CURRVAL返回序列的當(dāng)前值注意:在剛建立序列后,無(wú)法提取當(dāng)前值,只有先提取下一個(gè)值時(shí)才能再次提取當(dāng)前值。ORA-08002: sequence SEQ_TEST.CURRVAL is not yet defined in this session
創(chuàng)建默認(rèn)序列規(guī)則是從1開(kāi)始,每次+1
-- 創(chuàng)建序列名稱create sequence teacher_seq; -- 提取下一個(gè)值select teacher_seq.nextval from DUAL; -- 提取當(dāng)前值select teacher_seq.currval from DUAL;2.刪除序列
drop sequence 序列名;
3.建表的同時(shí)設(shè)置主鍵自增的步驟
-- 先創(chuàng)建表create table teacher( id number, name varchar2(32), pwd varchar2(32), primary key (id)); -- 再創(chuàng)建序列create sequence teacher_seq; -- 插入三條數(shù)據(jù),將主鍵id設(shè)置為序列的下一個(gè)值,這個(gè)就相當(dāng)于自增insert into teacher values (teacher_seq.nextval,'zs','123');insert into teacher values (teacher_seq.nextval, 'lx', '456');insert into teacher(id, name, pwd) values (teacher_seq.nextval, 'ww', '123'); -- 插入數(shù)據(jù)后確認(rèn)無(wú)誤一定要提交,否則不會(huì)保存commit ; select * from teacher;1.復(fù)雜序列模板
-- 創(chuàng)建序列名稱CREATE SEQUENCE 'sequence_name'-- 遞增`n`的序列(默認(rèn):`1`)-- 如果`n`是正數(shù)就遞增-- 如果`n`是負(fù)數(shù)就遞減[INCREMENT BY 'n']-- 開(kāi)始值(遞增默認(rèn)是`minvalue`,遞減默認(rèn)是`maxvalue`)[START WITH 'n'] -- 最大值[{MAXVALUE 'n' | NOMAXVALUE}]-- 最小值[{MINVALUE 'n' | NOMINVALUE}]-- 循環(huán) | 不循環(huán)(默認(rèn):`NOCYCLE`)[{CYCLE | 'NOCYCLE'}] -- 分配并存入到內(nèi)存中(默認(rèn):`CACHE`)[{'CACHE' 'n' | NOCACHE}];2.復(fù)雜序列案例
-- 創(chuàng)建序列規(guī)則是:從100開(kāi)始,每次+1create sequence teacher_seq2 start with 100;select teacher_seq2.nextval from DUAL; -- 創(chuàng)建序列規(guī)則是:從5開(kāi)始到100,超出最大值后無(wú)法創(chuàng)建create sequence teacher_seq3 minvalue 5 maxvalue 100;select teacher_seq3.nextval from DUAL; -- 創(chuàng)建序列規(guī)則是:從1開(kāi)始,步長(zhǎng)為3的方式遞增create sequence teacher_seq4 increment by 3;select teacher_seq4.nextval from DUAL; -- 創(chuàng)建復(fù)雜序列create sequence teacher_seq5 increment by 4 start with -2 minvalue -2 maxvalue 10;select teacher_seq5.nextval from DUAL; -- 刪除其中一個(gè)序列drop sequence teacher_seq5;四、修改表中的數(shù)據(jù)update teacher set pwd='123456' where id = 2;update teacher set pwd='654321',name='lss' where id = 3;總結(jié)到此這篇關(guān)于Oracle建表與創(chuàng)建序列的文章就介紹到這了,更多相關(guān)Oracle建表與創(chuàng)建序列內(nèi)容請(qǐng)搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!
標(biāo)簽:
Oracle
數(shù)據(jù)庫(kù)
排行榜
