00:00
好,接下来呢,咱们讲一个相对比较高级一点的这个知识点,这个呢,我们把它称为叫做视图,好视图什么叫做视图呢?啊,那么实际上视图的话,它就其实是一种虚拟的表,那虚拟的表我们马上就想到了咱们数据库中的表,比如说比如说哈,来看这咱my employees库里边是不是这些都叫做表呀,那么只要是表,它就具备这样的格式,什么格式呢?是一个表格,有行是不是有列呀,那所以说我们的视图其实也具备这些特点,那它的使用和我们表格一样,和普通的我们所谓的表一样使用啊,那虚拟表它有什么意思呢?它实际上呢,它是我们my circle5.1版本出现的新特性,以前没有啊,以前没有,那么它是什么时候生成的呢?它是通过表,通过。
01:00
我们的这个普通表啊,那我就叫表吧,动态生成的数据,动态生成的数据好光这样说呢,大家可能不是特别理解啊,那么其实他的意思是说,假如说呀,我们有个需求,做一个比较复杂的查询,那么我们就可以把这个复杂的查询呢,封装成或者包装到一个视图里边,其实就是一个虚拟的结果集,对不对,那包装到这个里边有什么好处呢?那么下一次我再去使用这样的查询的时候,我就省得再写了,直接去用谁就行了呀,视图就行了,所以呢,它具备一个特点,那就是临时性的啊,临时的特点,我举一个生活中的案例,帮助大家去理解视图和我们普通表的这样的一个区别,呃,举一个什么案例呢?呃,比如哈举一个例子,呃,假如说呀,咱们上那个中学的时候,我们中学的话应该呃会分为好多班级,你像我们高中的话,一共是22个班,我印象中啊,就是我们。
02:00
高三啊,一共是12个班,然后呢,有很多班级,每个班级呢,我们可以把它想象成是不是就是一个真实存在的表格呀,哎,这是真实存在的,好,假如说呢,某一个领导过来视察,这个领导比较关心的呢,不是说具体的班级的什么什么东西,他比较关心是你这个学校啊,这个这个他比方说喜欢跳舞,能听懂意思吧,他想去看一下这个舞蹈表演,你这个学校的这个舞蹈的功底,那么所以说为了去应对这个领导的这个视察呢,那么他对这个我们这个学校呢,就为每一个班级啊,就是在每个班级呢,抽出一部分同学,是不是组建了一个舞蹈班呀,能听懂意思吧,组建了一个舞蹈班,那当然领导走了之后,这个舞蹈班是不是就自动解散了呀,我这样说能理解吧,所以说这个舞蹈班其实就可以理解成叫做谁呢?视图啊,那么平时每个班级上课的时候,是不是你这个舞蹈班的。
03:00
学生就该上课就上课去啊,他还是属于是不是每个班级的呀,那只有说那个领导过来了,然后比方说要看一个表演,哎,说你们学校这个听说舞蹈不错,对不对,那么过来给我演一段吧,然后那个学校的校长说了,行,我们专门有一个这个是不是舞蹈班呀,对不对,那过来跳一段是不是啊,然后这个班级他是不是有效的呀,此时此刻回头领导,领导走了,这个班级自动解散,能听懂吧?哎,他是临时的啊,并不是真的,并不是真的专门是不是有一个班就叫做舞蹈班永远存在,它不是这样的。那当然这个舞蹈班呢,这是刚才说到的第一个特点,临食第二个呢,假如说呢,这个领导呀,闲着没事,今天来一次,明天来一次,对不对,那每次来的话,其实就可以是不是直接用这个舞蹈班的,这这这这这帮同学了呀,啊就可以重复去利用它能听懂意思吧,他还具备这样一个特点,好,这是简单跟大家去说了一下它哈,呃,这是跟大家举了一个例子,那就是关于舞蹈班和普通班级的这样的一个对比啊,其实就是试图和我们普通表的一个对比,好那么接下来呢,我们再看它具体的这样的一个含义,好看一下这这个地方写到了我们视图呀,它的这个数据主要就是来自于我们查询时使用到的表,它是通过我真实表,或者叫做原始表查询生成的视图,哎,那么当你在用视图的时候,会动态生成,注意它里边并没有真实的保存数据,也就它并不是在数据库里边。
04:34
他专门开了一个空间保存你的那个什么行列数据,它不是这样的,它可没有保存什么张三李四王五啊,真的存在哈,它不是这个样子,它只保存了什么呢?SQL逻辑没有真实存在数据,保存数据,那么下一次你在用这个视图的时候,是不是动态的给你生成呀,它这样的一个意思,那么这有一个举了一个简单的案例哈,比如说呀,我们呢,现在想去查询谁呢?学生名和专业名,那学生名和专业名的话,我们知道是不是他用到了一个学生表和专业表呀,哎,那么我们就可以做这样一个复杂查询,假如说你这个复杂查询多次使用,我们就不妨包装成一个视图,比方说起一个视图名叫做MYV1能看到吧,那么下次假如说我有一个需求,我想去查看。
05:26
比方说呃,学生名中姓张的,姓张的学生姓名和专业名,那我直接怎么写就行了呢?啊,你看哈,我说一下这个例子,举个例子哈,假如说我要做这样的一道题,查询一下姓张的学生名和对应的专业名,能听懂我意思吧,你要之前我们没有没有用视图的话,我会这样去写select学生名,这个应该会有这样的一个库吧,有是吧。
06:01
这个是不是学生名啊,哎,这个是不是专业名啊,来,咱们可以做一下,那我应该这样写,Student name,专业名是major name from s to in for s inner draw是不是major表m on s点,嗯,Major ID,对了,对不对,m.ID然后再去加是不是where条件呀,Where里边的SQ name like是这样写吧,Like谁呢,张百分号能跟上吧?哎,这是以前挺麻烦的,是不是挺麻烦的啊?那么假如说我用视图,我就可以这么干,Create will随便起一个名字as把呢,经常使用的这个语句呢?哎,封装起来,封装起来,这就是个视图了,那么假如说呢,我们把它给执行一下。好,看一下是不是能成功啊,那么下次我要再做这道题,我就直接怎么写就行了呀,Select,哎,星号from VE VE,然后where能看明白吧,Where,谁呢,To name like什么什么呢?张百分号简单不简单,也就是以后你每次是不是直接光写它就行了啊,好吧,然后现在我们再执行啊,当然我这里边是不是一条数据都没有啊,没有数据啊,但这个语句语法是正确的哈,好,这是简单跟大家说了一下,那所以说呢,我们的视图一般的就是当你多个地方都会用到同样的查询结果,并且这个查询结果用到的语句比较复杂时,我们不妨把这多条词后语句封装到哪个地方去识谱里边说明白了吧,哎,下次再用的话,直接用就行了啊啊所。
07:57
所以说呢,那么接下来很显然,咱们就注。
我来说两句