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