00:00
这个知识点特别简单。叫序列。要序列。啊,这个序列呢。是是什么呀。你看在咱们Java里边哈,经常会用到什么负循环,后边来个爱加加是吧。好爱家家干嘛的?自增他的目的是啥呀?我是不是得记录我循环循环了几次了。对吧。OK,那咱们在这个Oracle里边其实也会应用到这个东西,比如说咱们在建表的时候啊,尤其是。这样的表,比如bank前面是不是12345。Great是不是也这是没排序哈,12345678呀。什么result,看一二三四五六七八九十,你看通常这个ID这个列啊,都是这样自动往下1234567。那现在咱们这种方式是自动的吗?你看咱说这个之前那个bank这个事儿啊。
01:01
银行呢?我是不是手动去写这个34567啊。累死了。累死了是吧,那我有没有办法咱们也搞一个变量I,然后每次让他A加加呢。有了就是序列。什么是序列?数据库。中的自增。可以理解为。哎,佳佳。是吧?好嘞,那咱们这个序列怎么应用呢?非常简单,比如说现在我要建一张表,别的了。呃,这个吧。我把这个不用见表了。Delete from bank。好半个这个里边是不是就没有数据了。诶。Delete from bank没执行吗?
02:04
啥情况?诶。好尴尬呀。是半吧。Delete from bank。ID等于一。零行被删除。哎呀,我这个可能有问题了啊,我这个这个整个这个软件啊,我把这个关了啊。重新来,重新打开一下。可能缓存之类的东西卡住了。重来。呃,查询。Bank。
03:03
没了吧,没了是吧。啊,可能是刚才这个卡住了啊。好,来。好,接下来呢,我比如说我要insert inTo Bank,然后value,然后呢,我这样。谁呀?那这个又是不是又打回原形了,我这个如果写一的话,挨个是不是还得23456,我手动的去改啊。这块呢,我有没有办法就搞一个变量。搞一个变量。我在这写什么代码啊?我之前那个代码在这呢哈,打开Q啊。Test。在这里边写。在这写啊。首先,我要清空半个表。
04:05
然后这样。我现在往这里面搞呢,手动搞是吧,不行,咱们应该怎么办呀,是不是创建一个变量啊,其实类似于这个东西啊。创建一个。一个自增的变量。其实就是这个回事。这个自增的变量就叫就叫序列。好,那咋办呢?非常简单。Create序列这个单词E。这是序列一个单词,然后呢,你随便介绍一个,咱就叫I行吗?叫XX哈。叫X好了,来创建出来,F9创建完成。这写着呢。序列被创建啊。好了,那咱们在插入的时候,这块就不能写成它了,应该用X来替代了。那X就完事了吗?不行啊,不行。每次我是不是咱们在引用,就Java中引用这个I的时候,你直接用这个I就行了吗?它会自增吗?不会吧,你是不是得A加加呀。
05:07
对吧。加加拿下一个值是吧,加一,哎,原先是一,那就二二完了是三,三完了是四,以此类推,咱们这个也不能直接用X啊,用X下一个值这儿呢。哎,先增长后返回的这个东西叫next war。Next,你看这个是不是下一个呀,而这个Val实际上是什么呢?就是value的意思,值的意思。所以这块就这么搞。当前,引用这个变量的下一个值next。好了,我去。执行。一次,两次三次,我管他多少次呢?搞了一堆,再查一下。老铁,没毛病是吧?是不是自动编号啊。棒棒的好用吗?
06:01
哎,这非常好用啊,非常好用的一个东西。好,这个就叫序列,这个叫序列。然后呢,这个序列你看我咣当咣当一顿执行是吧,哎呀,我忘了你最现在那个序列已经到达几了,就是说你在循环哀加加的时候。咣咣一顿循环,我想知道当前这个I已经加到几了?咋办呢?是不是得输出这个I呀,咱们现在呢,这个X直行到第几个了。你首先你这么往下扒拉看的话就够累的了,其实一个单词就告诉你了。啊行,那注释啊行。查看当前。当。前序列的值。这么搞?叫做X点当前的值CU2,那呃。然后来自于常量表。执行多少啊?
07:00
是不是12跟我上边滚动的是不是一样的。这是达看当前的值啊,叫他。简单吗?这个玩意儿。OK,那咱们对它呢,再给大家多说一点啊,哎,删除序列使这个。好,等会儿咱们再说删除的事儿啊。往上来。这里边儿呢,哎。有几个参数。几个参数可以指明的,从几开始,每次加几,我设置最大值,啥意思呢?现在呢,我再次把咱们银行中的数据清掉。银行中的数据清掉。在哪呢,啊,这儿呢。再见。然后里边呢。没事了吧?好,然后呢,我创建这个X啊,已经是创建好了啊,已经创建好了,咱们不能再用X这个名了。OK,接下来呢?创建一个。
08:01
自增的。这序列吧,啊好,这个序列的要求是什么呢。从100开始。每次递增。就是之前不是爱加加嘛,现在呢,我让他每次递增二。或者每次递增五。啊,什么玩意儿递增。每次递增五,也就是说第一个值是不是100啊,那么100块,第二个值就是一百零五一百块,第三个是一百一一百块,OK,明白啥意思吧。就是每次加五是吧。好,那这个序列怎么创建呢?不是table习惯了哈,E,咱叫Y吧。行吧,上面X这个叫Y。好再回车,后边呢,直接写它的这个参就可以了,怎么写的呢?首先从几开始start。Start with100开始。
09:00
100开始,然后每次增几个,就是挨加加几是吧,这个就是in。Increment。Increment by。每次加五,每次加五,然后还有一个参呢,这个值他说no max value。翻译都能知道啥意思吧?不设置最大值,就是无限的增,无限的增加是吧。好了,来把这个写上吧,No no marks。百6。好,这一段搞定了。然后呢,咱们接着来使用啊,使用一下。插入这回是X了,不是X吗?用歪了吧,然后刚创建的这个吗。好嘞,来执行一段执行。来查一下。
10:04
对吧,哎呀一百一百字呢啊。这呢,116是不是不是每次增五个呀。OK吧?这个就是咱们这个。可以怎么理解啊?数据库中的自增变量。自增变量。OK。这数据库中的自动变量啊。来看一下我这个脚本里边用到的是不是啊。数据库脚本,比如说来这个编辑。这啥玩意儿,这太太low了是吧?手动写的。好像我这个也挺low。我的MYSQL脚本,呃,买书。尴尬了。哎呀,也都是用这个排版的数字哈。其实这块使用序列是最好的,哎哟,我天呐。
11:02
脚本谁做的,这是。啊,这种方式不可取啊,这太多了是吧,最好呢,还是咱们使用序列稿是不就好了。是这个。然后这个序列在哪看呢?创建完成之后啊,跟查看表一样哈,这边来看啊,首先咱们都学了什么呢?表搞定了吧。试图搞定了吧。这个这个triggers是要触发器,咱们明后天也学了哈。索引是不是搞定了这啥。约束,哎,约束。然后紧跟着咱们现在学的是不是这个啊。Ques,啊,来看一下这里边儿能不能找到咱的X和Y。OK。X。没问题吧?喂。是吧?哎,所以这里边儿你看最小值,一开始最大值。
12:04
我的个天呐,会赌吗?我是不会读啊。对吧,我是不太会读啊。OK。这个不设置最大值就长了,这么长就长这么长。啊,这个序列,然后再来就是把这个序列删掉哈。序列删掉就是。呃。E Qu。En CE,比如说把X干了。是吧,序列被删除,这边有没有了。不是。这儿呢,没了吧。山头。这就是咱们序列的一个应用。刚才看了这个约束了哈,来点开。啊,这个里边呢,都是约束类型是吧。
13:03
这个约束啊,都长成这样。长成这样。你看随便这个,你这个细点看,其实还能能看得着。你看这个。这是约束的honor什么意思?拥有者是吧?然后它是什么类型的约束。是主键的约束啊。然后作用在哪张表上了?是不是区域表啊。对吧。这些约束,这都能看得到的啊。好了,咱们的序列就说到这儿,序列就说到这儿。
我来说两句