00:01
好,那我们继续来上课,那么这节课呢,我们再来看一下我们对表的操作啊,那么一样,我把它e sit退出掉,退出掉以后我把它关了啊,我重新开一下啊,然后也当复习一下前两课我们讲的命令,首先进来我们log后的,然后杠u root-P进来对吧?进来以后呢,我们先们去选择这个edu,好回事,告诉我database change什么意思,选择已选择这个数据库,对吧,然后呢。当前这个括号里边是不是选择了我这个库名已经写上来了,哎,那么好,那么接下来我要往这个库里面去干嘛?去创建我们对应的数据表,没错吧?那么我们先查看一下这个数据库里边有表没有,那怎么办呢?用so tables来查看回撤,那么回执以后他告诉什么呀?M给空的看到了吗?哎,也就代表这里边没有表,就是一个空的,相当于一个空的目录,是不是这个意思,哎。
01:03
好,那这里边我们来看一下,叫做查看库中所有的表用的命令叫什么,叫做so。杠tables啊so tables,那OK,那么查看完没有了,那接下来我是不是要创建一个表了,那么创建一个表的命令就会比较长了啊,叫c table,然后后面是什么,后面是表明对吗?哎,表明,那我就直接table name啊表明那么这个表啊。我们叫什么是我们自己决定的,对不对,但大家想一下啊,好比刚才我们在这里边。哎,我跟大家说过,我说我们数据库啊,就好比是什么呢?就好比是这样留一个目录对不对,然后打开这个目录以后呢,我们可以在这里边去创建我们的数据库,创建好数据库以后,可以建对应的表,但大家看好了,我只要创建一个表出来,表里边默认是不是就会有字段,这些是不是都是表里的字段了。
02:00
对不对,所以对于我们数据库来,他有个要求,什么要求呢?他要求我们在创建表的同时必须连同字段一起来创建啊,创建表同时必须连同字段一起来创建,所以这里边我们要怎么办?来,我直接括号了啊,在括号里边我们需要去写它的字段,叫做Co Co Lu mn。杠name就是我们的字段名啊,这就是我们的字段名,你有哪些字段,你就把这字段名写上,就好比刚才我们看到这里边我有编号啊,有用户名,有密码,有性别、年龄、爱好、积分等等这些字段,对不对?那我就需要把每个字段名都写进来啊,都写进来那我就不挨个写了,我用一个省略号啊,代表着是不是有很多个字段对不对?哎,那么写完字段就完事了吗?也不是啊,你看字段我写好了,那字段未来这里面装什么东西啊?对不对,装的是不是就是他他买circleq类型能接受的对不对,哎,你比如说在这里边,我这个编号,编号也就代表着这里边肯定存的是一二三四五六七八九十这种数字,对不对,那我能存能存一个你好我好他好吗。
03:08
是不是肯定不行啊,哎,所以大家记住啊,我们编号里面存的。是什么都是数字对不对,所以我要给这个列做一个什么,做一个类型啊,也就是说你光告诉字段名不行,你还要告诉什么,告诉他的数据类型。数据类型对吧?有了数据类型就完事了吗?也不是啊,也不是,你比如说我这里边我告诉他这里面存的是整形对吧?那存整型大家知道我编号肯定都是从一开始往上自增的,对吧?就好比这表格,我这么一拉123456是不是就有了?哎,那好,那我这里边我就不这么写,我给你来个负十。对吧,然后再往下一拉,你看负11直到零,那你这样的编号行吗。其实理论上也没有问题,只是一个负数而已,对不对?但你想啊,对于我的会员表,它的编号是负数的话,应该我怎么理解呢?它是负十的,是不是我是给它减去了还是给它怎么样啊对不对,所以这一列里边是不是只能为。
04:05
正数。对吧,应该准确说是什么是正整数吧,哎,包括比如说用户名这里边。那用户名这里边我告诉他什么,我告诉他让他写的是一个,比如说是一个字符串,那他未来肯定就只能写什么,写这种字符串,比如说用户名叫做。对吧,或者叫做。数有的幂的对吧,比如说只能是这样的名,没错吧,哎,那OK,那比如说有的人说,那我不给用户名,我就给一个空这个就这个格让它空着行不行。是不是也不符合要求,对不对,那你下回登录,你不输入用户名,直接输入密码,你说我怎么判断,我直接拿密码,那如果都这样的话,那不就乱了吗。比如说吧,哎,所以我还要有对应的一些约束,知道吧,哎,要有对应约束包括包括什么,比如说年龄。哎,年龄咱说18对吧,哎二十二十二这什么年龄,那有的人就比较任性来付100。那你说这年龄负100到底是多大?
05:02
没出生呢,肯定不行吧,哎,所以说这种数据我是不是要给他进行一个约束啊,所以我光给类型还不行,还要干嘛呢,还要给他约束。叫做列的完整性约束啊,有了这些,这才代表了什么,代表了这一列,OK,对吧,然后剩下就是第二列,第三列,第四列,以此这么去创建,然以此创建,那OK,那好了,那我们现在看完这个建表的这个语句以后。那这里面涉及到两个问题,我们不知道哪个两个问题,第一就是这里面的数据类型都有哪些。对吧,第二就是它的完整性约束都有哪些,这是我们需要干嘛。了解了对吧,那好,我们先去看它的数据类型,数据类型我提前给大家已经准备好了啊在这里边。来,咱们来看MYSQL基础数据类型之整型啊,数值型,数值型有这么多,看到了吗?有这么多啊,那么都有哪些呢?第一个。
06:00
Tiny in啊,这是什么?非常小的整数,它支持的值是多少?你看如果是带符号的,它的最小值是负的128到正的127,如果是没有符号呢,是零到255,也就是能存256个数对吧?那比如说对于年龄的字段,我是不是就可以干嘛?可以用什么用这个来约束啊?用最小整形来约束吧,因为你存太多了也没有用嘛,对不对,我只需要告诉他,给他最小整形约束,然后呢,让它变成无符号的,无符号的是不是就零到零到255啊,是不是就不可能有负数的出现。没错吧,哎,这就是咱们的数据类型啊,然后咱们一样,我先把我们先把这些都看完一遍,然后我再拿几个类型给大家做演示啊,然后small印的呢,它占为两个字节,然后较小的整形,然后它是带符号的值是32768~32767,看到了吧,无符号呢,就是零到65535,哎,然后这个meium in。它是中等的整形啊,中等的整形负的这些到这些,然后如果是这个呢,就是零到16772.5对吧,然后还有什么印的,印的叫什么叫做标准的整形,看到了吗?哎,如果是无符号的是是零到这些多少个数,看一眼三。
07:11
六九是不是十的数?没错吧,哎,然后包括还有什么bigger in bigger in,那就是大整数了,从零到这些,这些更多了,对不对啊,有符号的是这些,这应该多少。大家下来可以自己算一下,没错吧,哎,然后还有什么呢?还有我们的浮点数,浮点数注意这里边有两个看到了吗?一个叫float,一个叫double,其实还有一个叫做DECDEC是以字符串形式表示的浮点数啊,什么叫做字符串形式表示的浮点数呢?比如说就是这样的。对吧,3.33,那它代表的就是3.33啊们后面不会再有任何东西了啊,这就是字不出二的浮点数,所以这种浮点数啊,我们用它干嘛呢?一般我们跟金融相关的,就是跟钱相关的都用decimal类型,为什么?因为它更精确,它更精确啊,如果用的是double或者是float这两种类型的话,都有可能什么都有可能做到四舍五入了。
08:04
明白吧,因为你看好了,如果是lo的话,单精度的浮点数对吧,Double是双精度浮点数啊,单精度浮点数。你看好了正负这个数。到多E乘以E-38是不是十的38次方,也就是负的十,呃,负的这些对吧?到正的多少最大,你看非零整值是不是十乘以38次方。比如说吧,哎,十个38处方啊,这这些数就其实就已经很大了,一般对于flow单精度浮点数就足够我们用了,但这个单精度跟双精度到底什么意思呢?我给大家简单举个例子啊,比如说3.33,这叫做单精度,后面余了两位对不对?那么如果是双精度呢,那可能就是这样的,就是3.3333就比它多两位,明白什么意思吧?诶大家可以这么来理解这个单精度和双精度,当然双精度的存储倍数肯定也更多,你看它是多少?E-308和一加308。碰到了吧,哎,十的308次方没错吧,哎,正值是十的308,负值也是负十的3000次808次方对不对?哎,所以它的数就更大了啊,那我们一般情况下是用不到它的,所以呢,大家把这个知道就可以了,我们很少会用到这个,呃。
09:17
这种浮点数的啊,所以一般浮点数我们要用的时候呢,一般都是跟钱相关,那跟钱相关的我们都采用decim就可以了啊,记住采用decc就可以了,好了,这就是我们的整形值啊,就是数值类型的,那么数值类型完成以后还有什么呢?还有我们的这个时间,那么时间啊,我们一般不会去采用这个。它这里边的格式啊,一般不会去采用它这里面格式,因为它这里面的格式第一比较繁琐啊,第一比较繁琐,第二大家知道我们通过这个PP可以获取到时间戳,对吧?时间戳是什么?是不是一个整形啊。哎,所以我可以把时间戳直接丢到什么,丢到我的整形区域里边啊,而不是用这种方式对吧?所以这个东西呢,我们作为一个了解就可以,一会儿呢,我也一样给大家去创建两个这个类型,然后我们用一下可以看看,比如说这种YYYMMDD这种格式就要叫date,它就是这种格式的,这个time呢,就是这种格式的,看到了吗?Data time呢,就是完整格式的,然后还有这个time step。
10:20
啊,就是这种格式从哪哪哪到某年的某时某刻对吧,格式表示的什么时间戳啊,然后再往后呢,还有什么这个Y就年嘛,YYY格式这种年份从1901年到2155年对不对?哎,那这些东西啊,不用管它啊。然后我们来看,这是我们的时间类型,大家先知道有时间类型就行了啊,然后再往下还有什么呢?还有这个差差是什么呢?这里边是字符串类型,你看啊,基础类型,字符串类型,字符串类型有差瓦差,还有这个tiny,拔萝卜对吧,还有tiny taste,以及拔萝卜taste me,拔萝卜me taste。对吧,这些都一样了啊,包括还有什么,还有我们的这个枚举。
11:06
包括我们的枚举,枚举是什么,你看可可以怎么样选择某个成员对不对,以及集合,集合是不是就选择多个呀,对不对?那枚举一般大家可以看适合做什么,是不是适合做性别你要么选男,要么选女,而集合呢,是不是适合多选呢?对吧?比如说爱好,爱好里边是不是有很多选项了,对吧,我爱好比如说爱好吃喝玩乐是不是个,哎,就这个意思,但也一样,我们在做的时候也一般不会去用这两种类型,为什么呢?你看光有类型,我们老说不用是不讲吗?其实不是啊,是这样的原理,大家记住,在我们去使用数据库的时候,能往里面存一零的存一零啊一,这样的话效率是最高的,就能先是说能存整形存整形,整形不能存再考虑用字符串。明白吧,哎,整形的时候能用一零则用一零,你比如说像刚才我们看到这个表。这里面有爱好,不是有爱好,有性别,性别你说我存一个男的效率高,还是我存一个一的效率高,对吧?性别就那么几种,无非就是男女保密对吧?所以我存一个012。
12:12
零一啊好了对吧,一就代表着男,零就代表着女,二就代表着什么,代表着保密,是不是就可以了。哎,所以记住啊,我能存整形,存整形,当我存不了整形,我得考虑什么,考虑字符串啊,所以大家一定要记住这个原则。啊好,那么再往下来,那我们了解了这个字符串啊,一个是差,一个是瓦差,它叫什么呢?叫做定长字符串,而瓦差呢,叫做变长字符串,它们两个有什么区别,先看最大长度。定长字不算,最大的长度支持是多少?260 256个,甚至零到25。而变长呢,是65535看到了吗?那么到底什么叫定长,什么叫变长呢?它实际上是这个意思啊,来我给大家简单的举个例子,比如说这边有一个TXT文档,然后呢,我们现在给他设置了一个什么,设置了一个差。
13:02
长你要给他位置,比如说十个长度,然后呢,我再来个瓦差,也是十个长度,好,那么第一他们两个在存储的位置上是有区别的,对吧?哎,那存储再说了,这个差最大,也就说这个括号里边最多你能写255对不对,而这个瓦差里边呢,最多你能写多少啊,65535是不是这个意思,诶怎么回来了。好啊,65535,这里边就是255没错吧,哎,但是我先不给那么大啊,因为没必要就直接给十给十就可以了啊,那么在现在我们都是买S狗L8的版本了,对吧,就你最次也是买S5.7以上的,那5.7以上的一般一个汉字占位一个字节。在这里边一个汉字,注意一个汉字单位一个字节,那如果我说存储十,那单位几个字节,是不是不是存储的是十,十个长度,那是不是就可以装十个汉字啊,没错吧,哎,所以大家记住啊。
14:03
以前老版本的时候,就是低于5.7的时候,是这个一个汉字占为三个字也没有错啊,那如果给十的话,这里面只能存三个汉字左右,对不对?那现在改了一个汉字,就是一个字节啊,就一个长度,所以我这里面给十个长度,代表的是可以写十个汉字,那可以写十个汉字,比如说这里边我不存那么多啊,我就存一个徐枭雄。好,这是不是三个对吧,但是呢,我有占位十个吗?不是我有到十个吗?没有我只是三个长度,那怎么办。1234567,好,我用个竖杠表示代表什么?完事了,这是存的徐枭雄,那如果再来,比如我从了高乐峰,高罗峰是不是己没在位,那也一样,也没占十个长度,也是这么长啊,就是你没存到十个长度,他给你当做十个长度来看看,明白了吗?哎,这就是定长,那电场呢,比如说我存个徐枭雄。直要熊这有有到十个吗?没有,没有的话,你存多长,实际存多长,他就有多长,明白吧,然后接下来呢,比如再来高罗峰。
15:05
是吧,我就直接往后写了,然后呢,比如说再往下孙建奎。孙建。乙是不是每每一个都没到十个,哎,没到十个怎么它就是一直往后写啊,一直往后写,就是这么样的一个格式,明白吧,那这样的话,你看他俩各有利弊,什么利弊呢?我定藏字符串啊,我定藏字符串没存到十个,我会占位十个,这样的话是不是比较浪费空间对吗?浪费空间带有一点,我在查询的时候,你看好了这样的格式,我们一看是不是就很清楚,哎,也就是查询的效率是不是会高一些,而这种变长啊,它是不是节省了空间,对吧?哎,因为他没到十个,它就是占位,占位它实际的实际比如说三个,它就占位三个,对不对,实际五个占位五个,那这种格式的。你看好了,它是节省空间,但是查询效率是不是就低了,哎,我这样的话,我去找一个人是不是就很慢,我要去看,我要去看是不是就很慢呢?哎,这就是他们两个的区别啊,所以大家记住定长和变长的区别到底是什么样的啊,然后这个tiny拔萝卜啊,就是拔萝卜类型,所有带拔萝卜的啊,B lob的都是什么呢?都是二进制的方式存储的文本啊,都是以二进制方式存储的文本,而这个test的就是正常的文本数据啊,就是大数据,大字不串啊,这是咱们的test。
16:31
OK。那么一样,它这里边的说明啊,包括它的最大长度都都有啊都有好了,那我们见识过这个文本,这个字符串以后啊,包括这个枚举啊,这个我不说了,大家知道有,这是枚举类型,这是集合类型,一会儿呢,我去给大家做一下啊,我们设置一下,大家就知道什么样了啊好了,再往下来还有什么呢?还有这个诶。两个差。两个叉诶啊好多了一个,我们给它删掉一个啊好了,那这我给它保存,保存完以后,接下来我们就把这些类型练一下,当然买八里面就这么几个类型呢,不是啊,没有讲完听明白了吗?啊,我们到下一个阶段还会再去学数据库,那就学更高深的一一些东西了啊,我们这个阶段只是对数据库的一个基本应用就可以了,那咱们来看啊,我现在来访问一个数据库,我用这个操作工具来操作了啊,我就不先手敲代码了,一会儿我们在创建时候再手敲来这里边比如说host下面的PHP。
17:31
输入root密码。没有直接进。OK,进来以后咱们来看ED这里边。好像有点小慢是吧。我在这里咱们来看啊,我是不是就可以新建表了,对不对,哎,我可以在这里是新建库,点开它,它这里边是新建表,但是它的速度怎么这么慢呢?哎,OK,你看新建一个数据表,比如说表的名字啊叫什么呢?叫做DEMO。然后呢,这里面有多少个字段,他说有四个字段对吧,哎,那好,那我就四个段,包括我能不能加,我说五个字段,六个字段是不是都行啊,哎,那好执行。
18:07
执行以后你看先是名字,然后类型对吧,或者长度啊,默认啊等等这些东西我们现都不用管的,因为是什么我们也不知道的,对不对,好先看名字啊,比如说我先起两个名字,比如说这个叫做呃,整形的吧,INT1。嗯,然后。二。然后再来一个浮点的,比如这叫float double,我就不演示了啊,De DC。然后再来一个。嗯,我都加一吧,啊加一。加二,然后呢,再来这个str字符串的对吧?字符串的有什么呀,我们刚才看了有一个叉吧,还有str瓦叉啊,STRVRCHR瓦叉啊,然后呢,这里面字段不够,我可以再加两个字段呢,我去找一下你看添加。
19:01
两个中立。是不是就加了两个,哎,加一个什么呢?加一个taste类型,再加一个拔萝卜类型Bo。BD吧,拔萝卜拔萝卜。我看一眼啊。关不关,没关。叫做Bob,没打错,对吧?好,那这个case的一。这个二这里边12OK,我对应去选择类型,你看好了类型,比如说我就选一个吧,是不是最小的对吧,第二个呢,我就选正的了啊,其他的我就不设置了,然后浮点型呢,我们就去选对应的float去。诶,我们这边还有时间,那OK,我再添加一列啊。这添加一个。比如说这个叫做date。然后。TIME1啊,这是时间对吧,TIME2吧啊。诶,咱一个一个从上往下选啊,被选懵了,Float以后decma再来一个decma deccl看到了吗?这里边是不是有长度,哎,长度比如说这里边我告诉他,我说呃,六个长度两位小数,这里边呢,我说八个长度两位小数,注意整形我是不需要去给的,明白吗?整形是不需要去给的啊然后再往下呢,字符这类型对吧?那我们要对应的类型是瓦,不行,我要到。
20:24
来文本的差类型,然后还有瓦差类型,再选一个,那都给它十个长度啊,十个长度看到了只有整形我们不需要给长度值啊,然后test文本的。文本的我们也不用给啊,默认它就是最大的,那我们直接找一个case的类型。文本,这你看有tiny case的就是小小文本对吧,这个标准文本对吧,这个稍微大一些文本,这是最大文本,没错吧,我就用一个taste的就行了啊,然后拔萝卜呢,我们也选一个拔萝卜。也是标准拔萝卜,然后再往后时间呢,就是对应的date类型,我们就选一个date类型时间这里边date对吧,然后这里面还有time,嗯。
21:09
太太在这儿好了。这些我是不是都完事了,然后我们是不是还有集合跟枚举,我也给大家演示一下吧,来添加再添加啊,这里边叫做集。MY。枚举my meur。那找一下set类型。看到了吗?Set,然后枚举呢?En nu OK,好了,你看它编辑这个枚举或S的值,你看到了吧,它有啊,那我直接往这里边就写了123,诶123。四那包括我还可以添加值对吧,我就不添加了啊就这四个OK,执行1234枚举的话呢,来编辑枚举,那比如说。
22:03
咱就给。慢。Woman。词性啊,是不是就有了,哎,这两个空的我就不要删掉就行了。哎,然后呢。好了,那这些基本上我们都已经完事了,对吧,完事以后我现在点击保存。好了,他的名字,这个是个美保留的关键字,INT1。它是本身保留的关键字来卖。再加一个。保存。OK,保存成功,现在我是不是有这么一个表了,接下来干嘛,你看我往里面插入数据是什么样的来插入。啊,你看先是整形的对吧,我这里边给他一个值,比如说给他个十,这没问题对吧,然后第二个,呃,这是in的对吧?T in我们支持的最小值是多少来着,255啊,是不是零到255。
23:02
看一眼来。是不是零到二,呃五是这啊,是不是零零到255,然后127负的128~127对吧,咱们来看我能不能存进去255这个数对吧?因为他输了最大值是可以支持二五二百五十五就给了255,他说什么?请输入一个小于或等于127的值,看到了吗?也就是说我们默认只要给类型,你看默认走的是哪个,默认走的是不是这个。对不对,哎,就是默认情况下,它就是带符号了,所以这里边它才给的什么,给的是TAN4看了吗?因为四位最小的值负的127看到了吗?是不是符合要求,那也就是说,那我给负的126呢,来走你。127126的。199。你看他说什么?请输入一个大于或等于负128的值,看到了吗?哎,那好,那大于等于来我这块来个负的。幺二。
24:01
九。也不行吧,我必须是什么127。看懂了吗?哎,128行不行,来128您说了大于或等于是不是都行,哎,整形这里边比如我就随便给一个100了啊,那大家看到了,默认情况下是不是走的是有符号呗,哎,然后浮点数呢,这里边比如说我3.3333333。33333我给了很多,看到了吗?哎,包括底C这里边你看也一样,你看浮点数的这个框是不是都很大,而底C的框跟其他是不是正常啊,对我也一样,3.33333333333我也不知道多大,但是我们给的是八逗号二,这个是六逗号二什么意思?六个长度保留两个小数,八个长度保留两个小数。看到了吗?哎,这八个长度最大是多少?就是八个数,知道吧,只能有八个数,然后保留两位小数。明白什么意思吧,哎,就最后保留两位小数,就这个意思啊,所以我给的这些,现在我们开始一会儿我们看它存完之后大概是是什么样的啊,然后呢,这个字符串。
25:01
是不是说了,我说能存十个对吧,那我们就存一个十,看能不是啊,我是第十。V,这是几个五个对吗?来CTRLCCTRLV两次对吧?这里边一样,CTRLCCTRLV都给了十,然后case是不是就是一个文本啊,多行文本输入域相当于啊,就是我们纯文章的时候,那我们就可以用它,对吧?然后呢,再往后你看拔萝卜,你看是不是一个二进制啊,我没有办法输入,我只能去选择一个文件对吧,比如选择一个图片,它最终会以二级的方式帮我存储进来,然后时间呢,你看这里面我可以直接在这选选一个时间对吧,然后日期也一样,我可以在这里面十分秒,这几个我就不选了,选了就选了吧,好。是不是也过来了,然后过来sat是不是集合,我可以选择多个。看到了吗?但是多个你在选择的时候,你得摁那个alt键啊,然后枚举我选一个看到了吗?然后一点执行,是不是插入数据呢?好了,插入完以后,这个时候咱们来看,我来点击浏览的时候,你看负的128是不是第一个数据进来了,然后130.33看到了吗?我刚才给了很多三,最后是不是只保留两位啊,哎,然后这里面内容你看我是第十位,我是第十位插入进来了,这个马莎类型我是第十位,我是第插进来了,然后case的文本类型也插入这么多内容,但是拔萝卜类型你看看不到了,拔萝卜的类型里边一点开,它就让你直接下载,这是一个图片了,明白吧。
26:27
哎,告诉你多大,然后再往后你看时间对吧,日期时间,然后以及我刚才的枚举,这是赛对吧,这是枚举。看到了吗?哎,这就是咱们的这个数据类型,我给这个字段定义了什么类型以后,那么未来也就对应了这个字段将会去存储什么样的内容,所以我们再去做的时候,为什么要去考虑我们未来这个字段都要存什么东西啊?因为只有考虑好这个东西,我们才知道这个数据类型放什么更合适。对不对。哎,那OK,那数据类型现在我们知道了,那么咱们再来看,比如说就像刚才这个负128,我不想让它走负数,不仅就说不想让它变成无符号了,对不对。
27:10
哎,啊,不对,有符号了啊,我想让它变成什么,变成无符号了怎么办呢?我也可以进行更改,比如说我等到这结构啊,看好了,这里面默认是不是就相当于有符号了,哎,我给它修改一下,注意我只改这一个了啊,给它变成什么呢?变成无符号了。UN sig ne啊也这是不是对这个列的约束啊,哎,告诉它变成无符号,好我保存,保存完以后,现在咱们来看啊,我再往里面插入一条数据,这个时候我说插入一个负一。走,你告诉什么?请输入一个大于或等于零的值,看到了吗?哎,我来个255,走你你看这时候就行了,但如果说我256。是不是告诉请输入一个小于等于255的值,看到了吧?哎,只要我加上这个以后,是不是就变成了无符号位了,哎,无符号位这个时候那你就可以随便输入了,明白吧,我最大值是不过五。
28:03
这就是咱们的这个数据类型。这是咱们数据类型好了,那数据类型我们了解完以后,那接下来我们再去了解什么呢?了解它的这些关键字的约束啊,在这里边我们说了数据类型有了之后,接下来什么就是列的完整性约束了,对吧,那OK,在这里边。字段约束啊,那么第一个叫做UN sig ne,刚才我们也看到了啊,咱们这个约束就咱也说了,就是有的时候咱们只是定义字段的数据类型还是不够,对不对,而且呢,还要设置一些其他的这些附加属性,比如说像刚才我们做那个表格,表格呢。你看还有什么附加属性啊,比如说这个表格,其实大家知道这个是什么编号对不对,编号是不是都自增的,我往那一拽诶。往下一拽,你看二加四五六七八九十是不是都自增的,哎,包括这些都属于约束,我都可以给他设置明白吧,哎,那OK。那么咱们来看都在这个约束里边啊,那么第一个usi它是干嘛的,它就是用来设置无符号的啊设置。
29:10
无符号设置无符号啊,说白了这个属性就是用来设置数值整形的,而且只能是数值整形用啊,表示什么意思呢?不允许数据列出现负数,如果不需要向某个字段中插入负数,咱们就可以使用这个属性。知道吧,哎,那这个时候这个字段的存储长度会怎么样?会增加一倍,会加上一倍啊,就像刚才我们存的,我们默认情况下是负的,负的128到正的127是不是这样的,哎,我T的默认情况下是不是这样的,而我使用了它以后,是不是就可以使用的,可以存储少可以存储零到255了。啊,这就是咱们这个。的作用啊,另外还有一个叫Z。接啊。他是什么意思呢?
30:00
它是补零啊,这个属性也一样,也只能用于什么数值整形啊,我这块都写上啊叫做。只能。用于数值。整形这个也一样啊,只能用于数值整形啊,它表示什么意思呢?就是在数值之前自动用零补充。位数。啊,自动用零补充位数。不能说位数,应该是不足的位数啊,叫做不足的位数啊,什么意思呢?是这个意思,你比如说像刚才我们看到这里边是不是tiny in后面加了一个四对吗?哎,如果我把这个字段设置它以后,那么正常,比如说我往里面存了一个十对吧,或者存一个一也行。比如说我除了一个一,那实际上我这个一够四位吗?是吧,不够,那好,前面会加三个零带一个一这样的一个输出,明白了吧,哎,就是开始往前面补前到零的啊,往前面补前到零的好,然后再往下来还有哪些约束呢?一个叫做。
31:06
凹凸。AU to auto two-in auto-inment的这些约束也一样啊,我们应该大写UN。然后这个叫做ZE负I,然后这个呢。Auto to increment是不是自增啊,对吧,哎,A。Auto two-int。Toment men OK,没错啊,他也一样,干嘛设置这个字段自动增量啊,设置字段。的自动。增量属性啊也一样是什么呀,数值类型的啊,只能用于设置数值类型啊。好,那么这个啊,它怎么呢?每一个,比如说像刚才我们这个表格里边,你只要增加一行数据,它就会自动加一个,这个数据会自动加一个,对吧?啊不不从这开始啊,比如现在20条20条数据了,我现在我又增加了一条数据,诶又增加一条数据,那么只要我加了一条数据,它这个下,它这个字段就会自动加一,就变成21,就是这个意思,对吧,自动增量的啊那OK。
32:23
那么自动增量这里边啊,需要去记住的什么呢。它这里面不,你只要设置增增量了。要跟我下一个属性,它就不需要了,下一个属性我要说的什么呢?叫做嗯,Nu和not nu nu是为空,Not nu是不是不为空啊,哎,只要我设置增量了,我就没有必要去设置not nu了,因为它一定不为空,它会自己往里面填写内容啊,我们正常情况下默认为什么默认为那也就是。也就是没有在这个子字段中插入值,如果插入指定脑纳,那么就必须在这个字段中插入对应的值啊,这是这样一个什么为空,一个是不为空啊。
33:01
叫做。默认。为nu对吧,G。没有在此字段插入值啊,那么如果指定了not,那啊,只要是指定not not,则必须在此字段插入值啊。则。必须。在尺字段插入指啊,OK,这就是none跟not none,那么大家记住,只要我字段设置了toment,我就没有必要去设置not now,因为它一定不会为空了啊,然后再往下还有什么呢?还有一个default deft。给放了它是干嘛呢?是来设置一个默认值的啊,通过这个值属性。来指定一个默认值,一个默认值啊,如果没有在此列前添加这个值,那么默认值就是默认添加值,如果在就是比如说啊,我们在创建的时候,比如像这里边。
34:10
呃。这个不好啊,比如说这个啊。我在这里边默认的时候,我要都是女士优先对吧,所以你没有在这个列加值的时候,它就是这个值,比如说女士优先我都设为零嘛,对吧,你要没设置列值,这个值里就全都是零,对吧,如果你设置值就用你设置了,就是这个意思,这就是我们的默认值啊,那么一会儿我也会给大家演示一下来,咱直接在这演示吧,这里面改一下。呃,我们一样找到这个DEMO。取消。确定。咱们来看啊,看它的结构,我们随便找一个给它一个默认值,比如说这个tiny tiny in,呃,T tin2啊,这个我给它修改。修改以后呢,干嘛呢,我给他一个默认值,比如说呃,属性在这里规则这是字段,新增字段。
35:02
空诶。啊,这呢,默认。是定义定义一个什么呢?比如说我定义一个五吧,注意啊,默认是不是为五啊来保存。好了,保存完以后,你看是不是not none不为空,然后DEFAULT5是不是默认为五,好,现在我来插入数据,注意你看好了,注意我一点插入数据,这里面是不是就有个默认值了,哎,默认为五,如果我插入了就用我插入,如果没插入,它默认就是五,就是这个意思。啊,这是咱们的默认值啊,OK,默认值知道以后我们还要有一个东西叫做什么呢?叫做主键约束。组建约束。叫做主。借。约束啊,组件约束用的关键字叫做prime prime prime k啊,而且这个组件大家记住啊,每张数据表,每张数据表中啊,只能存在一个。
36:04
主键啊,组件的作用干嘛呢?组件为了保证记录的唯一性。的唯一性,而且组件自动为not呢,也就是说你只要设置组件,它就不可能为空了,对吧?而且一般情况下,我们凹凸杠INC REC re ment必须。配合。和和谁和这P必须跟这个组干嘛一起使用。嗯。一起使用,也就是说这个字段你如果设置为自增的话,如果你设置为自增,这是不是自增对吧,你看设置自动增量,如果这个字段你设置自增,那就必须设置为组件。啊,但如果你给他设置组件,你不一定非要设置自增,明白吧,它是相反的啊,必须一起使用啊,但是但是如果设置为。组建啊可以。
37:01
可。但设置组,但是设置为组件不一定。非要设置自增。执政,哎,所以大家记住啊。只要你设置自增,那就必须要有设置组件,但是你要给这个字段设置了主键,你可以不一定设置自增,明白我说是什么意思吧,哎,那OK,那这个这个组件啊,我再给大家解释一下什么意思,就好比我们看一本书。看一本书,书里面会有什么呢?会有一个目录,你再去找某一个知识点的时候,是不是可以通过目录快速定位到某一页中这个知识点,对吧?这个组件就相当于这个目录,所以一个表中只能有一个组件,你想啊,你一本书上是不是也只有一个目录,你不可能目录创建很多,对吧?如果你把目录创建很多,那好,你这个书这个厚度是不是也会增高啊,所以组件创建多了会产生数据的冗余啊,所以大家记住,一个表中一定要有一张,有一个组件就够了啊,那OK。
38:00
这就是目前我们需要去了解的字段的约束,那么有了这些,我们就可以进行一个表的创建了啊,可以执行一个表的创建了,好。那咱们来看啊,那么我们要想创建表,那咱们现在已经知道这些了,对不对,那OK,这些东西我告诉你这些东西很重要啊,这些东西。字段的约束大家一定要记住,因为我们在创建表的时候会常用啊,但是在创建表之前呢,我们肯定要分析这个表,注意我们要比如说我们创建会员表,那好,我们先分析会员表里面都要有哪些字段,对吧,然后给他起这段对应的名字,分析完名字以后我们要干嘛,我们要看他未来存什么样的数据,那么找出对应的数据类型,然后再来干嘛,就是对它的这个约束啊,它字段的这些约束都需要有哪些的约束啊,这么样我们才能去创建这个数据表啊,好了,那我们这节课主要去了解字段的约束,以及咱们的数据类型啊,那OK,这节课我们到这里。
我来说两句