00:00
好,接下来我们看一下创建表识怎么去添加约束啊,这是第一点,创建表时添加约束啊,那么我们先去看这个第一点,那也就是如何去添加列级约束啊,我们需要先有一个表吧,啊,那么我们这个这样吧,我们新建一个库哈,在库里边呢,我们这个整一个非常干净的库啊,在这个里边呢,我们创建表,在创建表的时候呢,我们去添加这样的一个约束哈,啊,那你比如说我们在这呢,就先create create database啊,比方说我们是来一个students可以吧,那么我们在这执行。啊,成功了啊,那么接下来呢,我们再去柚子一下我们的students啊。Give great table,我们加上一个表,S to in for可以吧?哎,那这个表的话呢,我们随便写几个字段啊,ID int,这个是代表学号呀,哎,你按说直接这么写就行,但是我想加约束,好,注意看我先加第一个约束,一般对于学号来讲,咱们刚才说了,哎,是不是primary k啊,哎,这个加法呢,就如此之简单啊,就如此之简单,直接把该约束的类型是不是在这写上就行了,嗯,把该约束的类型写上就行了啊,它因为是关键字,所以默认大写的啊好,这是添加了一个主见约束,那么再继续,我还想去加一个SQ name是不是姓名啊,啊,We差,那么我们可以给他加一个什么约束来,嗯,非空是吧?Notno可以这样加吧,啊,非空,那这个就相当于加了一个非空约束,就直接这么写,很简单对不对,哎,直接这么写。
01:45
对吧,好,再继续,我是不是可以加一个性别呀,Sex sex差啊,它的长度应该是一对吧,好呃,这个一般性别咱们不用萨用真的用真的对不对,这个说过是吧,嗯,因为这个现在这个thanks是不是都有别的意思了呀,对吧?啊,咱们这个就用针吧,那这个的话,我们一般可以加一个check约束,刚才提到了对不对,那比方说我给大家去加一个check啊。
02:16
检查约束,检查约束那怎么去加呢?虽然没效果,咱们也加一下,这样去写check小括号,然后是我们的真的,哎,这个括号里面就放一个筛选条件,其实是呃,我们可以直接这样写,等于男哦,真的等于女,哎,直接这么写,或者写真的in,男逗号女用in也行,就所有筛选条件里边能写的,它这个地方也能写啊,这是简单约束,能看明白吧,再来一个,我们想加一个座位号,可以吧,Sit sit in啊座位号,那么我要跟它这个座位号加一个唯一约束unique,哎,就直接这么写啊,然后这个代表的是啊,唯一约束啊唯一约束行,再来一个,呃,咱们再来一个加什么约束的呢?默认吧,嗯,默认比方说来。
03:17
一个,呃,他们的年龄H可以吧,Int,那么怎么加默认呢?你看也是把约束类型写上default,后面再去加默认值,因为你的是int,所以值的类型也得是int,比方说默认是18岁能看到吧,哎,这样去加哈,这就是默认约数,默认约束,其实外键也可以去加,也可以去加,好比方说我们这个里面刚才提到是不是可以有一个专业编号呀,啊,Major I in,那么现在呢,你是不是必须有另外一张表呀,Read table major表啊,这个里边我们放上ID int primary k,是不是主间呀,然后再来一个major name,专业名V叉20行,我把这个表宽松的建一下,我希望让我的学员信息表是不是引用它呀,能听懂意思吧。
04:17
啊,跟着看哈,那么我这要是加的话,语法上是这么写的,语法上是这样写的,Foreign k foreign foreign foreign k是不是写错了,For可以写啊,For是吧,Foreign k,哎,这是外键,然后在references,然后后面再去加major,比较长哈,然后也用ID,这个代表的是什么约束,来外键啊,来引用谁谁谁引用谁谁谁啊好吧,来我们试一下,我们试一下你看现在我是不是把六个都加上了啊,当然有的都是不支持的啊,我们一会再挑出来,我先把它呢给建一下,这个已经存在了哈,那我就直接建它,然后我们去执行,呃,这个的话应该是没有这个方K啊,把这个去掉执行啊,是不是成功。
05:17
行了啊,这个你不用记,因为啥,因为它也不支持啊,我现在只是给你讲课呢,我给你写写实际中是不是不用去记它呀,一会我们直接讲表记约束你记那个就行了啊好,那么现在我已经加上了,加上了之后呢,我们来去看一下我的库,去我们刷新找一下,我们这儿是不是有一个students库啊,我们把这些没用的给删一下啊,东西太多了。好,然后找到我的有点词库,然后SQ音报表,我们打开改变表,这个地方的话,你看ID主键是不是打上对勾了,而且你会发现你就你就加了一个主见约束,这个非空是不是也达到对勾了,因为他认为主见肯定非空,你想把这个非空去掉,去都去不掉,看到了吧?去都不掉啊SQ name是飞空啊,那么H是默认是不是出来了,那么唯一键还有一个是座位号在这儿呢?Sit unique,看到了吧?啊,在这个地方能体现,而且主键是不是默认也是生成了一个索引啊,所以在这个地方我们再看一下外键,呃,外键在这没显示吧。
06:26
哎,那这说明外界在我们的列举约束上,实际上并没有起产生什么效果,对吧,那么这就说明我们的,呃,外界呢,它际上还是不支持列举约束的,仅仅只是语法没有报错,哎,那么我们这个是在这个地方呢,来查看了一下我们的这个约束是否生效哈,那么当然呢,我们也可以通过指令,你比如说什么对了,DSC,然后SQ in for查看表的结构,哎,在这个地方呢,其实我们也能看到,哎对应的它的这个约束啊,比方说非空约束,还有它的这个键,还有这个默认,呃,但是呢,它这个没有这个外键的这个,呃,这个这个这个信息哈,那有的说,因为你这次没有添加上外键呀,对吧?啊,它不仅仅是这个哈,那这个就算是我添加上外键了,我们通过这个D查看表结构,它依然呢也是这也是这些,那外键呢,并没有在这列出来,那怎么办呢?那当然呢,我们也可以通过另外一条指令叫做show index。
07:26
From SQ in for,哎,这条指令的话,呃,它是用来去查看我们表中所有的索引的哈,哎,我首先来解释一下它这个结果集中每个列的意思,呃,那么这个的话代表的是你的索引它所属的表,这个代表的是你该索引是否具有唯一性,零代表的话呢,就是,哎,它是试的啊,那么这个k name代表的是索引名啊,这个代表的是一个序列值,下面是对应的你这个索引是为哪个列来去设置的啊,这是比较核心的几个信息。
08:01
那么是这样的,我们的主键,外键,还有唯一键呢,它都会自动生成索引,所以说我们在这个地方其实就可以查看我们想要的这些键哈,啊,但是这个not呀,默认呀,哎等等这个约束呢,实际上在这儿也查看不了,那所以说你就可以结合着它和它来去查看这个约束啊。嗯,那么当然说有的同学可能说到了这个索引哈,这个索引的话,我们在后期会去讲解如何去创建索引,那么我们这个创建完了,索引在这个地方也能显示,也就是说,呃,对于目前来讲的话呢,呃,那么它就是指查看SQ in for表中所有的所引啊,那目前来讲它是包括我们所谓的主键外键,还有谁呢?唯一,那么当然后面的话还会去包含我们自己去创建的索引哈,哎,这是关于它总结一下,总结一下,因为东西比较多啊,好注意他的这个语法呢,是这样来写的语法,那么直接就写上我们的约束类型,知道我是个约束类型是什么意思吧,哎,就像primary key呀,呃,什么default呀,写上一个它就行了,那所以我这应该是直接在字段,字段类型、字段名和。
09:22
类型后面是不是追加,追加约束类型即可,我说的对吧,那就直接这么写就行啊,注意只支持,只支持谁默认非空,还有什么主键和唯一,像check约束和我们的外键是不是都不支持啊啊,都不支持,这样说能听懂吧,所以你重点其实记得就四个啊,这个check约束啊,你在MY搜中根本不支持,外键的列句约束也不支持,我只是给你写一下语法不出错啊,你呢就不用去记了,能听懂吧啊,你就不用去记了啊好,立即约束说到这儿停一下。
我来说两句