【OpenCV入门教程之十一】 形态学图像处理(二):开运算、闭运算、形态学梯度、顶帽、黑帽合辑

1、思考问题

在某张表中,存在一个id列(整数),用户希望在添加记录的时候,该列从1开始,自动的增长,如何处理?

2、介绍

Oracle通过序列处理自动增长列。

(1) 可以为表中的列自动产生值

(2) 由用户创建数据库对象,并可由多个用户共享。

(3) 一般用于主键或唯一列

(4) 序列也是一种数据对象

3、定义序列

2  格式:

Create sequence 序列名

[Start with n1]

[Increment by n2]

[Minvalue n3 | nominvalue]

[Maxvalue n4 | nomaxvalue]

[cache n5 | Nocache]

[Cycle | nocycle]

[order | noorder]

2  参数说明:

l  Increment:该子句是可选项,表示序列的增量。一个正数生成一个递增的序列,一个负数生成一个递减的序列。默认值为1。

l  Minvalue:可选子句,决定序列生成的最小值。

l  Maxvalue:可选子句,决定序列生成的最大值。

l  Start:可选子句,指定序列的开始位置,默认情况下,递增序列的起始值为Minvalue,递减序列的起始值为Maxvalue。

l  Cache:可选子句,该选项决定是否产生序列号预分配,并存储在内存中。

l  Cycle:可选子句,当序列号达到最大或最小值是,可以复位并继续下去。如果达到极限,生成的下一个数据将分别是最小值或者最大值。

l  Nocycle:可选子句,序列在达到最大值或最小值后,如果在视图获取下一个值将返回错误。

l  Order:该选项可以保证生成序列值是按照顺序产生的。

l  Noorder:只保证序列值的唯一性,不保证产生序列值的顺序。

4、删除序列

2  格式:

Drop sequence序列名

5、管理序列

2  格式:

Alter sequence序列名

[Increment by n2]

[Minvalue n3 | nominvalue]

[Maxvalue n4 | nomaxvalue]

[cache n5 | Nocache]

[Cycle | nocycle]

[order | noorder]

说明:除了序列的起始值不能修改外,其他可以设置的序列子句和参数都可以被修改。对序列进行修改后,缓存中的序列值将全部丢失。通过查询数据字典USER_SEQUENCES可以获得序列的信息。

6、案例

1)升序序列

Create sequence myseq

Start with 1  --从1开始

Increment by 1  –每次增加1

Minvalue 1  –最小值为1

Maxvalue 30000  –最大到30000

Cycle    –序列到30000后,再重新从1开始

cache 10  --表示一次产生10个号供用户使用,可提高效率,但可能产生跳号。

2)降序序列:

Create sequence myseq

Start with -4  --从1开始

Increment by -1  –每次增加1

Minvalue -5  –最小值为1

Maxvalue -1  –最大到30000;不设最大值用nomaxvalue

Cycle  –序列到30000后,再重新从1开始;不循环为nocycle

Nocache

7、序列的使用

Create table test1(id number primarykey, name varchar(32));

Insert into test1values(myseq.nextval,’abc’);

Insert into test1values(myseq.nextval,’ddd);

说明:myseq表示序列名字;nextval为关键字,表示增加序列的值,然后返回该值。

Currval返回序列当前值。

Select myseq.currval from dual;

说明:

(1) 使用序列的情况:

?  Insert 语句的values中

?  Insert语句的子查询中 insert into test(id, name) select myseq.nextval, enamefrom emp;

?  Update的set中

?  不包含子查询、snapshot(快照)、view的select语句

(2) Currval总是返回当前sequence的值,但是在第一次nextval初始化之后才能使用currval,否则会出错。一次nextval(无论是select还是update和insert)会增加一次sequence的值,如果在一个语句里面使用多个nextval,其值就是不一样的。

(3) 第一次nextval返回的是初始值;随后的nextval会自动增加定义的incrementby的值,然后返回新值。

(4) 如果指定cache值,oracle就可以预先在内存里面放置一些sequence,这样存取的快些。Cache里面的取完后,oracle自动再取一组到cache。使用cache或许会跳号,比如数据库突然不正常down掉(shutdown/abort),cache中的sequence就会丢失,所以可以在create sequence的时候用nocache防止这种情况。

(5) Maxvalue:即指定升序序列的最大值为10的27次方;降序序列的最大值为-1。NoMaxValue为系统默认值。

(6) Minvalue:升序序列的最小值为1,降序序列最小为负的10的26次方。NoMinValue为默认值。

(7) Cycle:指定当序列即使已经达到序列自增的最大值或最小值时也继续生成整数。当升序序列达到最大值时,下一个生成的值为最小值。当降序序列达到最小值时,下一个生成的值为最大值。以这种规则来循环。

时间: 2024-10-02 01:54:31

【OpenCV入门教程之十一】 形态学图像处理(二):开运算、闭运算、形态学梯度、顶帽、黑帽合辑的相关文章

系列文章 -- OpenCV入门教程

<OpenCV3编程入门>内容简介&勘误&配套源代码下载 [OpenCV入门教程之十八]OpenCV仿射变换 & SURF特征点描述合辑 [OpenCV入门教程之十七]OpenCV重映射 & SURF特征点检测合辑 [OpenCV入门教程之十六]OpenCV角点检测之Harris角点检测 [OpenCV入门教程之十五]水漫金山:OpenCV漫水填充算法(Floodfill) [OpenCV入门教程之十四]OpenCV霍夫变换:霍夫线变换,霍夫圆变换合辑 [Ope

【OpenCV入门教程之十二】OpenCV边缘检测:Canny算子,Sobel算子,Laplace算子,Scharr滤波器合辑

本系列文章由@浅墨_毛星云 出品,转载请注明出处. 文章链接:http://blog.csdn.net/poem_qianmo/article/details/25560901 作者:毛星云(浅墨)    微博:http://weibo.com/u/1723155442 知乎:http://www.zhihu.com/people/mao-xing-yun 邮箱: [email protected] 写作当前博文时配套使用的OpenCV版本: 2.4.9 本篇文章中,我们将一起学习OpenCV中

【OpenCV入门教程之三】 图像的载入,显示和输出 一站式完全解析

了解过之前老版本OpenCV的童鞋们都应该清楚,对于OpenCV1.0时代的基于 C 语言接口而建的图像存储格式IplImage*,如果在退出前忘记release掉的话,就会造成内存泄露.而且用起来超级麻烦,我们往往在debug的时候,很大一部分时间在纠结手动释放内存的问题.虽然对于小型的程序来说手动管理内存不是问题,但一旦我们写的代码变得越来越庞大,我们便会开始越来越多地纠缠于内存管理的问题,而不是着力解决你的开发目标. 这,就有些舍本逐末的感觉了. 而自从OpenCV踏入2.0时代,用Mat

【OpenCV入门教程之十七】OpenCV重映射 &amp; SURF特征点检测合辑

本系列文章由@浅墨_毛星云 出品,转载请注明出处. 文章链接:http://blog.csdn.net/poem_qianmo/article/details/30974513 作者:毛星云(浅墨)    微博:http://weibo.com/u/1723155442 知乎:http://www.zhihu.com/people/mao-xing-yun 邮箱: [email protected] 写作当前博文时配套使用的OpenCV版本: 2.4.9 本篇文章中,我们一起探讨了OpenCV中

【OpenCV入门教程之四】 ROI区域图像叠加&amp;初级图像混合 全剖析(转)

本系列文章由@浅墨_毛星云 出品,转载请注明出处. 文章链接:http://blog.csdn.net/poem_qianmo/article/details/20911629 作者:毛星云(浅墨)    邮箱: [email protected] 写作当前博文时配套使用的OpenCV版本: 2.4.8 在这篇文章里,我们一起学习了在OpenCV中如何定义感兴趣区域ROI,如何使用addWeighted函数进行图像混合操作,以及将ROI和addWeighted函数结合起来使用,对指定区域进行图像

【OpenCV入门教程之六】 创建Trackbar &amp; 图像对比度、亮度值调整(转)

本系列文章由@浅墨_毛星云 出品,转载请注明出处. 文章链接:http://blog.csdn.net/poem_qianmo/article/details/21479533 作者:毛星云(浅墨)    邮箱: [email protected] 写作当前博文时配套使用的OpenCV版本: 2.4.8 这篇文章中我们一起学习了如何在OpenCV中用createTrackbar函数创建和使用轨迹条,以及图像对比度.亮度值的动态调整. 文章首先详细讲解了OpenCV2.0中的新版创建轨迹条的函数c

opencv ,亮度调整【【OpenCV入门教程之六】 创建Trackbar &amp; 图像对比度、亮度值调整

http://blog.csdn.net/poem_qianmo/article/details/21479533 [OpenCV入门教程之六] 创建Trackbar & 图像对比度.亮度值调整 标签: opencvvs2010c++图像处理 2014-03-18 21:43 43189人阅读 评论(99) 收藏 举报  分类: [OpenCV](18)  目录(?)[+] 本系列文章由@浅墨_毛星云 出品,转载请注明出处. 文章链接:http://blog.csdn.net/poem_qian

【OpenCV入门教程之十八】OpenCV仿射变换 &amp; SURF特征点描述合辑

本系列文章由@浅墨_毛星云 出品,转载请注明出处. 文章链接:http://blog.csdn.net/poem_qianmo/article/details/33320997 作者:毛星云(浅墨)    微博:http://weibo.com/u/1723155442 知乎:http://www.zhihu.com/people/mao-xing-yun 邮箱: [email protected] 写作当前博文时配套使用的OpenCV版本: 2.4.9 本篇文章中,我们一起探讨了OpenCV中

【OpenCV入门教程之十三】OpenCV图像金字塔:高斯金字塔、拉普拉斯金字塔与图片尺寸缩放

本系列文章由@浅墨_毛星云 出品,转载请注明出处. 文章链接:http://blog.csdn.net/poem_qianmo/article/details/26157633 作者:毛星云(浅墨)    微博:http://weibo.com/u/1723155442 知乎:http://www.zhihu.com/people/mao-xing-yun 邮箱: [email protected] 写作当前博文时配套使用的OpenCV版本: 2.4.9 这篇文章里,我们将一起探讨图像金字塔的一