《Oracle数据库》课程教学资源(PPT课件讲稿)序列

第15章序列 序列是Oracle数据库的特色对象之一。通过序列,可以 轻松获得惟一的整数。序列具有多个属性来设置取值方式, 这使得很多应用变得简化而灵活。在Oracle开发中,序列最 常见的功能为数据表提供自增列值。本章的主要内容包括: 创建序列; 使用序列; 修改序列属性。 通过本章的学习,读者可以明确序列的概念,并掌握 在开发中如何使用序列
Oracle Oracle

15.1自动生成序号 无论哪种数据库,自动生成序号都是必不可少的需求 之一。本节将简要介绍主流数据库中的自动生成序号使用的 策略

15.1.1什么是自动生成序号 很多时候,表设计者会将数据表的主键设计为一个与 业务无关的数值型。这样既可以保证每个数据表都具有通用 的主键,又剔除了主键与业务的相关性。但是,在应用层为 列指定主键值显然不是一种好的选择。因此,很多数据库都 会提供将列设置为自增类型,从而在数据库层面上解决该问 题。自动生成序号策略要求在数据库层、无需人工干预即可 获得序号
很多时候,表设计者会将数据表的主键设计为一个与 业务无关的数值型。这样既可以保证每个数据表都具有通用 的主键,又剔除了主键与业务的相关性。但是,在应用层为 列指定主键值显然不是一种好的选择。因此,很多数据库都 会提供将列设置为自增类型,从而在数据库层面上解决该问 题。自动生成序号策略要求在数据库层、无需人工干预即可 获得序号

15.1.2主流数据库的自动生成序号策略 在SQL Sever中,提供了identity类型一表示自增类型。用 户通过将列设置为自增列来保证列值具有唯一的序号。例如,在 创建表时使用如下SQL语句即可。 create table test( id int identity(1,1), name varchar(20))
SQL Sever identity —— SQL create table test( id int identity(1,1), name varchar(20))

15.2创建和使用序列 序列(SEQUENCE)如同表、约束、视图、触发器等 一样,是Oracle数据库对象之一。一旦创建,即可保存于数 据库中,并可在适用场合进行调用。 在示例14-7的触发器中,我们利用首先获得表 employees中最大employee_id并加l的方法来获得新记录的 员工D。对于用户来说,这种方式显得过于繁琐。本小节将 利用序列来处理这一问题
SEQUENCE Oracle 14-7 employees employee_id 1 ID

15.2.1创建序列 创建序列,应该使用create sequence命令。忽略所有可选 项,其语法形式如下所示。 create sequence序列名称 其中,create sequence为固定命令,其后紧跟序列名称; 序列名称一般要与所服务对象具有一定的关联性,并添加sq 后缀。 【示例15-1】创建一个用于生成表employees.主键D的序 列,可以利用如下SQL语句。 SQL>create sequence employee_seq; Sequence created
create sequence create sequence create sequence seq 15-1 employees ID SQL SQL> create sequence employee_seq; Sequence created

15.2.2使用序列 对于序列,有两个重要的属性一currval和nextval。. 其中currval)用于获得序列的当前值,而nextval.则用于获得 序列的下一个值。每次调用nextval,都会使序列的当前值增 加单位步长(默认步长为1)。获得currval/属性与nextval属 性值的调用形式为: 序列名称.currval 序列名称.nextval 例如,获得序列employee_seq的当前值与下一个值的方 法如下所示。 employee_seq.currval employee_seq.nextval
——currval nextval currval nextval nextval 1 currval nextval .currval .nextval employee_seq employee_seq.currval employee_seq.nextval

15.2.3指定序列初始值 除了手动将序列employee seq的nextval属性值调整到 合适的位置之外,还可以在创建序列时使用start with选项来 指定序列的初始值。start with的基本语法如下所示。 create sequence序列名称start with n 其中,代表序列创建时的初始值
employee_seq nextval start with start with create sequence start with n n

15.3序列属性 序列的主要属性包括:minvalue、maxvalue、 increment_by、cache和cycle。在序列创建时,如果未指定 这些属性的值,那么Oracle将为其赋予默认值。当然,如同 其他数据库对象一样,可以通过alter命令来修改这些属性
minvalue maxvalue increment_by cache cycle Oracle alter

15.3.1设置序列的最大值和最小值一 ninvalue和maxvalue属性 序列的minvalue和naxvalue属性用于指定序列的最小 值和最大值。序列最小值的意义在于限定start with和循环取 值时的起始值;而最大值则用于限制序列的nextval属性所能 达到的最大值。序列的最小值默认为1,而最大值默认为 1E27,即1027。 【示例15-5】可以利用alter命令修改序列的最小值,其 语法形式如下所示。 alter sequence序列名称minvalue最小值
—— minvalue maxvalue start with nextval 1 1E27 1027 15-5 alter alter sequence minvalue
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
- 《Oracle数据库》课程教学资源(PPT课件讲稿)创建数据库.ppt
- 《Oracle数据库》课程教学资源(PPT课件讲稿)SQL查询.ppt
- 《Oracle数据库》课程教学资源(PPT课件讲稿)SQL更新数据.ppt
- 《Oracle数据库》课程教学资源(PPT课件讲稿)Oralce数据库与数据表.ppt
- 《Oracle数据库》课程教学资源(试卷习题)练习和解答(Oracle Database 11g).pdf
- 《Oracle数据库》课程教学资源(实验指导)ORACLE数据库项目案例(实验文档).pdf
- 私立华联学院:《Oracle数据库》课程教学资源(教学大纲)Oracle数据库课程标准.pdf
- 私立华联学院:《Oracle数据库》课程教学资源(教学大纲)Oracle数据库授课计划表.pdf
- 私立华联学院:《Oracle数据库》课程教学资源(教学大纲)Oracle11g数据库电子教案.pdf
- 《Oracle数据库》课程教学资源(拓展资料)Oracle物化视图.pdf
- The End of Slow Networks - It’s Time for a Redesign [Vision].pdf
- Squall:Fine-Grained Live Reconfiguration for Partitioned Main Memory Databases.pdf
- 内容管理框架CMF工具:Drupal精华教程集(1/2).pdf
- 内容管理框架CMF工具:Drupal精华教程集(2/2).pdf
- 在lamp环境下安装Drupal.pdf
- Windows环境下虚拟机和Ubuntu Linux的安装.pdf
- 在Ubuntu-linux操作系统下安装apache-mysql-php(Install Apache MySQL PHP on Ubuntu Linux OS).pdf
- 《政府网站建设》课程教学资源(教学大纲)Government Website Construction.pdf
- Linux系统知识培训(PPT讲稿,共十三章).pptx
- 私立华联学院:《电子商务支付与安全》课程电子教案(PPT课件)模块9 电子商务支付与安全的法律保障.ppt
- 《Oracle数据库》课程教学资源(PPT课件讲稿)数据库一致性与事务管理.ppt
- 《Oracle数据库》课程教学资源(PPT课件讲稿)用户管理.ppt
- 《Oracle数据库》课程教学资源(PPT课件讲稿)约束.ppt
- 《Oracle数据库》课程教学资源(PPT课件讲稿)表空间应用.ppt
- 《Oracle数据库》课程教学资源(PPT课件讲稿)视图.ppt
- 私立华联学院:《Android软件开发》课程电子教案(课件讲稿)第一章 开始启程——你的第一行android代码(负责人:王海).pdf
- 私立华联学院:《Android软件开发》课程电子教案(课件讲稿)第二章 先从看得到的入手——探究活动.pdf
- 私立华联学院:《Android软件开发》课程电子教案(课件讲稿)第三章 软件开发也要拼脸蛋——UI开发的点点滴滴.pdf
- 私立华联学院:《Android软件开发》课程电子教案(课件讲稿)第四章 手机平板要兼顾——探究碎片.pdf
- 私立华联学院:《Android软件开发》课程电子教案(课件讲稿)第五章 全局大喇叭——详解广播机制.pdf
- 私立华联学院:《Android软件开发》课程电子教案(课件讲稿)第六章 数据存储全方案——详解持久化技术.pdf
- 私立华联学院:《Android软件开发》课程电子教案(课件讲稿)第七章 跨程序共享数据——探究内容提供器.pdf
- 私立华联学院:《Android软件开发》课程电子教案(课件讲稿)第八章 丰富你的程序——运用手机多媒体.pdf
- 私立华联学院:《Android软件开发》课程电子教案(课件讲稿)第九章 看看精彩的世界——使用网络技术.pdf
- 私立华联学院:《Android软件开发》课程电子教案(课件讲稿)第十章 后台默默的劳动者——探究服务.pdf
- 中国人民大学:《人工智能》课程教学资源(作业摘选)人工智能课程总结.pdf
- 中国人民大学:《人工智能》课程教学资源(作业摘选)SCIgen生成文献的检测方案.pdf
- 《人工智能》课程教学资源(参考资料)基于Jupyter Notebook的Tensorflow深度学习教程.pdf
- 南京农业大学:《Web 应用系统开发》课程教学大纲.pdf
- 南京农业大学:《软件工程》课程教学大纲.pdf