00:00
好,那么接下来呢,咱们就要通过employees这个库吧,那我们在这来写一下哈,那么我们先去介绍如何创建视图,我们use一下咱们的man inlos哈,那其实创建视图的语法呢,很简单。啊,那它的语法呢,就直接这样去写的,对,直接是create,后面加视图的关键词叫做will,后面再去加谁呢?是出名,然后是as,后面加上一个查询语句,一般的是一个比较复杂的查询,如果简单的插询没必要用视图,是不是你就普通的不用视图做也挺简单啊,那就用不着了啊,比较复杂的采用它。啊,因为这样的话代表的意思是说我通过视图是不是查看到我最想看到的那一部分呀,就是这个意思啊好了,那咱们来去做几道题,可以去试一下,好做几道题,比方说现在咱们希望创建个视图来做一下查询邮箱中包含这个的哈,我把这个题粘过来啊,首先做一下它查询邮箱中包含A字符的这些,这些怎么做呢?你比方说我是不是可以创建一个视图先啊,Create will,比方说叫做my VE as可以吧,优先中包含A字符的员工名、部门名和公主信息,那员工名的话在哪?员工名的话是不是在我的employees表里边,是不是last name啊?不门名的话是department里边的不门名,工种信息是不是又。
01:48
碰到了job title呀,所以说我其实呀可以分两步来做,当然一步也能,对不对,哎,那我故意我故意分两步哈,那我这就可以select last name,部门名department name,公主名job title对吧?From我们有employees d,然后状元一下谁呢departments d2是不是一个连接查询啊,地点department ID等于地点department ID能跟上吗?就是一个查询啊,再去join我们的jobs这啊,我们这里边的job ID很好,然后等于一连job ID好了,我可以把这个链接查询封装到视图里边,可以这样吗?可以哈,好封装好了之后呢,我再去做这道题是不是就简单了呀啊,那么我。
02:48
我在这先领着大家看一下这个视图在哪呢啊,视图的话我们刷新一下啊,然后打开有没有有吧,而且你看这是个什么标志啊眼镜。
03:00
哎,就是想告诉你,我就是通过试图去观察你最想观察的那一部分,你最最想得到的那部分信息,对不对,就这个意思啊好,那么接下来呢,我们再去做这道题就很简单了,其实就是一个是不是使用啊,哎,使用哈,然后我这样去写啊,这是第二部分使用,刚才这个我是不是叫做创建呀,嗯,创建好,那么怎么使用,我就可以select哈,你看跟表的使用一样,Select的星号,为什么星号,因为你这个视图里边就几个列三个from,谁MYVE1能跟上吧,然后where last,邮箱我这里面没邮箱啊,我我写我我这一个写的不对,应该是谁啊,姓名中是吧?啊姓名中啊,那我这就是where,谁呢?Last name like。
04:00
是不是这样啊,嗯,好吧,然后现在再去执行是不是就出来了?哎,你看一下这还挺多哈,55哈,是不是包含A的呀?没问题吧?啊,这个肯定都包含A啊啊本来的数据应该是100007行差不多,是不是107行啊,应该是106行,是不是有一个眉不美啊啊你看这个你可以查看一下是106行吗?啊,经过筛选是不就是五十五行呀?嗯,看这不就会创建了吗?再来一个感受一下它的这个意思哈,假如说我要查询各部门的平均工资级别,以前做过这道题吧,好,那假如说我要做它,以前我记得用的是连接查询非等值链接,还记得吧,还挺麻烦的,那么我这一次的呢,我分开来做。
05:00
我首先创建视图,我创建视图干嘛呢?来,去查看每个部门的平均工资可以吧?好,Get哈,来,一起来写一下create will my way2好,As吧,As select,各部门平均工资怎么写?Avg salary from,我们的employees表group带department ID,当然你也可以把department ID给查出来,你也可以把avg起上一个别名可以吧?啊,行了,创建好了,哎,这就相当于一个表格了,那么我可以看一眼啊,Select星号from my we are,看一下它的样子,查看一下是不是就跟一个普通表格一样呀?
06:00
啊,嗯,所以说他就好像是把这个,呃,这个查询语句是不是相当于包装起来了呀,啊下次可以直接用了,可以直接用了,以前咱们讲死查询的时候也可以用,但是那会儿用是不是你也得把这个都写上啊,现在不用都写了啊,就这种感觉,相当于是不是给它起了个名啊,好吧,这是第二步我们使用,那要是做这道题就简单了吧,怎么做呀,是不是连接它啊,那么我就直接写了哈,我要查询的有这个表,这个是不是相当于表了,现在也就使用是跟表一样哈,MYV2里边要查它吧,啊,那你看我这样MY跟上哈,V2里边的AG还能打点调出来对不对?好,并且我还要查一下工资级别,嗯,工资级别,比方我起个名叫做j.great LA我。
07:00
按这是不是叫他呀,嗯,然后呢,From from my where,然后我们可以用draw,对不?对照一下job grades j,嗯,连接条件应该是my we2,我这个没起别名对吧?他的什么a j between,这点lowest and,这点highest,哎,是不是这个就好像是一个普通的连接了呀,原先是不是还要用上子查询呀,还记得吧,哎,我们还用上了子查询,现在就不用了啊,然后我们再去执行能出来吧,啊,可以直接使啊,当然其实我这个是为了让你看一下它的使用,你也可以把这个复杂的语句是不是合并成一个视图啊,啊,也可以的啊。行,再往下,假如说我想查询平均工资最低的部门信息。
08:03
这个题咱们是不是也做过,哎,故意找这种的哈,原先咱们不是套了好几步吗?那首先我要去做它,我们是不是应该先查每个部门的平均工资啊,而每个部门的平均工资我现在有没有有没有,就是它知道这个题的意思了吧,所以我还用再写吗?不用了,因为它已然在我们的视图里边,当然我得刷新对吧,是不是已然存在了,已经保存了我的思逻辑了,所以我要下查这个的时候就很简单了,我直接怎么写呀?啊,你看我直接select的星号from my v2对不对?这个其实就是每个部门的平均工资,你找最低的那个,哎,那怎么写来着?当时order by AG应该是升序是吧,LIMIT1。
09:04
其实就是最低的那个编号和平均公子是不是已然出来了,是不是这样一个意思,你看多简单啊,啊行,信息不用着急,我通过第四题做就可以了,对吧,因为第四题其实就是最低的不文明啊,不文明其实就是信息里边的对不对啊和工资哈,你要是在做它其实也是得复用麦威R了,要不要复用要的,那么我们首先呢,应该先去查询出最低的那个,呃,相当于平均工资和部门来,然后我再去连接谁去,呃,是部门表吧,Department表,让这个的department台第一,等于我这个里边的,哎,找这了是不是啊,是不是他们两个连接呀,啊用一个连接就行了,所以我知道怎么写呢,这个就是一个表了吗?怎么写的,我给它起上一个别名。
10:04
啊,或者诶,你看我能不能这样呀,我再去穿一个试图可不可以啊,可不可以,可以哈,正好咱们试一下create create will my way said as,我把这个放一个视图行不行,可以啊,直接这样可以。成功了。好,那你这样的话更简单,我现在有一个漫威三视图,而且注意了哈,我这个漫威三视图它针对的不是一个原始表,就是针对谁视图,这个也是允许的,也是允许的,也就是视图可以当成表一样使用啊好,那么我们接下来继续,那么你现在有了一个相当于有一个V3表,里边其实就几行数据啊,就几行数据啊,那V3就一行吧,对了吧,我再拿着它跟它是不是连接去就行了,好那么我们连一下哈,Select啊,比如说我这个底盘的名字起个名叫做D行不行,哎,然后MY3,我起个名叫M,我要查一下AG可以吧,啊from my v3M,然后再去join我的department d,然后2M点,还错了吧,M点。
11:25
哎,它等于D点它做完是不是完事做出来了,比以前要简单一些吧。是不是,哎,这就说完了哈,行了,这个是说跟大家演示了一下,我们的这个叫做视图的创建和一些基本的使用啊,那么通过这些基本的使用,我们就发现其实咱们视图的好处还蛮多的,好看一下这首先第一点我们是不是实现了SQ语句的重用,这个很明显吧,啊,我们一条复杂SQL语句,比如说像刚才啊,你像这个第一个吧,我创建了个漫威一,哎,不是这个是这个V2,对不对,我创建了一个麦V2,把这把这条附达语句给它封装上了,下一次的话,我是不是直接可以用啊,哎,你看这个地方可以直接用,这叫重用,这叫重用。
12:23
好,再往下,那么另外呢,它简化了复杂的思入操作,这个也比较明显,原本我们可能要嵌到好几层次查询,现在我可能就一句话,是不是就完事了,哎,这个叫简化,相当于减少了我们的开发压力哈,相当于将一条复杂思路语句是不是进行了一下拆分啊,任务分解法嘛,任务分解法啊,这是第二点,第三点保护数据,提高了安全性。撒了那个啥意思呢?啊,看上面了哈,然后第三点我们保护数据,提高安全性,这个的话跟大家去解释一下,那它的意思是说,实际上你在使用时,我们如果仅仅只是拿视图来用,你根本不知道它的基表,也就是他的原始表里边有哪些列了,我们是根本不知道的,其实在真实的环境中也经常是这样,假如说哈,举个例子,呃,你比方说这个,呃,中国移动它是不是应该保存了所有的手机用户的一些详细信息啊,当时你去这个申请手机号的时候,应该保留的你很多身份证号啊等等啊这些对不对啊,但是可能呢,比方说有一些这个其他的系统,那么要跟中国移动去合作,那么这个中国移动呢,需要去提供一些这个信息,但是他只能去提供谁呢?是不是你的手机号能听懂吧,还有联系人的名字,你其他的一些详细信息,身份证号啊,家庭住址这些是不是就不会提供了呀,你这些都提供就坏事了,对不对。
13:52
啊,也就是他只提供给对方一些对方想要到的关键信息,能听懂吧,哎,他的原始的那个表里边有哪些列,那其实对方知道吗?不知道也不能让他知道,是不是这样,是不是相对来说保护了我们的数据啊,啊,他是这样的一个意思啊,啊好吧,所以说相当于我的视图和我们原始的基表相分离,提高了它的独立和安全性,这个应该能理解吧?啊好吧,这就是关于视图的好处,跟大家去解释一下。
我来说两句