Oracle建表與創(chuàng)建序列詳細(xì)實(shí)例
一、簡單建表
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)無誤一定要提交,否則不會(huì)保存
commit ;
-- 修改表名
alter table teacher rename to teacher1;
-- 刪除表
drop table teacher1;
-- 提交事務(wù)
commit;二、查看表結(jié)構(gòu)(在Xshell中輸入才能夠執(zhí)行)
desc 表名

三、設(shè)置自增序列
序列是
Oracle提供的用于產(chǎn)生一系列 唯一數(shù)字 的數(shù)據(jù)庫對象。
(一)普通自增序列
1.創(chuàng)建序列,oracle中沒有自增,創(chuàng)建序列相當(dāng)于等差數(shù)列自增
| 通過序列的偽列訪問序列值 | 說明 |
|---|---|
| NEXTVAL | 返回序列的下一個(gè)值 |
| CURRVAL | 返回序列的當(dāng)前值 |
注意:在剛建立序列后,無法提取當(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開始,每次+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)無誤一定要提交,否則不會(huì)保存
commit ;
select * from teacher;
(二)復(fù)雜序列
1.復(fù)雜序列模板
-- 創(chuàng)建序列名稱
CREATE SEQUENCE 'sequence_name'
-- 遞增`n`的序列(默認(rèn):`1`)
-- 如果`n`是正數(shù)就遞增
-- 如果`n`是負(fù)數(shù)就遞減
[INCREMENT BY 'n']
-- 開始值(遞增默認(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開始,每次+1 create sequence teacher_seq2 start with 100; select teacher_seq2.nextval from DUAL; -- 創(chuàng)建序列規(guī)則是:從5開始到100,超出最大值后無法創(chuàng)建 create sequence teacher_seq3 minvalue 5 maxvalue 100; select teacher_seq3.nextval from DUAL; -- 創(chuàng)建序列規(guī)則是:從1開始,步長為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)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Oracle數(shù)據(jù)庫密碼重置、導(dǎo)入導(dǎo)出庫命令示例應(yīng)用
本節(jié)主要介紹了Oracle數(shù)據(jù)庫密碼重置、導(dǎo)入導(dǎo)出庫命令的基本使用,有需要的朋友可以學(xué)習(xí)下2014-07-07
Oracle 11g 新特性 Flashback Data Archive 使用實(shí)例
這篇文章主要介紹了Oracle 11g 新特性 Flashback Data Archive 使用實(shí)例,Flashback Data Archive 的主要作用是在它的有效期內(nèi)將保存事務(wù)改變的信息,需要的朋友可以參考下2014-07-07
Oracle 閃回 找回?cái)?shù)據(jù)的實(shí)現(xiàn)方法
閃回技術(shù)是Oracle強(qiáng)大數(shù)據(jù)庫備份恢復(fù)機(jī)制的一部分,在數(shù)據(jù)庫發(fā)生邏輯錯(cuò)誤的時(shí)候,閃回技術(shù)能提供快速且最小損失的恢復(fù)。這篇文章主要介紹了Oracle 閃回 找回?cái)?shù)據(jù)的實(shí)現(xiàn)方法,需要的朋友可以參考下2018-09-09
Oracle數(shù)據(jù)庫事務(wù)的開啟與結(jié)束詳解
事務(wù)是一個(gè)整體,這些操作要么全部執(zhí)行成功,要么全部不執(zhí)行,下面這篇文章主要給大家介紹了關(guān)于Oracle數(shù)據(jù)庫事務(wù)的開啟與結(jié)束的相關(guān)資料,文中通過圖文介紹的非常詳細(xì),需要的朋友可以參考下2022-06-06
oracle查看執(zhí)行最慢與查詢次數(shù)最多的sql語句
這篇文章主要給大家介紹了oracle查看執(zhí)行最慢與查詢次數(shù)最多的sql語句,文中給出完整的示例代碼,相信對大家的學(xué)習(xí)或者工作具有一定的參考價(jià)值,有需要的朋友們下面來一起看看吧。2017-01-01
ORA-00349|激活 ADG 備庫時(shí)遇到的問題及處理方法
這篇文章主要介紹了ORA-00349|激活 ADG 備庫時(shí)遇到的問題及處理方法,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-03-03

