时间:2023-10-31来源:系统城装机大师作者:佚名
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
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 ; |
desc 表名
序列是
Oracle
提供的用于产生一系列 唯一数字 的数据库对象。
1.创建序列,oracle中没有自增,创建序列相当于等差数列自增
通过序列的伪列访问序列值 | 说明 |
---|---|
NEXTVAL | 返回序列的下一个值 |
CURRVAL | 返回序列的当前值 |
注意:在刚建立序列后,无法提取当前值,只有先提取下一个值时才能再次提取当前值。
ORA-08002: sequence SEQ_TEST.CURRVAL is not yet defined in this session
创建默认序列规则是从1开始,每次+1
1 2 3 4 5 6 7 8 |
-- 创建序列名称 create sequence teacher_seq; -- 提取下一个值 select teacher_seq.nextval from DUAL; -- 提取当前值 select teacher_seq.currval from DUAL; |
2.删除序列
drop sequence 序列名;
3.建表的同时设置主键自增的步骤
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
-- 先创建表 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.复杂序列模板
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
-- 创建序列名称 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.复杂序列案例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
-- 创建序列规则是:从100开始,每次+1 create 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; |
1 2 |
update teacher set pwd= '123456' where id = 2; update teacher set pwd= '654321' , name = 'lss' where id = 3; |
到此这篇关于Oracle建表与创建序列的文章就介绍到这了
2023-10-31
Oracle如何编写一个sqlldr实例2023-10-31
Oracle的SQLLDR用法简介2023-10-31
Oracle中的高效SQL编写PARALLEL解析1.Oracle数据库系统结构概述 2.Oracle数据库存储结构 物理存储结构 控制文件 数据文件 重做日志文件 归档日志文件 Oracle数据库逻辑结构 数据块(Data Block) (盘)区(Extent) 段(Segment) 表空间(Tablespace) 本地管...
2023-10-31
windows下的Oracle19c 一、官网下载Oracle19c数据库 二、安装Oracle数据库 1.解压安装包 2.运行setup.exe安装 三、配置 四、安装完Oracle数据库,给scott用户解锁 1.解决Oracle数据库中没有scott账户的问题 2.给scott...
2023-10-31