当前位置: 首页 > news >正文

Oracle序列(基础操作)

序列概念

序列是用于生成唯一连续序号对象

序列可以是升序的,也可以是降序的。

使用CREATE SEQUENCE语句创建序列

start with 1   指定第一个序号从1开始
increment by 1 指定序号之间的间隔为1
increment by -1 降序1000 999 998这样
maxvalue 2000  表示序列的最大值为2000
minvalue 1     序列的最小值为1
NOCYCLE        达到2000以后就报错比如2001
CYCLE          达到2000以后跳到1
CACHE 10       指定内存中预先分配的序号数create sequence stu_seqstart with 1increment by 1maxvalue 2000minvalue 1nocyclecache 10;

在这里插入图片描述

查看用户包含角色权限

dba 全局(所有用户) usr 用户本身

create user t1 identified by t1;grant resource,connect to t1;conn t1/t1SQL> select * from user_role_privs;
CONNECT
RESOURCESQL> select * from role_sys_privs;
ROLE                           PRIVILEGE                                ADMIN_OPTION
------------------------------ ---------------------------------------- ------------
RESOURCE                       CREATE SEQUENCE                          NO
RESOURCE                       CREATE TRIGGER                           NO
RESOURCE                       CREATE CLUSTER                           NO
RESOURCE                       CREATE PROCEDURE                         NO
RESOURCE                       CREATE TYPE                              NO
CONNECT                        CREATE SESSION                           NO
RESOURCE                       CREATE OPERATOR                          NO
RESOURCE                       CREATE TABLE                             NO
RESOURCE                       CREATE INDEXTYPE                         NO
9 rows selectedresource 角色包含 CREATE SEQUENCE

创建序列

conn t1/t1
create sequence stu_seqstart with 1increment by 1maxvalue 2000minvalue 1nocyclecache 10;#查看用户拥有的序列
select * from user_sequences;

在这里插入图片描述

cache含义

1 2 3 4 5 ... 2000
第一种:1 生成发给用户 2 生成发给用户
第二种:1 生成发给用户 但是 2 3 4 5 6 生成以后全部放到内存中
第二种的好处就是不用再次计算,直接从内存发给用户。

默认的cache是多少?

create sequence seq2 start with 1 increment by 1;

在这里插入图片描述

默认的cache是20

访问序列

通过序列伪列来访问序列的值
NEXTVAL返回序列下一个值
CURRVAL 返回序列当前值
第一次使用序列中的值的时候,要使用NEXTVAL

conn t1/t1select stu_seq.nextval from dual;select stu_seq.currval from dual;
#接着访问该序列的话,值就是一直递增的!
select stu_seq.nextval from dual;

在这里插入图片描述

create table student(sno number(4),sname varchar(2));
insert into student values(stu_seq.nextval,'A');
insert into student values(stu_seq.nextval,'B');
insert into student values(stu_seq.nextval,'C');

在这里插入图片描述

高级用法

||       是字符串连接
tochar() 是把数字转字符
insert into student values('2025_'||tochar(stu_seq.nextval),'C');

更改和删除序列

#不能更改序列的START WITH参数
alter sequence stu_seq maxvalue 5000 cycle;#删除序列
drop sequence stu_seq;
http://www.lryc.cn/news/537497.html

相关文章:

  • Unity Shader Graph 2D - Procedural程序化图形循环的箭头
  • 4、C#基于.net framework的应用开发实战编程 - 测试(四、二) - 编程手把手系列文章...
  • Windows搭建CUDA大模型Docker环境
  • 【前端进阶】「全面优化前端开发流程」:利用规范化与自动化工具实现高效构建、部署与团队协作
  • Linux入侵检查流程
  • Ubuntu24.04无脑安装docker(含图例)
  • 简述下什么是伪元素什么是伪类
  • 【C++】基础入门(详解)
  • Base64 PDF解析器
  • ZOJ 1011 NTA
  • 使用 GPT-SoVITS 克隆声音,很详细
  • Flask和Django相比哪个更适合新手?
  • 2. 图片性能优化
  • 多模态本地部署和ollama部署Llama-Vision实现视觉问答
  • cuML机器学习GPU库
  • 机器学习数学基础:24.随机事件与概率
  • CAS单点登录(第7版)27.开发人员
  • DeepSeek+即梦 做AI视频
  • OpenMetadata 获取 MySQL 数据库表血缘关系详解
  • 计算机组成原理—— 总线系统(十二)
  • 详解如何使用Pytest内置Fixture tmp_path 管理临时文件
  • Banana Pi OpenWRT One 官方路由器的第一印象
  • Golang GORM系列:GORM事务及错误处理
  • NLLB 与 ChatGPT 双向优化:探索翻译模型与语言模型在小语种应用的融合策略
  • ASP.NET Core SixLabors.ImageSharp v1.0 的图像实用程序类 web示例
  • ffmpeg configure 研究1-命令行参数的分析
  • 数据结构与算法之排序算法-归并排序
  • 高血压危险因素分析(项目分享)
  • java集合框架之Map系列
  • android设置添加设备QR码信息