00:00
来,我们接着来讲,这叫添加约束的语法。添加约束。哎,刚才呢,我们讲是叫创建约束,就是我们在创建表的同时,来给你创建这个约束,就是我们这个图。是吧?哎,这个内容创建表同时来创建约束,那么表已经创建好以后,我能不能后期来对这些约束进行一个修改啊,可以,这个就是也可以来修改约束,当然这个修改给加上一个双引号啊,它是一个泛泛称为的叫修改,并不是说真正的这个修改啊,你看这这有说明我可以来添加或删除约束,但是不能够修改约束。因为没有提供相应的这些命令,所以你只能添加或删除。这是一组。哎,还有一组叫有效化或无效化约束,这个约束我不删除你,我先暂时让你无效化,然后再让你启用,就这意思叫有效化和无效化约束,这里有一个说添加no no约束要使用noify,哎,它呢,永远都特别特殊是吧?
01:08
它呢,如果你要是添加的话,用Mo范下面呢,就是我们这些例子来我们看一看。刚才呢,我们是不是创建了好多表吧,这些表呢,也创建了相应的一些约束,嗯,我们在这个表创建的基础之上,给他来添加或修改约束。比如说这个,随便举个例子吧,EP5这个表有主键,有唯一性约束,没有外键。嗯,有unit的约束,我们看一下大概这个表的结构,这个表呢,一共有四项四项。这是一个主键。嗯,Name,这是一个not not,嗯,Email email,这有个限制,然后salary salary,这是不是没有限制啊。好,我们就对它进行处理,Salary是一个number类型的,它要加限制的话,比如说哎,让你这个是非空的,那你飞空的是不是说这个salary得用modify啊。
02:20
哎,修改还是用的叫al啊out table emp5moify,你看我怎么写moify,你这里是不是操作的叫salary啊好salary,然后呢,它还是number类型的十这个都不变,二后边给它加上一个哪呢。这个就自然的有了这个叫非空的一个约束了。添加成功是吧,然后你在D5,你看这是不是就这个Y就没有了,那刚才这还有说明这个约束我添加成功。这叫添加一个约束,然后我删除一个约束吧,比如说这里边的这个这个email email有个约束,它呢在这。
03:08
呃,Email了,呃,行,Email email。先塌了,这个我们直接看B能看出来。啊,当然这个一样,我们在这也能看啊,你这样我这给它收起来刷新一下。看一下我们刚才这个tap,你看是不是多了一个这些数,我这用了一个默认的一个命名的一个规则。嗯,行,然后呢,我想给他,比如说把这个吧,把这个name这个约束给它删除掉,删除。删除的话,我们使用的叫job,就像我们删除一个列一样,你用的是job对吧。Job删列的话叫job column,那你现在删除约束就是constraint的constraint,那怎么来指明你删除的就是这个约束啊,我用的是这个约束名cons,你看这个约束名怎么写的,给它写到这来,EP5NAME。
04:13
这样来删除这样一个约束,删除了对吧,删除以后你再来看。Check是不是没有了,这就说明我们确实给他删除成功了。删除成功,你看这个这个我们要是删除它的话,那你是不是就得用这个名啊。确实是这样的啊,你要删除这个字命名的,那你就是按照它这个名来命名的,C005521。那这个也删了,你再一看的话,它就没了。就就没有了是吧,对,那你要是想添加,嗯,不添加飞空了,添加这个UN的约束,Unique唯一的是吧,添加唯一的约束,或者说这个主键呀,外键呀,这这个check呀,他们用的还是叫I的。
05:11
嗯,Constraint只有now now用的是multi派爱constraint,我加上一个unit给这个。嗯,给这个name吧,呃,Name name本身是我看一下。嗯。啊,Name没有是吧,我给这个name加上一个unique的约束。ADD constraint5_name UK unique。嗯,然后你作用在哪一个列上内上,这有点像我们是不是那个表的约数那样的格式的写法是吧。
06:02
添加成功,然后呢,我们看一下。五。Check,那不是check unit,这是不是多了一个内好,这是我们讲的修改的一种方式,添加或删除,后边还有一个叫有效化或无效化约束。有效化或无效化,我们看它是什么意思。先看这个无效化,在out the table语句当中,我可以使用叫disable与子句将约束无效化。将约束无效话什么意思呀?嗯,这呢,没有check的,我以这个NANA为例吧,嗯,我们再换一个看看啊unique。这是check,这个是闹闹的。其实用哪个都可以啊,看这俩啊,我先看一下这个表里边有没有数据,Select from emp3。
07:05
好,这个表还有三个数据,然后我现在如果往这个表里边去插入数据的时候,大家你看insert into3values10这个。主键主键这主键没有看这啊,我这个给它避开吧,这是1004,这个里边有两个unique,一个是ID。一个是email,现在ID我用1004了,这个内有一个非空的约束基地。Email email email是的是吧,我我我改成这个。
08:00
3000,大家你说这个时候我往里插能不能进去啊,显然不能,因为email是不是有一个unique约束,这样你因为重了是吧,违反唯一性约束条件。这个很自然,然后呢,我们进行一个这个操作命令叫al able3,我这里叫嗯,第able。Constraint constraint,谁叫E3EMAIL UK?Cons。改了,我把这个给它改成叫disable了,然后我刷新一下,你看一看。
09:01
大家你看是不是这时候你看这个约束并没有给删除,所以它不同于job,但是呢,它变成个灰色了,表示它现在没有起作用,没有起作用,那是不是就言外之意,当我再往这个表里边儿去给你插入一个这个数据的话,已经存在了,你看看我能不能插入成功。是不是可以啊,这说明它现在确实是失效了。它确实是失效了,那么它失效以后,我怎么让它有效啊,那就叫嗯,叫E,叫al table e3。Cons ep3email UK,你看我能不能行哈。你看他说不行,说无法验证它,因为找到重复的关键字,这是什么情况呀。
10:01
是不是这个意思,我现在想把它制成一个unique,但是你这个里边是不是重存在一些重复的呀,存在一些重复的这个我就没法往里加了,那你只要这个不存在的话,它才能够加,那这这个这个数据我得处理一下是吧,处理的话你可以给他删了,也可以给他update一下,我直接就先删了吧。删了,删了以后呢,我再去给他。你看这个时候是不是就可以了,那它就现在又起作用了。哎,好了是吧,哎,这就是这一组的这个使用啊。嗯,那么这个讲完以后,实际上我们这个整个这个内容就讲完了,后边这有一个查询约束和查询定义约束的列,我们刚才实际上通过这个叫图形化界面的方式,也能够在这来看,你要通过这个代码来写来来查询的话,也可以用的是这样一个命令,大家你了解一下就可以了,你说C。
11:21
粘过来请出V,哎,你看大概这个意思啊,含约束名,约束的类型啊,约束的条件,从这个user cons这个表当中,这个table的名字呢是叫它,如果你要想查询其他的表,只需要改一下这个employees这个内容就可以了,我看一下employees表中的约束。就这么多。就是这个,然后呢,我还可以查询这个约束,哎,定义的这个列是什么?用的是这个命令。这是呢,你这个约束的名,那你这个约束这个名是加在哪个列上的,就可以使用这样一个命令。
12:03
啊,我们在这也可以看是吧,在这叫图形化界面的方式,我点一点就完了,这个呢就通过代码命令行的方式来实现的。好,这个我们讲完的话,我们这一节就说完了,大家重点你掌握这五个关键字,如何在定义当中去进行一个哎创建,那修改的话,嗯,有点类似于我们前面讲的那个alter table那个修改表一样,是吧,大家你也给他熟悉一下,好,我们这节就到这。
我来说两句