00:00
我们单独来说一下主见和唯一,这是一道经典的面试题,也就是细节的,咱们单独说,好,我写到这个地方哈,啊,就是关于我们的主见和约束的大对比,呃,主见和唯一的大对比,好,那主键和唯一,因为它两个非常像,所以呢,我这样对比一下,首先呢,它是否都可以保证唯一性呢?这个事情我们看一下这个是不是都可以啊,哎,这是最最基本的啊,这个是可以保证的。第二呢,就关于是否为空,是否允许为空,主见的话呢,是不允许,哎,这个是允许啊,但是这个地方有很多同学可能就要问了啊,你比方说主见这个咱们其实是看了的哈,我们直接看到就行了,这个地方比较明显好。
01:00
我这个只要一加主键飞空是不是它自自己就加了,你会发现你的这个座位号,座位号我是不是加那个文一键来着呀,这不是unique吗?但是我这个地方是不是这个对勾没有加呀,那有的同学可能就问了,说那这个sit我在插入数据的时候,我可以写now,那我可以写两个闹吗?知道我的意思吧?啊,那我们看一下啊,就是跟大家再验证一下这个事情,好咱们可以我就直接在这写吧,那就是insert,我们的into,我的表是不是SQ in方呀,好,Values小括号啊,我的major表里面有没有数值啊。Major表也没有呢,是吧?Major表必须得有,因为是不是有外键呀,嗯,Major value好吧,我们插入几个专业,一个是Java,再来一个H5,可以这样吧,哎,我这样去执行啊,可以是吧?然后呢,咱们再来一个那个学员信息编号一号学员,比方说叫做John,性别男,然后再来一个座位号,座位号这次我插入一个闹,这个是19岁没找ID的话,我就写个一对吧,啊,我这写个二,我这是不是故意还差个闹啊,这个我得改了啊,这个改成Lily,我们先试一下两个闹能不能行。
02:34
好,我们现在去执行出现了什么错误,好看一下,呃,这个错误的话是由于就是我的座位号sit吧,他认为怎么了?W什么意思,重复重复啊重复的意思,这说明呢,你的这个唯一键只能插几个呢呀,一个啊,就是有一个只为空行啊这个能明白了吧,的确允许围空,但是你一个围型,你要再有一个围空就不行了,知道了吧,哎,这是这一点啊好,那行再继续哈,那么我们再去看,其实啊,我一个表装一个表中可以对有多少个啊,那么主键的话,注意了,我一个表中只能有一个,或者说只多有一个,因为也可以没有,我说的对吧?啊也可以没有,那这个的话呢,是可以有多个来。
03:34
我们试一下,呃,怎么试呢?我这儿的话实际上已经加过了一个了,对吧,我我我再删一下吧,因为咱们现在是不是还不会修改表呀,就是不会修改约束对不对啊,那我这样啊,看着我先做,呃,我这个通用的写法就留着吧,留着的话我就在这儿弄。在这儿弄。
04:00
嗯,就在这个地方,我再加一个,加一个谁呢?我这个age也不合适,我再加一个列吧,比方叫西二,我我我只是为了是能听懂吧,我只是为了是啊啊所以呢,你看我怎么写呢,我这个地方是不是加了个unique seat了呀,哎,我还想再加一个能听懂意思吧,再加一个的话,应该再来一个unique seat2是不是这样一个意思呀啊看一下能不能行啊,哎,然后我们删除先,然后再去执行啊来看能成功吗?能成功,然后再看一下我的这个唯一键看多没多可以吧,这是可以的。知道意思了吧,他这样啊,好,那有的时候老师你那个主键不能行吗?那我们是不是也可以试一下呀,看到哈primary k,我这样写可以吧,我就是为了试一下啊,当然没什么意义,好,那么现在我就执行,嗯,先删我这两句话一起执行可以吧,可以不可以可以啊执行跟着看了啊,是不是已然出现错误了,哎,你看一下错误的意思,说多个主键定义了,知道了吧,啊行,这是一件事情哈,再来一个。
05:25
那么其实的话呢,我们还有一点要注意是否允许组合,允许组合什么意思。我的意思是说,是否允许两个列组合成一个主键,或者是否允许两个列组合成一个为一键,这个是允许的,这个是允许的,我们试一下主见也可以,但是呢,你组合在一起,它代表的还是几个呀,一个代表的还是一个来注意看哈,我们还是拿这个为为例子去试哈。
06:02
比如说来看到哈。我这个主见呀,我这是拿着ID当主见的,对吧?其实我可以这样写,瞪大眼睛看啊,因为这个里边要记的东西较多,ID逗号,SQ音号,这个意思代表的是设置两个主键吗?不是,它代表的是说这个两个列组合成一个主键,好,我把这个pro可以先去掉啊,哎,写错了什么s to in for呀,STEM,好吧,然后现在呢,我们再去执行。大家看一下能不能成功,成功了吧,成功了那么我们看一下这个,所以有几个,按照我这个的话,应该有一个主键,一个唯一一个外键,我说的对吧?啊,然后来看一下这个地方,你看它显示的是两名字对吧,好像是两个,其实不是啊来你怎么看效果呢?我们插入数据就知道了,插入数据,我那个插入数据在哪来着,在上面对吧,看着我们插入数据。
07:11
这个地方呢,我们在这儿呢,插入的是一号JOHN2号李里,刚才是这么插入的吧,哎,但是我已经删过了是吧?哎,那我这样啊,看看清楚了哈,我照样让它重复,因为刚才我是让他们两个列组合成一个主键,假如说他们是各自的主键的话,那状语能重复吗?不能重复,那我们去执行啊,当然这个是说什么出现错误了呢。烈数不匹配,123456,我少个谁呀?S to in for values,我是多了一个东西吗?啊,刷新啊刷新好多了个SIT2是吧?啊,因为我那会儿多了个SIT2 sit2其实那会儿该删了他了着是吧啊,那行吧,我这随便加一个一号,再来一个二号行吧,不用管它,我就看前面能听懂吧啊来看上面了哈,直行两行受影响了,哎,说明这个状语能不能重复,能重好再注意看我呢,把状语换成Lily这俩不重复了。
08:28
我这还叫谁呀?一号啊,当然我把原先的表先删一下啊,为了怕混淆from我们的SQ1号可以吧?啊,先删了,是不是里边没东西了啊,没东西了,我刚才状重复没问题,我现在看一下编号重复有没有问题,知道我的意思吧,有没有问题,没有,那怎么着才有问题呢?对了,对,这就叫组合主键,说明白了吧,这就叫组合主见,现在我再去执行怎么样,是不是重复了,看这个意思啊,这是组合主键哦,明白了对吧?那其实我们的组合唯一键的使用也是一样的,怎么去写呢?刚才我是primary k这么写啊,你要是组合唯一它也是,哎,就是继续往后加就行了,能听懂吧,效果我就不试了,因为一样能听懂吧啊,因为一样啊好吧,那我这个就要说到这儿,说到这儿。
09:32
那意思是说是否允许组合呢?这个都是允许的,这个都是允许的,我画的对勾,但注意了不推荐,因为毕竟是不是多个列组合成一个是不是不够稳定啊,哎,这个是不推荐的啊好,我这儿也这样去写啊,答案最高但不推荐啊,行吧,那这是主见和唯一的大对比,我们说到这儿停下来大家先。
我来说两句