文章详情页
Oracle建表与创建序列详细实例
浏览:2日期: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建表与创建序列内容请搜索好吧啦网以前的文章或继续浏览下面的相关文章希望大家以后多多支持好吧啦网!
排行榜
