00:01
啊,这四种完整性给大家介绍完成之后啊,咱们来看一看具体的应用啊。啊,首先咱们来看一下啊。这个等会儿咱们最后再总结这个啊,因为现在呢,这个什么都不知道的哈。一个个来看啊。首先呢,在之前咱们在介绍完整性的时候,说有一种方式啊,能够解决数据完整性。那这种方式咱们通常都使用的是约束的形式。约束。这个约束呢,就是咱们生活中所谓的约束啊。就比如说你怎么规范你的行为准则呀,是不是有法律约约束着你啊,还有思想品德约束着你啊,对吧?而咱们在数据库中为了保证数据的完整性。或者说简单来表示的话,就是数据的准确性。哎,数据的准确性,咱们用什么方式呢?通常使用约束的形式。
01:02
我要约束一下你的数据。OK,那常用的约束都有什么类型呢?这里边儿有常用的有四种。主键唯一检查和外线。来看一看啊,首先主键约束啊,要求主键列数据为一,并且不允许为空。哎,通常形式的话,咱们再建一张表,或者说咱们学生表啊,学号就是主见。员工表,员工编号就是主件。就是任何的一张表都应该有一个列,来让这张表的数据变得唯一。对吧,这个就叫主见啊主见。那么有的同学这个和下一个就开始懵了。那主建说了,主建的要求是数据为一是吧。而下边又来一个唯一约束。它也是要求该列为一。你记住了啊,主线约束和唯一约束啊,他俩呀,非常像,它俩非常像,只有细微的一个区别,什么区别呢?
02:07
组建。不能空。唯一约束。只能出现一个空值,换句话说,是不是允许为空啊?它是可以为空的。可以为空了。OK。这是它俩的一个区别,一会儿我再给大家介绍怎么用怎么用啊。然后约束的命名。命名一般采用的是约束,前面类型,后边是约束字段。前面是约束类型,后边是约束字段。啊,一会儿你给大家看啊,约束类型,刚才咱们看主线的约束类型叫做Mar key。唯一叫UN。检查叫check,外键叫for是吧,所以他们的约束类型这个东西看前面那个主键的名是不是叫PK呀。哎,这是这是一种规范啊,规范啊,然后唯一呢取的是UQ,检查约束用的是CK,然后外键呢用的是FK。
03:10
FK。好,这篇咱们一会儿回头来看啊,这个列级约束和表级约束。来,我开始给大家写了,哎。开始给大家写了。先看这个列级约束。动手了啊。下来。列级约束。好,什么叫列级约束呢?先把这个概念定义下来。在定义表格的某一列。十。就。在列的后面。添加约束。啥意思,来看我的。Create table,随便来个表,这个这个这个这个这个user。
04:04
写个ID。Number类型。再来一个name列。我差差。OK。然后这张表咱们创造出来。OK,插入。查数据了,Insert into user1Y6,然后一号叫小A。有问题吗?没毛病是吧?好,再来一遍。还是一号叫小B。行不行?没毛病。好,那如果ID这个列,我说叫身份证号。是不是不行啊,重复了吧,咱俩上这边看一眼这个这个数据啊,我这个叫USER1是吧。这了,现在它是不是两个一都存在了,那我想这个ID列。变得唯一假设这个ID列我认为就是身份证号。
05:02
我应该怎么做?我应该怎么做呢,这么做啊。在建表的时候这写着呢。在定义表格某一列的时候,是不是在定义表格ID列的时候啊,在列的后边填约束,就是在这个列的后边看好了啊,空格写约束。在这写约束。写的什么元素呢?我想让它变得唯一,也就是说我想让这个艾地列变成主键。加上这个单词。加上这个单词,OK。好,那我现在呢,把表一删掉。Job user。这个表放在这儿吧,这句话。删掉了,重新创建。执行。OK,没问题了吧,现在我再填入。EA。哎,没毛病。再填入第二个员工,他叫小B,然后呢,他还是一号,肯定不行了吧,来看。
06:05
看看什么事?违反唯一约束条件,一看到这个东西,咱做开发人员就一定会知道啥什么原因导致的。那肯定是这个列是唯一列,你还给他填重复数据。OK,这样的话是不是不让你往里搞了。这样的话,我是不是保证了这边数据的准确性啊,只有一个EA是吧。哎,就是不让你往里填了,OK,这个就叫列级约束。在定义表格时,某一个列的后边。某一个列的后边写这个东西。然后现在大家发没发现一个问题哈,在我参数的时候,大家来看,他说违反唯约束条件,然后后边你看这个参数给的啥意思啊。这个没问题吧。这啥呀,这是。这是我的用户名啊。看了吗?
07:00
然后在后边点SYS什么什么什么什么,这谁认识啊。其实这个报的这个错啊,叫做异常的类型。哎,异常类型有印象没?空指针异常。呃,数组越界异常。对吧,那咱们怎么认识这个玩意儿,咱不认识啊。咱不认识啊,那我现在来看啊,那我能不能把这个名变成自己认识的。或者说我给他定一个什么,比如说定一个。唯一两个汉字。我能不能把它改个名可以的啊,看好了第二种方式。这种方式我写上注释啊。这是简便的写法。简写吧,简写。简写方式。
08:00
呃,组建。约束的简写方式。好完整的写法,我再来个表二给大家看一眼,行吧?表二。好,完整的,这个是主键约束的完整写法。这写法吧。简单是吧。OK,完整写法看好了完整写法,你要遵守PPT上的语法规则。你看建表的时候,先是列名数据类型,这两个不说了,后边你必须按照这个格式来写。这个格式来写。好,这个格式首先一个你看红色的是什么呀。叫关键字,就是不能变的。啊,这个单词就叫约束的意思,就这个,就这俩字儿啊。这俩字就是前面这个单词的翻译,OK。哎,这是约束哈,好了,咱们来写上。这么把它删掉啊,重新来。
09:01
我要对这个ID列加约束了,那所以说你首先的单词就是C。加约束,然后你再看后边干嘛,约束的关键字,约束的关键字在这里边约主见约束的关键字啊是什么呢。主见约束的关键字key是吧,然后约束类型,具体的约束说明好,咱直接写上给大家看啊。好约束的名,咱们之前怎么来定义来着?看这主键我要求是不是定义PK啊。其实这个名啊,你不按他这个写法写也没问题啊,你看我写一个。我也不知道,我也不知道。行吧,我就给起了这么个名。我也不知道。然后呢,后边你就可以写这个约束了,Mar。好,这是完整的写法来创建UC。
10:01
创建。再来啊,看好了,我要测试了。我把它改为。62、重来一遍吧。有事。咱就要一。没毛病是吧,然后呢,我再插一遍EA是不是已经进去了,我再插一遍的话,一是不是重复了,他应该给我报错了。好,这回来看这个错还认识吗?OK,那你自己这个名是不是你自己定义的。那以后呢,在添加数据的时候报错了,一看到这个东西你自己写的,自己是不是就知道咋回事了。你就知道能快速定位哦,原来怎么怎么地了。好吧。OK,这是完整的一个写法。完整的一个写法。那么通常通常用哪种写法呢?呃,通常不用这种。为啥呢?因为啊,你在插入的时候啊,如果你经常玩数据库,玩数据库只要报这个错,你根本都不用看后边就知道啥意思了。
11:09
OK吧?哎,那很明显嘛,所以大家来看一眼,在这个脚本里边哈。就说my school这个啊。好,看到了吗?创建一个表。用到什么了?是不是主键了,OK,现在任何一个表,咱来看任何一个表是不是都有啊。是不是都有啊?好,这回呢,咱们是不是再把这个脚本文件里边再一次读明白一些关键字了。好,来回来。这个就是主见的一个应用,主见的一个应用。OK,那咱们把这个把除了主线之外啊,别的呢,也搞一搞来一个需求。啊啊嗯,添加列约束。
12:02
要求。呃。ID。Number类型。长度五。都蒙了啊,然后他要逐渐约束。第二个。呃,类目类型。内部类型啊,就是我。呃,然后长度呢。十。他要求是唯一的,唯一约束。再来一个列。Number。长度三。然后是非空约束。啥叫非空呢?就是这个值啊,你必须得填值,不添值不行。好,咱们来创建一下这张表,咱就USER3呗。
13:00
一个个来呗,是吧,三。Table。三。ID number类型长度五。写错单词了。上面的是吧。好长度它是主键。Mary。哎,逗号啊。好,第二列name列我。长度为十,为一,为一。啊,我看看这个唯一怎么玩的啊,唯一的话其实是这么写的,填写方式就是you。OK。然后再写这样吧,这个唯一啊,我给他写写全了吧。写全了吧,然后填写方式大家改一下就可以了啊,参考我这个啊,写全的话呢,就是CTT,然后直接是唯一约束的类型。
14:02
那么这个名啊,刚才什么我也不知道写的是吧,别乱写哈,养成这个习惯。什么习惯呢?按照这个名称来定义。用的多了,用的多了以后呢,你一看着UQ开始的这个约束类型以后边都不用看一看,肯定是违反唯一了。然后呢,以后看到CK的话,那一看就是约束。如果看到FK肯定就是外接,对吧,养成一个习惯,所有的程序员都会这样去命名,咱们也从今天开始也这样搞行吧。好,这个是唯一约束是吧,唯一约束的话,咱们给它来个命名,那就是UQ下划线后边这个值啊,你自己定义就好了。一般情况下是写的是表名U3哪个列是唯一的,一般是这么命名,看清了没?
15:00
这样的话,你自然而然就看到了这个表的这个列是唯一的,OK。好,这个是约束类型,还再强调一遍,这是自己定义的啊,自己写的,然后后边写约束类型的,约束类型就是UNUN。OK,下一列是不是列啊,列是。类型写的长度三非空,非空。飞空咱们也写全它啊cns题你看参考我上面这个唯一这个啊CNSCNP对吧,然后起个名飞空这个命名怎么命名的呢。啊,这里面没有哈,我告诉大家吧,这个非空约束的类型哈,叫闹空。这么写的。所以非公约数通常取前两个字母啥。哎,NN是吧,叫NN。然后哪张表,USER3表的A列非空。
16:01
这样表一创建。OK了,插入数据,开始测试insert into u13。好一号诶。小A。然后年龄21。没毛病是吧?再来一条。一号。我再重重复的啊。违反的是什么?唯一约束条件吧,主线约束啊,主线好把它改一下再来。诶,又是违反违约约束条件了,但是这回你看名啊。告诉你了吧,这是什么类型?唯一吧。哪个表的哪个列是吧,然后把它改为。是不成了。好,再来第三条测试,这个练好,我不知道他多少岁,所以我不填了。执行。没有足够的值是吧。呃,这个如果不填的话呀,你必须得给起上足够的力啊。
17:04
ID name。必须得对应上一个值是这个,一个是这个。OK,我没有填年龄吗?我不知道他几岁啊。好,再执行。他说什么呀?无法将空值插入吧?哎,无法将控制插入好,那咋办呢?一般都是插入一个默认的值哈,那把前面这个呢。啊,这句话注释了啊,这个是报错的。一般把前面那个删掉,然后最后一个不知道,你就写个18呗。哎。这这玩意儿是吧。是不就完事了?好,这是三种约束。全额加借到这了,那这样的话,这张表由于这三个约束来控制,所以往里边添加的数据是不是更加贴切真实的。哎,就不会乱七八糟是吧,啥都有了。
18:00
就不会啥都有了。好,这样的话呢,咱们给大家介绍了三种约束的类型,三种约束的类型。好吧,那这三种约束的类型,主键唯一还有一个非空是吧?还有两个咱没有介绍呢,咱这两个呢,一会儿再说。
我来说两句