00:00
好,那约束呢,讲完之后的话呢,我们接着再讲,就开始讲这个第14章了,那这呢,我画一条线,哎,什么意思啊,就是上边这块呢,我们说呢,主体上咱们都是基于表呢在谈的一些内容啊,基于表呢讲的这个circleql里边的DDLDML和DCL,包括呢约束是吧这样的一些问题,那么从这个第14章开始啊,我们要讲一些,呃,除了表之外的一些数据库对象,比如说呢,视图,存储过程,存储函数,还有触发器啊这样的一些结构。啊,这呢,我们说了一个词叫做什么呀,叫做数据库对象。好,那首先的话呢,我们先来看一看这个数据库对象是什么意思,哎,这个呢,其实就是一个专有名词啊,那具体来讲的话呢,像咱们前面讲的表table是吧,那它就是典型的数据库对象。啊,这个表的话呢,我们说也是作为关系型数据库的一个主要的体现了,对吧,那它有行有列,行的话呢,我们就是一个一个的record,那记录,然后列的话呢,就是一个一个的field,那字段,OK,那么整体上构成一个表来存储数据的这样的一个二元的一个这个结构,啊那么除了表之外的话呢,我们说还有其他的一些数据库对象,那首先呢,我们来熟悉一下这个问题,那第一个概念呢,我们称为它叫数据字典。
01:16
这个数据字典啊,其实说白了也是表,只不过呢,它是系统表,那像我们下篇当中啊,咱们提到这个数据字典的机会呢,会多一些,因为我们到时候呢,涉及到了比如说权限的一些问题,包括用户的一些创建,对吧,到时候我们会说到像这个MYSQL数据库啊,就是咱们有一个数据库呢,就叫做MYSQL。嗯,在在这是吧,诶它里边呢,有相关的一些表呢,来记录用户啊,包括记录相关的权限啊等等,这个我们到下篇的时候呢,给大家展开去说,诶到时候我们会经常说这个数据字典啊,对于咱们普通的成序员来讲的话呢,针对于数据字典的话呢,我们通常呢,只是查看,我们不会去做修改,那我们比如说创建用户呢,增加这个给他赋予权限了,它会自动的做一个这个表的一个维护的啊,不用我们自己呢去做修改啊,这个大家先了解一下。
02:03
然后呢,下边这个呢,提到了叫约束,那这个呢,咱们刚讲完对吧,Constant,我们也可以把约束呢,看作是一个数据库的对象。比如说我们去添加一个约束,然后这个约束的话呢,是不是也有自己独立的名字呀,哎,没有问题的,然后我们还可以去删除这个约束啊,是OK的,那约束的主要出现呢,就是为了保证数据的完整性啊,咱们再讲约束的这个章节的一开头就提到这个问题了啊,比如说这个实题的完整性啊,这个呃,叫什么引用的完整性啊,诶等等的都有是吧?一共我们提到了好几点,这个完整性OK,大家可以再去看一看。然后呢,下边呢提到了叫视图,那也就是我们这一章呢要讲解的这个重点啊,英文呢对应的就叫做view,那我们如何去创建视图呢?啊,那其实就是叫create view对吧?那关键呢,大家需要清楚,就是视图呢,在什么场景下呢,我们会去用啊,一会儿呢我们去说啊,这里边儿的关于视图的描述呢,就是一个或者多个数据表里的数据的逻辑显示啊,视图呢并不存储数据,这个我们一会儿呢就讲到这个事了。
03:04
然后下一个概念呢,叫做索引啊,前面的话呢,我们也多次提到过索引这样一个概念啊,叫做index,这个呢,是咱们下篇当中涉及到SQL优化的时候呢,我们重点要讲的一个内容,它的主要目的呢,就是为了提高我们说查询的一个性能,对吧?当然我们说主要的一个目的啊,像我们说的主键索引的话呢,我们还要依据它呢,来存储咱们的整个数据表里边的数据的,OK,那呃,关于提高性能这一方面的话呢,大家你要说有一个作为参照呢,我们就可以把索引呢看作是咱们书的目录。那就像我们有一本书,比如说咱就说新华字典吧,哎,新华字典的话呢,大家如果说呢,有目录,那肯定是不是便于我们去找到某一个字到底在这个字典里边的哪一页,对吧,来快速的定位,但是如果说呢,我们要是没有目录的话呢,是不是这个书的字也不少,你要想找哪个也能找,只不过呢,你就从这个第一个字母开始找就可以了。那体验呢,肯定会差一些,就是效率会低对吧,那从这一点上来讲的话呢,我们说索引的好处呢,确实呢是用来提高查询性能的啊,但是说呢,我们这个说让它等价于书的目录啊,其实还差点意思啊,它的这个整体的功能的话呢,其实跟书的目录比还是有所区别的啊,到时候我们再说。
04:14
好,然后下面的话呢,提到了这个叫存储过程啊,Procedure跟这个存储函数叫function,那存储过程存储函数大家呢,先拿一个结构去理解的话呢,是谁呢?就是我们前面章节当中讲到的系统给我们提供的函数,比如说单行函数啊,我们讲了好多类,还有呢,是不是聚合函数啊,那求最大值,最小值总和啊,平均值啊等等的这个呢,都算是函数,那么这个存储函数呢,其实就意味着是我们用户自定义的函数。OK,那么存储过程的话呢,其实也是对一定功能的封装,它俩的主要区别呢,就涉及到了是否有返回值的问题。哎,这个函数呢,是明确有返回值的,对吧?哎,而且只能有一个存入过程的话呢,比较灵活一些,可能没有返回值对吧?哎,也可以呢,是alt啊,多个这个参数的值啊都可以的,到时候我们再去细说,那存储过程跟存储函数的话呢,咱们是放到下一个章节呢,来给大家去做这个讲解。
05:09
诶来给大家做这个讲解,然后最后一个呢,叫做触发器,叫做trigger触发器,触发器顾名思义就是触发作用的是吧?诶这里边还提到另外一个新的词,叫事件的一个监听器。那有很多同学呢,应该刚开始接触这个数据库的话呢,可能没有听过啊,或者接触过这个监听器了。嗯,那我举一个例子吧,比如说大家用这个手机,手机这个屏幕上的话,我们有个按钮,对吧?当我们点击这个按钮的时候呢,通常比如说我一点按钮这块呢,就出来弹了一个框,那么我们点击这个按钮的时候呢,实际上就触发了一个事件,就是点击事件,那当我触发这个事件的话呢,在这个按钮上呢,它绑定了一个监听的一个行为,就是当你一旦触发这个事件呢,对应的那个监听器啊,它就起作用了。那就好比是我们这里边触发器一样,比如说呢,我们这里边有个表对吧?那表里边有很多条记录了,那条记录,然后呢,当我们删除这个表中的一条记录的时候,在删之前,只要你一删,我就会触动一个触发器的执行,怎么着呢?诶在删之前我们把这条记录呢,保存在另外一个表里边,当你要再删一条记录呢,在删之前把你要删的这条记录呢,再保存到这个表里边儿,以此类推,如果我们把这个表中的数据呢,就全删完了,那是不是相当于在删之前呢,都把这个数据保存在另外一个表里了。
06:22
这就相当于实现数据的一个备份的一样,那我们就可以通过这个触发器呢来去做这个事儿。这个触发器的话呢,我们放到这个第17章当中,咱们来讲解,那么第16章呢,提到了叫变量流程控制,流程控制呢,就涉及到了比如循环结构啊,这个条件判断结构啊,诶这样的啊,U标的话呢,就是我们可以更精准的呢,来去控制这个呃,数据一条条便利的这个行为,然后我们可以去取出相应需要的数据,做一些呃细致的一些操作等等,哎,都是基于我们这个存储过程和函数呢来讲解的。OK,所以说呢,我们能看到就是视图存储过程函数,然后16和17这几张呢,其实主体上我们讲的呢,就是除了表之外的,是不是其他的几个数据库对象呀。
07:05
诶,还有呢,我们有讲解的话,我们会放到这个下篇当中,咱们来进行这个讲解,OK,然后最后还有一章呢,我们来讲解一下这个MYSQ8,前面的话呢,我们其实提到过一些这个新的特性了,那么在这一章里边我们再看一看,还有哪些呢?是独立出来的内容,那我们给大家做一个讲解。好,这呢就是我们提到的叫数据库对象这个概念,然后接下来的话呢,咱们看一看这个叫视图啊,这是咱们这一章的一个主要的内容,那相较于前面我们讲表来讲呢,哎,我们在讲这个视图呢,就会更简单一些啊,大家呢也会更好理解一些。好,那么首当其冲的话呢,我们来谈一个问题,就是说为什么要去使用视图。对吧,那前面我们已经有表了,大家对表呢也比较熟悉了,就是用来存储数据的,然后呢,基于这个表我们做增删改查都没有问题了,就是已经能够解决这个我们正常的这个诉求了,是吧?那试图又是来做什么的呢?诶首先的话呢,我来给大家举一个实际的场景的例子,那从这例子呢,咱们来感受一下啊,应该呢,能够比较清晰的让你感受到这个视图的一个作用。
08:08
好,我来举个例子。好,大家看我们这呢,有个表叫做employees表,诶大家呢,就可以理解成咱们前面呢,讲那个这个查询的时候呢,咱们是不是老用这个员工表对吧,那就是这个表,好那么这个表的话呢,这个有好多的字段啊,里边有很多的数据,对吧?那么这个表的话呢,在实际工作当中啊,咱们就可能会涉及到一些这个开发人员去做维护啊开发人员比如说这块呢,涉及到这个管理员了,数据库的这个管理员我叫DDBA是吧。啊DBA吧啊这个小伙啊,其实呢,这个一说到DBA,他通常那个权限会大一些啊,我们这里边假设他的权限呃不太大是吧,不是那个所谓的管理者的那样一个角色了啊,就是比较小的一个角色了。呃,那么呃,我们让这个数据库的这个管理员去维护我们这张表,但是这里边呢,有个实际情况是什么呢?就这个表里边有些字段,这个数据啊,比较敏感。那举个例子啊,比如说呢,像员工的这个工资,那因为呢,他只是一个普通的职员,他能够看到所有人的这个工资不太合适。
09:04
只有呢,像HR,包括HR的这个主管,我们说他才能够这个就是首席,这个叫什么财务这个这个人力资源关了是吧,那他能够看到这个是是合情合理的啊,这个下边的一些员工呢,尽量不要看到公司中所有员工的这个薪资,包括呢,我们可能在表中还有一些字段用来呢,就比如说是公司的一些管理者呢,对这个员工的一些评价了,比如说这个员工呢,这个表现非常好啊,下个季度呢,我们要升职加薪了啊,这个员工呢,表现比较差啊,试用期呢,再延长一个月啊,不行的话呢,就就算了是吧,诶就关于这样一些描述,像么像这样的一些数据的话呢,我们说让普通的这个管理者在管理员呢,数据库的管理员去看到呢,是不太合适的。是不太合适的,那也就是说呢,让他维护的字段呢,尽量像这种敏感的字段呢,就不希望他看到了,那怎么办呢?哎,除了这个敏感字段之外呢,其他这个字段呢,他可以去做一个增删改的操作,对吧?那么这时候呢,我们能想到的方法有哪些呢?
10:00
啊,可能有的同学会想说,那呢,我就针对于啊,你把这个敏感字段去掉之后呢,剩下的这些字段呢,我们取出来,咱们造成一张什么呀,咱们叫一个子表吧。哎,大家应该记得咱们前面讲过创建和管理表的时候呢,是不是讲过创建表有一种方式呢,叫呃,Create啊这个table,然后as是不是下边我们可以写一个select是吧,那你就select的时候呢,把这个敏感字段去掉之后,然后我们保留呢,就是哎不敏感的这个字段,然后我们造一张是不是一张新的一个表啊。你看我明确呢,这块提到一个概念叫做新表啊,就我们新造的这张表里边儿,诶,是可以包含语言表中的,是不是所有的数据的呀,然后呢,我们让DV呢,就不再去更新咱们employees表了,因为里边有敏感字段是吧,然后我们转头呢,让他去更新这个新表。那我们把新表呢,因为它属于这个原表的数据的一部分,我就成为一个叫子表了,去更新这个表就可以了。大家觉得OK吧?那么如果你要是觉得OK的话呢,那我们接着往下去看,你会发现另外一个问题,什么问题啊,就比如说呢,我们现在呢,有一个呃员工啊,这个员工的话呢,他这个电话号码啊,这个换了啊,换成另外一个号码了,那这块呢,我们是不是需要把这个号码呢,做一个更新,对吧,非常合情合理,那这时候呢,因为你这个呃,数据库的管理员啊,他只能够有权限的去操作你这个所谓的叫子表了,那我们就呢去改这个表中的数据,那么改完之后的话呢,问大家我们这个employees表中的这个员工的电话号码改了吗?
11:31
是不是没有更改呀。对吧,那原因呢,就在于我们此时呢,咱们前面讲过创建的一张表,相当于呢,这个数据是对原表数据的一个是不是复制啊。这个咱们前面都讲过了,对吧,复制呢,就意味着呢,你这个新表中的数据呢,跟原表中的数据已经没有关系了,你改你的跟我原表一点关系都没有,所以呢,这实际上是一个问题。那延而呢,就导致了这个管理员,你是管理员,你更新的这个数据呢,跟原表这个数据呢,根本就没有同步,对吧?诶这个呢就不靠谱了啊,那么我们这时候呢,就得从长计议了啊,那应该怎么办呢。
12:10
哎,那么这时候我们试图啊,哎,就派上用场了。啊,怎么讲呢,就是我们这时候呢,你看啊,咱们这个话,我就简单在这一画啊,还叫create,注意这时候我不叫create table了,我叫什么呀,我叫create一个view。View呢,就是咱们现在说到的这个视图,然后下边啊,诶一样,你就把原来c as select哪些字段,现在呢,我们就把这个table改成view就可以了,叫create view,然后as select。哎,然后你下边该怎么着还怎么着,那么我们这时候呢,相当于是不是创建了一个视图啊没问题,好,那么当我们还是说那个,诶这个管理员是吧,这个管理员呢,现在的话呢,他也不让他去操作这个这个我们的这个employ表,让他呢去操作谁啊,去操作这个view啊。这个view的操作涉及到增删改,包括查询的权限呢,我们都给他,然后呢,他去操作这个view,那么首先呢,数据能看到,然后呢,其次我们还是那个问题,现在呢,我们要是更改某一个员工的电话号码,那就让这个管理员呢,是不是去改这个view啊,那他把这个view中的这个字段改完以后呢,我们这个原表当中的这个数据会更改吗?注意这时候呢会更改。
13:18
相当于呢,就实现了view和这个呃,原表当中这个数据的一个同步了,对吧,那这个同步的意思呢,就是他们得是一致的,你可以暂时呢,先这样去理解啊。好,那么我们就会去想,那怎么做到呢?是因为我们这块呢,把view中的数据改完以后呢,他会去表中去找跟他一样的那条记录,然后做一个更改吗。哎,注意其实不是啊,那是什么呀?哎,那这里边儿就提到,其实我们这个view当中啊,当中啊,它根本呢就不不存数据。哎,那我们刚才改的view的数据改的是谁的是谁的呀,我们改的view的数据本身改的就是表里的。那包括呢,我们去从view当中去查数据,其实查的呢,也是咱们表里的。啊,相当于呢,就有点儿像什么呀,我们这个视图啊,就只是一个虚拟的一个表一样,看着它存在,但实际上呢,数据呢,都还在我们这个原表里边儿。
14:10
哎,都还在我们的原表里边儿,所以说它本身呢,是不具有数据的。啊,但是呢,我们刚才这样一个需求下去之后呢,是不是也很好的解决了我们刚才对于这个字段敏感的一个问题,对吧,相当于我们进行了一个什么呀,叫权限的一个管理。诶权限的管理,那我们这呢,把这个问题再放开呢,比如说你这里有一个叫DBA1,这个叫DBA2啊等等等等等,有好多的管理员,然后的话呢,针对我们这个表,当然我只是以一个表为例来说,那实际我们在一个项目当中,数据库里边是可以有这个上百张几百张表的,对吧。好,那我们就以这一个表为例的话呢,这个字段呢,假设呢,我们有30个字段,那我们可以针对于是不同的这个所谓的这个管理员,我们呢,比如说诶这个呢,我们造一个view啊,让他呢能够看到这比如十个字段,让这个呢看到这十个,诶看到这十个就是我们可以提供给不同的管理员是不是不同的视图,然后对应到我们这个表里边儿不同的字段啊。
15:04
OK吧,然后呢,包括这个视图呢,我们还可以去分配他具体的一个增删改的这样的一些权限,那么就非常的灵活。而不是说呢,像原来一样,我们都是给他这个大表的权限,你看着弄吧,那有的时候给权限是不是就给多了呀,给多了就容易出事是吧,那这时候呢,你现在诶这个小伙刚来没多久,咔,给你把这个表中数据给你清掉了,还没有备份,那你说你这时候呢,去找谁啊。你都跟着得倒霉是吧,哎,就成这个问题了,好,那这呢,就是我们提到这个呃视图,哎,它的一个作用可以用于控制这个权限的是吧。好,那这块呢,就是也做了一个相关的一个说明,好,那下面呢,关于这个视图我们为什么要使用啊,大家应该有一个比较感性的一个认识了,那下边呢,我们再看看这个。语言上的一些描述啊,首先呢,这里边儿提到说这个视图啊,是一个虚拟的表,本身没有数据,就是我们刚才提到这一点。啊,就是我们从视图中能查数据,当然这个数据呢,其实还是人家原来那个表里边儿的哪个表啊,就是我们建立视图的时候呢,一定会基于表的,就就是我们create create view啊,咱们就直接看这个语句啊,我们create一个view,就是你这个视图。
16:10
名,然后as后边有个查询句,只要查询句呢,我们是不是就要写表啊,哎,那就相当于我们这个视图呢,都是基于这个表上,是不是创建的呀?OK,那我们基于这个创建的这个表叫什么呀?我们就起了个名叫做基表。就是基础的表。行,那对于用户来讲,他呢,通过这个虚拟的表也好,或者叫视图也好,他去查询数据,那实际上呢,他查的就是你底层这个机表中的数据。啊,那如果说我们通过用户通过这个视图呢,咱们去改视图中的数据呢,那其实你改的呢,也是底层表中的数据。诶就是这个概念,所以说呢,我们这个视图里边,你就可以理解成它就是个虚拟的表里边没数据啊,就是虚拟的意思,好那么反过来说,那用户的话呢,如果说有权限直接这样去改表里边的数据,比如说我们把表中增加了一条记录,那我们要是再去通过试图去查看,那这里边会多这一条记录吗?诶注意会的。
17:04
哎,注意会的,哎,也就是说。这个我们这边说到的是吧,这个视图中数据的一个增加删除和修改,它呢,诶对应的表里边儿呢,也会做相应的变化。啊,反之亦然,就是你要是表里边儿的数据变了,我们这个视图中的数据也会变。哎,他也会变。行,哎,那么要这样来看的话呢,你看我这句话呢,大家能不能理解说呀,本质上来说,你这个视图其实就可以理解为叫存储起来的select语句。你像原来我们要是查询的话呢,有诶临时现写一个查询啊,可能是多表的查询,可能是个子查询,挺复杂的是吧,那现在的话呢,我们在这个查询的语句上面,咱们加了一个more,叫create view,起了个view名,然后as,然后把你这个查询语句往这一放,我们运行,我们真实的去创建了一个可以持久化的一个东西,就是叫这个名的视图。
18:00
当你要是下次还想用同一个查询语句的话呢,你想想你就不用献血了,是不是直接呢,就是调这个视图就可以了呀。对吧,那调了一个视图就可以了,所以呢,咱们把视图呢,就理解成存储起来的select语句起,Select语句本身他自己呢只是一个逻辑,它又没有存数据,对吧,那我们这个视图是不是本身它也不存数据啊,哎,其实核心来讲哈,大家如果能把这句话理解了,那你就把这个视图的本质呢,就给看透了。诶就给看透了,行这呢你清楚这个以后,然后呢,这边又提到说视图的创建和删除,只会影响视图本身,不会对应这个,哎,不会影响对应的基表什么意思啊,就是我们这个视图呢,创建完以后,咱们呢,你比如说我们这个啊,从这个映射出来的这个,我们就相当于是一个视图了,那这个视图不想要了,把这视图给干掉了,那么会影响我们后边这个表本身的这个数据会被清掉吗?不会的。哎,不会的,因为呢,你只是存储起来这个select语句,那你删掉视图只不过相当于是把这个存储起来的这个select语句给删掉而已,Select句又不会说给你删数据。
19:03
OK吧?啊,大家能理解啊,那通过这个呢,其实我们又谈了一个视图的另外一个好处是什么呀,你想想,如果如果我们在这个项目当中,你看这块也提到了是这个小型项目的话呢,咱们就可以不用视图了,因为你涉及到表呢,也没那么多,嗯,字段也没那么多,也没那么复杂是吧,但是在这个大型项目当中呢,这个表的这个项目之间的这个关系呢,就非常复杂了,那我们要是写一个产语句的话呢,有可能这个社Q语句呢,就写的非常的大。那你要是这块没有把这个四个语句保存起来,后边呢还想用,那这时候是不是每次都得现写。啊,很繁琐,怎么办呢?我们就可以把这个来语句呢,是不是给它固定下来,作为一个哎视图的方式呢去存储,然后当你每次要用的话呢,直接限掉是不是就可以了,哎,相当于它还有这个好处叫什么呀,能够去简化我们的查询。诶简化我们的查询好,那这里边呢,咱们把刚才讲的这个事呢,稍微的给大家呢,这个记录一下啊,针对这个的话呢,大家还要有一个印象,这呢是咱们这个第14章对吧。
20:03
啊,第14章啊,我们叫这个视图,那视图呢,对应的英文呢,就到这个view,好,哎,把这个呢,我们选中啊,CTRLCCTRLS。啊,我们保存一下。保存一下行,那么刚才的话呢,我们相当于是讲,诶这个我加一个这个注释。讲了一下我们这个视图呢,为什么要有它,它的好处等等这样的一些基本点。来,我们稍微的做一个小的笔记啊,第一个。呃,这个关于视图的理解。哎,关于试图理解行这呢,我们提到几个事情,嗯,第一个的话呢,我们提到什么呀,说试图呢。嗯,这个可以看作是吧。看作是一个叫虚拟表啊,本身呢是不存储数据的。嗯,其实这个理解的话呢,还算是这个稍微的一般一些啊,你要说他这个本质是什么呢,我们就直接在这说了啊,视图的本质。
21:03
啊,就可以看作是存储起来的一个select语句,对吧。看作是啊,存储起来的。哎,Select语句,哎,这个呢,就是我们把这个视图的本质呢,就给它揭露出来了,那这是这个问题,好,那刚才呢,我们还提到一个点,怎么着呢,说这个,嗯,对视图中的这个,诶先说这个概念吧,这个视图啊。中啊,咱们试图创建的时候呢,视图中这个select语中,Select语句当中涉及到了一个表是吧,我们把它称为呢,叫基表啊。哎,涉及到的这个表,诶称为啊叫做基表。那相当于你这个数据呢,是不是都还在这个基表里边,对吧?啊,这是我们说的这个第二点,然后第三点的话呢,我们说这个,呃,针对啊视图。啊,做。啊,这个我们叫增删改的操作是吧,诶DML操作啊,会是影响到啊对应的呃,机表中的数据。
22:06
哎,反之亦然。那就是说我们要是这个,呃,修改这个机表中的数据的话呢,它也会影响我们视图当中的这个数据啊,其实说白了,你这数据本身就都在人机包里的,人家就是一份,没啥说影响谁的,一说影响感觉好像说是说你这里也有数据,我这有数据似的,实际上人家就只有一份数据,对吧。那就嗯,其实是没有影响的,因为人家就这一份啊,你改了当然就改了呀,啊这我们说这个概念啊,好接着我们再说。嗯,这个是啥,然后呢,我们提到了说这个视图本身的,嗯,它的一个删除是不是不会导致是不是基表中数据的删除啊。这个我们刚才讲到了,因为呢,你就是存储起来这个select语句,你试图呢删除,其实不就相当于你把这个select语句呢不要了是吧,我不在这个磁盘当中去存储它了,而是把它给删除了,那你这个表还是表啊,对吧?哎,这个是不受影响的啊,OK,这是一个,然后呢,咱们下个点。
23:03
呃,刚才呢,我们提到了啊,或者我们先说这个是吧,就试图这个叫应用的一个场景啊,这个应用场景的话呢,刚才我们在课件里边又提到了,就是这个针对于这种小型项目。啊,这个针对于这个小型项目呢,我们就不推荐使用视图了。啊,就是大家呢,如果毕业的时候呢,你去工作,呃,这个在这个企业当中,其实这个项目呢,也都不太大啊,或者是一个创业型的一个项目,那这种呢,仕途一般我们都很少用了,因为你整个项目当中涉及到的表呢,也都比较少,没有那么多复杂的这个场景,对吧?那包括像我们手机端的话呢,具体的一个一个的APP啊,当然你别说是京东啊或淘宝这样啊,它里边的表会多一些,一个正常的一个,诶呃,正常量级的一个APP的话呢,其实它里边的表呢,也不会太多啊,几十个表是吧?那这时候视图呢,可用可不用啊,也都可以啊,因为它这个项目不大啊,但是呢,我们要是针对于这个大型项目来讲啊,针对于大型项目呢,因为涉及到这个表呢,就非常的多了几百个表,然后表中的这个字段呢,也特别的多,那针对于表跟表之间这种,你要是做一个相应的一些需求的话呢,有可能会涉及到多张表的一个联合的操作。
24:11
对吧,诶那就是我们说的这个概念,你把这个操作呢,还经常去用,那我们最好呢,把这个查询句呢,给它固定下来,怎么固定啊,咱们就以一个视图的方式呢,给它固定下来,所以说针对这个大型项目的话呢,我们也可以考虑呢,去使用咱们的这个视图。啊,当然不是说非用不可是吧,啊,只不过呢,就是你用了以后呢会更好,所以这里边儿我们就提到了这个视图它的一个。啊,优点对吧。好,这个我们写个六啊。那视图优点,那刚才呢,我们提到的优点呢,其实是其中的一个叫什么呀,叫简化查询,哎,那以后呢,我们再去查呢,你就用不着自己再去现写这个多表的一个select语句了,你直接呢,就是我们调了一个视图去查询就OK了。啊,那么我们这是这个事儿,讲这个的时候呢,相当于是使用视图的另外一个场景,那怎么着呢,我们可以呢,去控制这个访问的权限,对吧,控制数据的一个访问,那原来呢,哎,访问我们只能是访问咱们表。
25:11
访问现在的话呢,我不让他访问表了,那表里边这个字段很敏感,我们呢,就是让你访问这个视图,而且我们可以诶造不同的视图,然后呢,诶提供不同的权限,对吧?哎,控制数据的一个访问啊这个呢是非常好的一个点,OK,当然除了之外呢,我们其实视图还有其他的一些优点,哎这块我们在最后总结的时候呢,给大家去说,包括呢,它还有一些这个缺点等等的,那最终呢,呃,目前呢,我们大家需要关注这个情况呢,就是说哎这个视图的话呢,诶它有它一定的好处,那接下来的话呢,我们就需要呢,通过编码的方式呢,去验证一下,比如说诶我们怎么去创建视图啊,那你说这个他修改了,这就改了,那是不是这样子的呀,对吧?哎,我们要去讲这个视图在开发中,我们要用的话呢,该如何呢去使用。
我来说两句