00:00
那接着啊,咱们来看一下叫文本字符串的类型,哎,文本字符串啊,其实主要呢,就是我们说的这个字符串类型了,像咱们在这个项目当中啊,这个字符串的数据呢,还是比较多的,你比如说这个姓名啊,家庭住址啊是吧,包括呢,我们关于这个,呃,比如说一个新闻的评论呀等等,那么这样的话呢,都算是这个文本啊,那对应呢,其实就也可以列成就是字符串了啊好,那么这样的一些数据呢,在存储的话呢,我们就需要用到这样的一些类型,OK,来我们看一下都有哪些类型呢。那比较短的这个数据类型的话呢,就是存储这个数据的话呢,我们涉及到一个,一个呢叫char,一个呢叫做work char,那比如说呢,我们可以去存储像姓名啊这样的这个数据信息啊,Char what char,呃,What char呢,这个VR其实就是variable的意思啊,我们解成就是变量啊,这个呢,你可以列解成呢,就是呃,固定长度的叫差啊,就是character那个字符的那个前四个字母,对吧。这个work差的话呢,就是可变长度的这个字符,OK,然后这块呢,有它的一个长度的范围,包括呢,它占用的一个空间,那这里边儿呢,我们发现呢,在定义差和war差的时候呢,我们可以指定它的一个宽度,对吧。
01:09
好,那么具体的话呢,我们一会儿再说,然后接下来的话呢,我们会看到有四个吧。这个四个呢,都是跟这个test相关的,这个test的话呢,翻译过来就是文本的意思,那这个test的话呢,我们其实主要存储的话呢,就是一些文本数据,比如说我们一篇文章,或者我们一段话等等,像这样的场景呢,我们通常呢,选择的都是这种test啊,相关的这样的几个类型,那么他们这块呢,不需要预先定义它的一个这个这个长度了,或者叫宽度了,那这块呢,根据你到底存储这个文本的长短,我们决定了它的这个字节数。啊,对吧,那上面这块呢,我们这个M呢,你指定好以后呢,相对应的这个占用的空间大小呢,就做了一个确定是吧,在这样个场景,好,那么下面这块呢,还有一个呢叫呃,我们叫innu或者叫an都可以叫枚举类型的,这个呢叫做set类型,是集合类型,那么也可以把这两个呢,就放在一起,也可以呢单拿出来像我这个呃,就是更多的人呢,会把这俩呢也都认为是叫文本字符串了啊,因为呢,这个A和这个set里边我们可以放多个字符串,那中间用逗号呢去连接起来啊,所以也理解成是这个文本字符串了,但是呢,其实跟上面这块呢,还算有点区别,上面就单独这个计算一个值的一个值的。
02:21
而我们这个呢,是可以取像set可以取多个值,而这个呢是多选一的,嗯,稍微有点区别,所以我这儿呢,把这个an和这个set呢,我就单独的拿出来了啊,这个大家能理解这个精神就可以了。嗯,OK,那么接下来的话呢,我们就分别呢,做一个介绍啊,首先呢,我们来看一看这个差和这个workar啊这两个这个类型。这两个类型的话呢,呃,刚才呢,我们也提到了一下,它哥俩的主要区别,这个差呢叫固定长度,比如说我们这个位置呢,写的是个十,那我们呢,去这个往这里边儿存这个字符的时候呢,你要是不够这个十位,它也会给你补齐十位啊,总之呢,你写了十,它就一共是占这个十个位。那这就我们所说的叫固定长度了,而这个叫可变长度呢,比如我们这个M呢,写的是十,那你要是存在一个哈呢,是不是只占了五个,那剩下五个呢,就没有没有用,那下面我们实际长度呢,就只有五,哎是有这么个区别,你看这块呢,它占用的这个存储空间。
03:15
能理解是吧,哎,那为什么还加个一呢,因为他得记录一下,你到底这十个里边占了几个呀,所以他用一个字节呢,去做了一个记录,OK。啊,这就相当于额外的他得用一个空间啊行,那么关于这个char类型呢,首先咱们看一下。这个呢是一个M表示呢,你这个需要呢,存储几个字符是吧?哎,然后呢,这个默认的话呢,就是一个字符了,那如果说你在存储的时候呢,这个我们指定的刚才说的是十,你要说呃添加的这个字符比这个十个要少的话呢,它在这个右边呢右侧呃拿这个空格呢去做填充,但是你要检索的时候呢,你是看不到这个空格的。啊,这个你是看不到这个空格的,这个大家注意一下,一会儿咱们也说一下,然后接下来的话呢,就是我们这个差类型这个字段呢,呃,声明的字段长度即为差类型字段所占的存储空间的这个字节数啊,因为它是固定长度的嘛。
04:05
理解是吧,好,下边呢,我们来看一看这个具体的例子,首先呢,我们这呢,先来做一个说明啊,这个是咱们该第七个了是吧,嗯,这呢是我们叫文本。呃,七点,呃,7.1吧,7.1吧,这样我们说啊,现在我们来说一下这个具体的这个叉类型,那它的一个情况。诶过来,呃这块呢,我们首先啊CTRLC。啊粘过来这呢,就造一个表,这个比较简单,那这个位置呢,我没有指定它具体的长度,这个呢指明了,首先呢,我们来一个DEA啊,Test一个这个叉啊那我们看一看,如果呢,没有指明它的这个宽度的话呢,它是什么样子的,这个我是不是还没有创建呢?啊选中以后呢,先做一个执行。哎,然后然后呢,我们DSA一下,你会发现呢,当我们没有指明的话呢,默认它是不是只能存一个字符是吧?哎,那来我们这块呢,去insert啊into一下,我们叫test。啊,这个还差。
05:01
哎,一是吧,哎,我们这呢,先针对这个C1,咱们来进行一个填充啊,比如这呢填个小A。啊,这个呢,应该是没有问题的,对吧,好执行啊可以了。Select星from一下,哎1OK。好,选中。哎,直行,哎,你看这个小A呢就出来了,好,然后接着的话呢,我们再去啊,我写一个这个叫AB呢,行不行呢,来我们选中了去执行这块呢,说你这个太长了啊,因为我们这时候呢,是不是只允许你添加一个字符啊。啊,就太长了啊,这个注意一下好,那么接下来我们再去啊CTRLC我们这块换成这个C2。C2的话呢,这块你看是五个吧,来我们这块呢,选中做一个执行。没有问题,那它呢是成功的,好,那我们CTRLC一下,哎,我这块呢,换成是一个,它是写了一个五吗?我写一个hello吧,这个可不可以啊。啊,执行,那是不是也可以好,再接着啊,这个呢,我们写一个,嗯,比如说这个。嗯。上硅谷的这个上吧,哎,我们写个它那这块呢,我们选中啊执行一下,那是不是也成功了,好然后我们再CTRLC。
06:07
啊,这个我们写一个,比如叫硅谷,诶这个呢,可不可以呢,来我们选中了做一个执行啊也可以是吧?哎,上硅谷。哎,这我们再粘过来。看上硅谷啊,教育啊这块呢,我们选中呢,再去做一个执行。哎,你看也可以了,此时呢,我们选中来再来一个,哎,你看这块呢,数据呢,是不是都添加成功了。啊,12345是吧,好,我们再CTRLC一下。哎,上硅谷it教育。啊,这边又多了俩,哎,选中了再执行,哎,这时候就挂了啊,因为我们是不是超过五个这个字符是这意思吧,哎,这样就不行了。好,这个呢,应该大家能够去理解啊,然后的话呢,我们看一下什么呢,咱们就以嗯嗯像像这块呢,看到的这个为例吧,咱们呃这啊得得以这个为例了,咱们现在呢,好还不行,得以这个来说哈,咱们现在的话呢,是不是说呃指定的这个长度是五了是吧?那是五的话呢,你只添加了一个AB,那么相当于呢,我们空出来三个,三个的话呢,就是我们刚才看到了他用这个空格呢去做了填充,那我们能够看到这个所谓的空格吗?来我们试一下。
07:15
哎,我们这么着啊,Select。哎,刚才咱们这块呢,去演示的时候呢,实际上大家是看不出来的是吧,那怎么办呢?嗯,我就用一个con吧,咱们是用这个C2这个字段,然后逗号一下啊,加上一对这个单引号,我们用这样,哎这个符号看大家能明白什么意思吧。哎,差一是吧,就是说呢,如果我们这个像哎这个位置吧。这个AB呢,要后边呢,有三个空格的话呢,我们要用这个星,那这个星的话呢,跟这个AB之间会有一定的间隔,是这意思吧,那我们这块呢,选中包括呢下边这个上和这个硅谷也是一样的啊。呃,C2哈,好来我们选中了去做执行,大家看你会发现呢,这个AB也好,上也好,硅谷也好,后边呢,直接就是这个星了,哎,没有这个空格呢,让我们能够看出来的是这意思吧,哎,这就相当于他说的就是在检索的时候呢,他会把这个空格呢就给我们,呃,这个相当于去掉了。
08:12
啊哎,你要这样说的话呢,大家你看这样的一个有意思的事儿,我呢再去inser into一下啊,我叫test看看啊是不是挺有意思的。一哎,我这儿还是针对这个C2吧,然后咱们value。哎,这么着啊,呃,我怎么写呢,我这样写,我写一个AB吧,然后空格空格好那按正常来讲的话呢,相当于咱们这是不是有四个呀,是吧,四个字符好那我们首先呢这块做一个这个添加啊添加完以后的话呢,哎,我们这样啊select啊我来一个呢叫叉,呃length就咱们前面讲过的,针对这个C2字段,我们看下它这个字符的一个个数,From一下我们这个test。哎,这个叉1OK,好来我们选中了去执行,那这个呢,五呢,就是咱们说的上硅谷教育嘛,哎,所以它是五,你看这这是不是一个二啊。
09:06
哎,有点意思,这个二的话呢,相当于他只记录我们A和B这个空格的话呢,他都给我们去了啊,为什么他敢去呢,就是他认为呢,你这个呢,是相当于就跟我们这个AB一样,他认为你是后边你自己补的那几,就是它自动给你补的空格了啊,你自己写的这个他都给你认为是这个自动补的空格了啊,所以说你看都过分到这个程度是吧?哎,这个大家哎有哎这个关注一下这个情况,所以你这块呢,你想让他看到空格是不可能的了。好,那这块呢,咱们就把这个差呢,诶相当于呢,给大家做了一个说明啊,你知道呢,它是这个,呃,固定长度的啊,这个不管你填几个,它总共的长度你指明是几,那这个占用的空间呢,就是几。啊,就是几好,接下来的话呢,我们看一下这个叫诶work这个类型。这个work串这类型呢,它首先呢,注意在我们定义的时候呢,必须要把这个M呢得写上,你不写就报错了,那这呢就有一个这个例子啊CTRLC下。
10:00
来,回过来。啊,这个咱们是这个。哎,7.2是吧。这个是咱们这个work这个类型。好,我们放到这,哎,为什么我们这块呢,不写这个宽度啊,或者指明它这个长度就报错了呢,因为它是一个叫可变,是不是可变长度的,你到底这个呢,Water差最多能存几个呀,你得告诉我啊,不像咱们下边讲那个test呢,它是不用预先定义了,而这个呢是不行的。啊,这个看他就报错了啊行,这是我们说的这个必须要指明一下这个长度是多少。然后呢,当我们指明的时候呢,比如说大家你看啊,MYSQL4.0说叫以下的版本,咱这写了个20,它指的是什么呢?在4.0以下版本呢,是20个字节的意思,那比如我们要放汉字的话呢,最多呢能放六个汉字,那我们说一个汉字呢,UTF8啊UF8MB3当中是吧?哎,一个汉字呢占三个字节,那你这块呢,写的20只能是最多存六个汉字了啊,那么在5.0以上啊,这个大家其实咱们现在用的都是5.0以上的,这个时候呢,我们写了个20,就是指的20个字符。
11:06
那你像咱们这个差呢,是不是也一样啊,我们刚才呢,在演示的时候呢,这个咱写的是五,是不是就是五个字啊,你看我写这个汉字的时候呢,是不是就同样的道理啊,这就是12345个字符啊,能够存进去的。啊,这个大家注意一下啊行,那这个呢,说完之后的话呢,咱们就会有这么个事儿,大家你会发现呢,咱这块关于work差啊,你看这呢,写了一个东西叫它的一个长度范围,是不是写的叫65535啊。哎,这个叫杨IG呢,你看这个M叫6535,好像我们这个M呢,可以写成六五五三五一样,那你试一下。看着啊,我。啊,这个table啊test what,哎,我我写个二吧。好在这里边的话,比如我们还是写个name,我这写个叫哎我叉,哎怎么着啊,我写个65535,那这块呢,因为是有等号的嘛,我就这样写了,哎写完以后呢,我们就直行走,你看又报错了。
12:04
啊,大家能看到是吧,这个信息呢,说你这个column这个L啊,它太长了啊,对于这个name字段最大值呢,应该是21845,诶然们起21845。啊,为什么用它呢?啊,你看一下我们计算器,你稍微算一下你就知道了。好看这啊,这个是不是21845啊,哎,二幺。845我们乘以一个几啊三是吧,我们看一下是不是叫6535,哎,能理解的意思了,相当于呢,就是我们一个汉字呢,认为占三个字几啊,你这个呢,得除一个三啊,所以说呢,这个位置呢,看似是它,其实你不能写这么多啊,这个注意一下就是我们这个错误的信息。好,那这个清楚以后呢,我们下边呢,是不是就可以建立创建一个正常的一个,呃,相当一个war差了是吧,然后那边比如我们指定是个五啊,我们里边存储数据啊,这个具体的情况呢,大家能明白啊,CTRLC一下哎,我们粘过来。看这个现在呢,我们创建了一个叫work hard,这个长度呢,我这写的是一个五,那1I呢,就我们最多呢,是不是存五个字符啊哎,五个字符行,那这时候呢,你看我们如果创建好以后啊,咱们先走一下。
13:14
那接着往里边写,商务谷也好,商务教育也好,是不是这块都没有任何问题啊?啊都是可以的,但是当我们去放的这个显然是不是超过五个字符了啊就不行是吧?哎,我们选择去执行啊,这就错误了,好那么针对于呢,咱们呃写的这个来讲,它跟上面那个差有什么区别呢?就是我们这个数据在存的时候,它底层就是用了三个字符啊,你要说一个字符按三个字节来讲,它就一共呢,是占了九个这个。呃,字节的一个空间,而我们上边这个呢,咱用的是这个差啊,我写的是个五是吧,哎,表示的也是五个字符,那如果说咱们存的是这个啊,比如叫硅谷的话呢,呃,这个时候呢,啊,你要是用water差去存,相当于是是两个字符乘以一个字符,按三个字节,是不是占了六个字节,而是你要用char来存的话呢,哎,那叉呢,因为哎这是它不管你这块存了几个了啊,然后呢,我们就是呃占五个嘛。
14:08
哎,就是跟这个五是跟它对应的啊,然后呢,一个是三个,然后这块呢,是不是就相当于15个了,就成这个意思了是吧,当然这个呢,具体是不是15呢,还是有点变数的,因为像我们这样的这个情况啊,像ABC的话呢,它在底层呢,就存就按着一个字节来存的。啊,就这一说呢,就说多了啊,就是相当于呢,这块我们看到的是两个,它实际上存储空间呢,比这两个占用的那六个字节呢,是要多的啊,它会有一定的空间的浪费是吧。行,呃,这块呢,是我们说的这个情况啊,这个大家了解了,然后这块呢,说完之后呢,我们来看一看,咱们在这个开发当中,大家应该选的是char呢,还是应该选择what char呢。大家有没有一些想法?啊,主要特点呢,就是这哥们固定长度的这个呢,是可变长度的是吧?啊那固定长度就意味着如果我们指定它这个长度是十,里边你要存的这个数据呢,都比这个十要短,实际上会浪费一些空间是吧,而这个waterta的话呢,根据你实际存储的这个,我们指定的是十,实际存储的少,那这个空间呢,就按你实际存储的这个再加个一。
15:13
注意还得有个加一的这个情况啊,那整体来看的话呢,它会要节省一些空间。啊,那么这是我们说这个从空间上来讲,从时间上来讲的话呢,我们说这个差呢,它这个效率要高一些啊,因为检索的时候,它是一个固定长度的这个可变长度,每次还得去计算一下长度是多少是吧?哎,这个效率要稍微的低一些,那适合场景呢,就是诶叉呢,就是存储量不大啊,速度要求比较高的时候呢,建议我们用叉。啊,非差的情况呢,啊,就是不是非这种情况呢,我们建议呢,大家用这个water差。具体来讲来,咱们大家看一下,具体来讲的话呢,这块呢,情况一说,如果是存储这个很短的信息,比如说像这个门牌号那种啊,比较短的信息呢,建议呢,咱们就用这个呃叉就行了。啊,因为你想想这个本身协议就比较短了,如果我们要是用我叉的话呢,它呢,还得额外的再用一个字节是存储一下,你这个到底可变的长度是多少,本来就仨,你再空出来一个是再存储一下这个,哎,占据的这个长度就有点浪费了。
16:14
是吧,有点浪费了啊,就比如说呢,大家呃,你买一个汽车吧,这个汽车呢,比如花了这个10万块钱,然后呢,办这个手续啊等等的这块呢,花了100块钱,你觉得呢,其实挺便宜的嘛,啊10万块钱这个花手续花了100块钱,这都啊好便宜啊,你可能会这样说,但是呢,你要现在呢出去去。啊,比如说我们买给孩子买一辆小自行车吧,这个小自行车的话呢,比如说就花了200块钱啊,可能有点便宜了是吧,那这200块钱呢,他收你100块钱手续费,这个你是不是就不干了啊,总共才200块钱,然后呢,就收我50%的这个这个这个售价那你就接受不了了啊,这就跟这个一个道理啊,本身这个信息量就很短了,然后呢,你现在还在分出来一个呢,用于存储这个这个这个到底存了几个用窝差的话,那得不偿失啊,我就不愿意干了。
17:02
啊,这是我们就建议你用这个叉啊,然后呢,第二个呢,固定长度的。那长度就固定的了,那这时候呢,那你当然是不是用这个叉就比较合适了,比如这里边提到用UUID呢,我们去作为主键啊,这个存储数据啊,至于说什么叫主件啊,至于说呢,UID呢,存主件到底合不合适好不好有什么问题,这个咱们后话呢再讲。哎,后话再讲啊啊,总之呢,这块提到的例子就是固定长度的,我们用差呢会更合适一些,对吧?啊,你这个workar呢就没必要了啊,然后第三种情况呢,就是十分频繁的去改变这个column。比如我们这时候呢,你这个列的这个值呢,假设啊,我们要用窝差的话呢,它占了这么长啊,一会儿呢,又改了一改短了啊,这时候底层空间呢,还给你重新计算啊,一会儿又长了啊,一会又短了啊,来回这样去改,是不是额外的计算呢?还得需要这个时间吧,那建议的话呢,你要是来回频繁的去改这个字段啊,长度还变化挺大的话呢,建议呢,你就固定长度得了。啊,这个还是推荐用这个叉是吧。
18:01
咱们说了这么多种情况呢,好像说呢,这个差呢比work差呢要靠谱一些,是这意思吧,哎,虽然说它的空间上会有些浪费,但是呢,我们还是看重它的一些优点啊,那么具体的话呢,实际上呢,说了这三个点,这是作为一些我们这个通常的这种判别标准呢去理解的,那么具体来说的话呢,我们还得需要跟一个叫存储引擎的一个结构呢去对接一下。哎,这个存储引擎呢,咱们主要呢,是放在咱们这个,呃,下篇当中啊,其中的一个章节呢,咱们重点给大家讲的啊,这呢叫存储引擎属于咱们整个这个逻辑架构当中的一个重要的部分,那么存储引擎这块呢,最重要的存储引擎。呃,这个重要的话呢,主要是看我们MYSQ到底用的是谁是吧,在5.5以后呢,用的都是这个in度DB了啊,5.5之前呢,诶主要用的是这个MY,那还有其中的一些呃,很多的存储引擎啊,哎,其中还有一个存储引擎,像这个memory啊,我们也了解一下。啊,也了解一下啊,现在内存的这种存储引擎对吧,那么好了,你知道呢,咱们现在最重要的是谁了啊是不是这个印度DB是吧?好,那么历史当中呢,还有这个my Sam,这个my Sam呢,如果你要是用这个存储引擎,建议呢,咱们就用这个叉了。
19:13
啊建议用这个叉,为啥呢?啊,因为呢,我们用叉的话呢,整个长度就固定了,相当于呢,使得整个表呢就静态化了啊,不用来回的去变化它的长度,呃,使得这个检索呢就会更快啊空间换时间。那么memory的话呢,呃,它这里边儿呢,就是如果你要是呃定义一个字段是差或者是what差,不管你定义的是什么,它都按成差来处理啊,那还说啥了,那就直接就用差呗。对吧,哎,是这个好,那么验中DB呢,跟他们不一样了。哎,Intro DB当中啊,咱们推荐的使用握叉。啊,说了这么多啊,最后呢一句话呢,就翻盘了是吧?呃,In度DB当中建议大家用过叉,为什么呀,这呢就涉及到咱们一个事儿,这个印度DB呢,存储引擎底层在这个设计的时候呢,我们这个内部的行存储格式并没有区分固定长度和可变长度的列。
20:02
啊,并没有去做这个区分,所以使得呢,我们主要这个性能影响是啥呢?就是数据行使用的这个存储的总量。啊,存储的总量就这块,大家可能现在看啊,你看不太懂啊,咱们在这个下篇当中呢,有一个叫indo DB的,呃,数据存储结构到时候呢,我们再展开呢,给大家去说啊,你就现在呢先听一下就行,那既然的话呢,影响的是这个存储总量了,那你想想你要是固定长度的多少,我们说它是不是会浪费一些空间呀,那你这个相比于我们这个water差来讲,它是不是就会节省一些空间,所以呢,我们在英度DB当中啊,咱们就推荐呢,大家可以用这个water要好一点。那使得呢,我们这个一方面节省空间,再呢呢,我们去加载数据的时候呢,磁盘IO的这个情况会少一些,那自然而然这个效率呢,就会检索的时候啊,效率会更高一些。啊,这个说的有点儿,呃,这个多了这块大家体会一下。啊,体会一下,那如果说呢,一方面我们开发中你到底怎么选另外一个呢?面试中如果问到了说诶我们这一个字段差跟what差,大家该怎么选,你有什么样的判比标准,哎,所以大家呢,你谈到这个的话呢,这是一个维度的啊另外的话呢,我们还可以是不是从这个存储引擎的角度去看,是吧。
21:13
OK啊,那这块呢,主要呢,大家把这个workar呢,在印度DV当中的这个重要地位呢抛出来,这个呢,你看就比较高级了是吧,比较高级了。好,那接下来的话呢,我们看一看这个叫test这个类型。诶,咱们看一下这个叫test这个类型,这个类型的话呢,它是用来保存这个文本啊这个数据的,具体呢,有四种t test啊test啊,Medium test和这个叫long test。呃,上边这块已经有叉跟窝叉了,这个菜干啥用的?呃,这个呢,其实大家可以理解成是我们存储那个文本数据的。啊,比如像我们说的那个评论,评论的情况呀,然后还有呢,比如一段文章啊等等的,可以用这个test相关,根据呢,你实际这个文本的大小,我们去选择合适的这个具体的叫叉叉叉这个test了。OK吧啊。
22:00
嗯,然后这个呢,实际存储的长度呢,是不确定的啊,嗯,那另外呢,这块提到说不允许用这个T类型做这个主键,就是因为它这个长度不确定啊,就不合适了,那你可以去用这个差和这个work差啊这个字段。嗯,行。那么这里边儿的话呢,这个实际的长度。啊,是不是就也也影响了你到底占用的这个存储空间了啊,这个应该能理解。然后再往下的话呢,就是我们这个具体的这个测试,哎,我们这呢是创建了一个表,然后呢是一个台词类型,往里边呢去添加数据,哎,我们看一下啊CTRLC。好,这个呢是我们71.2,咱们来一个三吧,哎,这个是关于这个哎,Test啊这个类型的,实际上呢,是具体的有四个对吧。好,那这种我们就以其中一个呢来举例子啊执行一下。好,创建了一个这个表,然后呢,我们往里边呢,是不是添加具体的数据了,哎,然后我们粘过来。哎,看一下看一下,呃,这个时候呢,哎,我们去添加的数据叫艾特硅谷,你看呃这个呢,我们又指就也不用指明它具体的长度了,你就存就完了,嗯,一个两个三个,我这有三个空格啊,我们选中了做一个执行。
23:09
三个空格加上我们前面这块呢,是不是有七个啊,七个这个算是叫什么字符是吧,加上你这三个,哎,你看我们这时候呢,用这个charl来表示的时候呢,哎,走一下哎,它显示的是十个。跟咱们上面说那个差不一样,差会把那个空格给去掉了是吧,哎,这块呢,你存了多少那就是多少。哎,这个注意一下,嗯。嗯,这块呢,没有太多呢,要给大家去做这个强调了啊,就是当我们存储的文本比较大的时候呢,建议大家呢,你就可以用这个test相关的啊,Test相关的啊,毕竟咱们上边刚才提到一个work差的话呢,它是不是提到了一个叫。哎,咱们刚才演示的时候呢,是不是也出了问题了,就是你最大呢,是不是存这么多个字符啊,哎,要抄的话呢,就用它不合适了。那你就可以考虑用我们这个test类型,OK。行,那实际开发中这个经验是什么呢?那这里边儿呢,你刚提到了说如果你要存储的这个内容呢,不是太大,建议呢,你用叉或者是我叉。
24:07
哎,这个OK是吧,然后接下来,然后下边这个事儿呢,是我们比较关注的啊,我们下边提到这个lo类型的时候,还要说这个事儿,就是这个test呢,因为它存储的是这个大文本,比如我们存一篇文章等等的是吧,那如果说你把这个文章呢,呃,这个添加到我们这个表中一个资料当中了啊,占用的这个字节空间比较大,后期呢,你又把这个文章呢,比如说给删掉了,这时候删掉以后呢,会导致我们这个数据的这个存储空间当中呢,会产生啊用双引号来举例子,就是一个空洞,就是这块空间给抹掉了,对吧?使得呢,哎,我们文件的碎片呢,可能会比较多。啊,尤其你这种场景呢,删除的比较多的时候呢,文件的碎片呢就比较多,所以说呢,咱们如果在一个表当中频繁的去操作这个test类型字段的时候呢,建议单独分出一个表去做。啊,不要在这个表当中去做,导致这个碎片呢,太多的时候呢,这个查询效率呢,也会很受影响。啊,一会儿我们说到这个lo类型的时候呢,再来强调一下这个问题。
25:03
好的啊,这是它,然后下边这块呢,你看提到了这个叫哎枚举类型啊,枚举这个词大家听说过吧。哎,枚举是吧,就是呃,像数学当中有一种方法呢,是不是叫枚举法呀?啊,你比如说我们现在扔一个骰子啊,这是一个骰子,这叫骰子A啊,这叫骰子B啊骰子的话咱都知道点数呢是一到六的,那现在呢,说我把这两骰子扔一下啊,希望这个点数之和呢是七的啊有多少种呢?啊,有同学想,哎呀,点入这个日期的啊,一看呢,也没有特别好的办法,干嘛枚举吧,哎,你是不是就把满足这个条件呢都列出来了啊,那这呢,就是我们叫枚举法。那什么叫枚举类型呢?哎,就是我们有几种,呃,具体的值,你把这个呢都列出来,这就叫做枚举。啊就叫枚举,OK,用这个呢类型来表示。哎,来表示啊,具体的长度范围啊,一个或两个字节啊,就是看你这个成员的个数了,来决定它实际的存储空间是吧?来这个了解一下好,那下边的话呢,我们来创建一个这个枚举啊,这个类型这个字段啊,这个你注意一下它这个字段怎么去创建好这个呢?因为也比较简单啊,咱们直接呢就来说明了啊,这个叫啊in或者叫an都可以啊,这它的发音呢有俩。
26:16
哎,我这呢创建了一个表,里边呢叫season啊,这呢是我定义的一个字段,叫做哎季节。啊,这个呢,就是我们用的这叫innu或者叫animal,里边的话呢,诶我们就是写的这个字符串啊,为什么有时候把它也当成文本字符串类型呢?就是因为这里边写的也都是字符串,好我写了就是春夏秋冬,然后这个呢叫unknown。啊,就是不知道啊,这个就额外额外加了一个,呃,相当于呢,我们,呃,这个在添加啊,我们隐射到这个表里边,给这个字段添加值的时候呢,我们得从这五个里边呢选一个。啊,注意呢,你不能选俩啊,只能选一个啊OK,好,那选中呢,我们做一个执行。可以了是吧,哎,那么接下来的话呢,我们就insert into一下我们这个test。
27:02
哎,咱们叫啊an啊,针对这个season就这一个字段,我就不写那个字段了啊,直接我们就values好,那这个位置呢,我们可以写一个,比如说叫春。哎,就这样,这是一个,或者我们再添加一条记录啊,这来一个,比如说叫秋。啊,现在呢,已经算是这个呃秋天了啊,其实这几个季节当中,呃,尤其过秋天的时候呢,实际上从我个人来讲是最不喜欢的北方的秋天呢,这个风一来啊,一刮树叶全都落了,就是整个给人的感觉还是挺挺萧条的一种感觉的啊。啊,因为现在这个疫情期间啊,这个街上的人呢,也都比较少一些是吧,哎,看着呢,就不是那么繁荣的一种景象啊。好,那这时候我们再去select一下,一抖,你看这个我们这两条数据呢,就添加成功了。哎,这个呢,是一个正确的场景,来我们接着演示啊,CTRLC。啊,接着呃,如果我们这样去写,看看行不行啊,我这呢写一个春啊逗号再来一个啊逗号啊,再来一个秋。
28:03
哎,这么着是吧,来我们选中呢,做一个执行,哎,它就错了啊,是不允许我们这样添加的,相当于呢,你是不是试图呢,想去添加两个这个,哎,枚举的这个值是吧?哎,这是不允许的啊,注意,然后再接着来我们这么着CTRLC一下过来,这个位置呢,我起一个叫按unknown。哎,这个呢,是不是肯定是可以的吧。啊,这个肯定是可以的,哎,我们选中的执行,哎,我们再去做一个select。哎,这就有了,好,这是我们说的这个事儿,然后呢,注意嗯,我这个位置呢,我写成是一个,比如说大写的吧,嗯。那。那严格上来讲,感觉跟我们这个小写的是不是不一样啊,哎,那这时候我们看一下能不能添加成功,诶好像是可以了,哎选中呢,去执行发现呢,哎确实可以,所以这时候我们在添加的时候呢,注意它是这个,诶忽略这个大小写的。哎,忽略大小写的。啊,就是我们这里边儿,比如说我们这指的叫abcd啊,你写的都是小写,小写,然后这块你要是添加是大写的,哎,也是可以的啊也是OK的。
29:07
哎,这是我们说的这个点,然后再接着看。CTRLC啊,拿过来这个Y64的时候,你看我写一个一诶。这个写法行不,然后写一个,诶这样。按照大家的想法来讲,这肯定是不靠谱儿的,是这意思吧,来,我们看一下。你发现诶好像成了啊来我们这块呢,做一个执行看一下,那成了呢,这块显示的是什么呢?你会发现呢,这个一呢,哎对应的是春三呢,对应的是秋恰好呢,是不是我们这里边索引为一和索引三的位置啊啊所以这块呢,我们说也可引啊,可以相当于是使用索引啊进行这个。哎,每一句元素的一个调用。哎,这个呢,也是OK的啊,这个大家去关注一下。啊,这没问题,然后呢,我们再来演示一个特别之处什么呀,我这个value的时候呢,呃说呢,是不是只能从上边这几个里边去选,那我这块呢,就不选,我选个谁呢,我写个no。
30:06
Now,这个允许去添加吗?来,我们走一下。哟,看似好像是可以了是吧,哎,我们执行一下发现呢,哎,这里边儿确实是可以的。哎,这个主要原因是因为我们没有限制呢,这个字段呢,是一个非空的了啊,既然没有限制的话呢,它就可以去添加这个not值啊,所以这块啊。嗯,这个没有限制,这个非空的情况下。哎,我们是可以啊这个添加。呃,这个not纸的是吧,好这块大家注意一下啊,这呢就是咱们所说的叫哎枚举类型啊,别的也没啥了啊,像这种呢,大家了解一下建议呢,你还是就是写呃实打实的,你选的是哪一个就是哪一个啊OK啊写错了啊这个呃,诶这个咱们也没写过一个,好像不是春夏秋冬这个里边的一个啊这个这个咱们整一个。CTRLC啊,这是一种错误的方式啊,再整一个春夏秋冬整一个,随便整一个吧,人。
31:03
显然不靠谱吧。哎,选中啊执行啊,这个毫无疑问呢,它是错误的啊,就是像哎。哎,像我们这个叫枚举类呢,你必须得从这里边去选一个啊,还记得这个事儿就可以了,哎,注意只能选一个,那能不能选多个呢?哎,不能,我们刚才这边举例子了,你想选一个春和秋的时候呢,就报错了,那谁可以呀,这就我们下边这个set类型就可以。诶,这个类型呢,是可以的。呃,他的成员个数的上限呢,是64啊是64选的话呢,你可以选零个啊,也可以选多个啊,这个还还能选零个呢是吧?那具体的话呢,跟我们这个成员的个数这个多少,呃,占用的这个存储空间呢多少啊,那也是不同的啊,个数多的话呢,那肯定这个占用空间呢就会更大一些,对吧。好,下边我们就直接举例子就可以了啊,CTRLC啊回过来。哎,这是咱们这个第九个啊,咱叫这个set这个类型的。
32:00
好,那么这块我们直接选中呢,创建一张表,这个时候呢,这个表中只有ABC这三个值,我们可以从这三个值当中去选择使用啊,你看这块呢,就比较简单,我就直接呢CTRLC都粘过来了。好,大家看这个时候呢,我是不是就选择了其中一个A啊,作为我们这个S这个字段的值是吧,那因为它可以支持叫这个多个里边呢选多个,就比如说呢,我们爱好啊,好几个爱好我们能多选,那你这块呢,我是不是就选了俩呀?诶这个没有问题,哎选中了执行。哎,执行完以后呢,我们去做一个select查询,那是不是OK的还没问题,好然后还有这样的情况,只不过我们一般很少这样写啊,但我这块写了给你演示一下,我写了个ABC,我又多写了一个A。啊,相当于勾选两次啊,那这个时候呢,会报错吗?诶注意不会报错。啊,那只不过呢,他会把我们这个重复的A呢,就给我们过滤掉了,啊,相当于你就写了一个ABC。那这个A呢,就没要。是吧,哎,没有要啊好,这是这个,然后的话呢,我们去填了个abcd,那显然里边就没有D,那你可以吗?哎,当然不可以了,哎,这不就报错了吗。
33:05
啊,就报错了。没有问题是吧,哎,这就我们说的这叫set的这种类型啊。好,那下边这块呢,咱们只不过又多了一个例子啊,这个例子的话呢,就是呃,有这个animal枚举类型和我们这个集合赛类型啊,综合的一个使用啊,其实这也没啥啊,也没啥,就是我们刚才要讲的点呢,其实也都给大家提到了,哎都给大家提到了,那这是我们去insert into一下,哎,我们这叫ta是吧。啊,这个哎,Multi啊,就是我们这个多种类型的啊这样嗯,我下边直接叫values啊,下边去填充,那第一个呢,我们填充的是gender啊,是一个啊枚举类型的,那你是不是得从男女里边去选呀。然后这写一个男没问题是吧,然后后边这个呢,人家是个sad类型,那我是不是可以写多个呀啊,比如我们这个可以啊睡觉啊还可以呢,叫打豆豆是吧。哎,这么着,哎,小框报一下。
34:01
哎,这样子来我们选中啊执行。可以了,哎,然后呢,我们去select。哎,行,From一下啊temp。At。好选中,哎执行,哎可以,你看没问题是吧,好来我们这块CTRLC一下啊,再接着来,嗯,这个呢叫男,然后来个逗号女。啊,那显然呢,是不是不靠谱啊,哎,我们选中的执行啊,这不就报错了吗?啊CTRLC这个呢,是跟我们上面讲的枚举类型这块呢是相关的是吧?哎,不让你这样的去填写啊,不让去填写,哎,你签一个别的值啊也不行。啊也不行,然后这个位置的话呢,我们这个睡觉打豆豆,然后你可以从这里边呢,是可以选多个的这个情况的。啊,这也可以啊行,这块呢,我们就说到这儿,那整个呢,咱们相当于是把哎这块涉及到这个叫哎文本的这个字符串类型这块呢,我们就来说清楚了,呃,重点呢,大家啊,在咱们实际这个呃开发的场景当中啊,咱们应该说用上边这个,嗯。
35:06
差和我差的这个啊,定义的情况呢,是要更多一些,大家重点是关注什么时候我们选择差,什么时候呢,我们选的是我差啊,这个大家重点看一下。
我来说两句