Oracle建表与创建序列详细实例

2023-12-04 0 687
目录
  • 一、简单建表
  • 二、查看表结构(在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建表与创建序列详细实例

      三、设置自增序列

      序列是 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;

      Oracle建表与创建序列详细实例

      (二)复杂序列

      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开始,每次+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;

      四、修改表中的数据

      update teacher set pwd=\’123456\’ where id = 2;
      update teacher set pwd=\’654321\’,name=\’lss\’ where id = 3;

      总结

      到此这篇关于Oracle建表与创建序列的文章就介绍到这了,更多相关Oracle建表与创建序列内容请搜索悠久资源以前的文章或继续浏览下面的相关文章希望大家以后多多支持悠久资源!

      收藏 (0) 打赏

      感谢您的支持,我会继续努力的!

      打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
      点赞 (0)

      悠久资源 Oracle Oracle建表与创建序列详细实例 https://www.u-9.cn/database/oracle/68360.html

      常见问题

      相关文章

      发表评论
      暂无评论
      官方客服团队

      为您解决烦忧 - 24小时在线 专业服务