00:00
说关于视图结构的创建,查看和删除,还有修改,那么我们接下来来去做一下视图的更新,什么叫做视图的更新呀,这个呢,不是说更改我们视图里边的搜Q逻辑,我们是想更改我们视图中的数据啊,什么意思嘞,假如说我现在有一个视图,我们看一眼去咱们这个地方呢,看有没有视图了,还有是吧,比方说我这个视图的话呢,嗯,就叫做ERP where,对吧,我们换一个吧,要不我还得改里边的东西啊,那我先建一个去create or place will,比方说我叫my we可以吧,我把原来里边的视图,我这个没没用的,我都先删一下哈,免得影响我啊,ERP是不是叫做VR啊,看是不是可以这么删了的,好成功,那我建一个去,我先建一个简单的,那我就叫做。
01:00
Select last,呃,Select last name email好,再来一个salary可以吧?啊,比方说来一个年薪吧,这个感觉上还好一点,是不是?那乘以12乘以谁来着,衣服买错了,乘以一加上一加上衣服no,对吧?你像这个也就可以放到视图嘛,叫啥可is山pack逗号零好,我们起上一个名叫做年薪annual对不对,Annual salary是应该这样叫吧,嗯,Annual salary好,然后再from我们的1LO表可以了,这是我创建了一个新视图,我们执行,那么我们视图的攻心是指第一,它也可以实现插入数据,哎,怎么着实现呢?我们看一下哈,首先呢,我们先看一下现在它里边的数据,From my v1对吧。
02:00
啊,然后我们看一下,诶,错了,MYV1啊,然后我们查看查看是没毛病的,肯定能行,是不是就这些数据啊,一共107行,对不对啊好,那么现在呢,我想做一个插入,插入的语法跟我们表的插入语法一样,Insert into my we in啊,当然你也可以加列名,你不加也行,Y6括号值可以这样写。那咱们就要找一个人呗,比方说这个里边我想插入叫做张飞同学,然后呢,邮箱给他来一个,随便来一个张飞是不是,嗯,qq.com然后呢,年薪给他来一个吧,多少钱呀,你想要多少钱是不是,嗯,好,我们去执行啊,啊来看哈,他这个是说我这个目标目标的这个MAV1,他说了是不是不能去更新呀,啊这个就说明有的不能更新,但是他没有报我的语法错误,对吧,他是说他不能更新啊,那我们换一个能更新的啊,一会儿会告诉你们有的的确不能更新,呃,我们找个简单的,我这个还比较复杂是吧?啊对,把年先去一下,行,然后现在呢,我们再去执行。
03:23
其实这是不是还是漫位一啊,嗯,看着我们整了一个简单的,然后再做插入去啊,我们去执行成没成功,成功呢,也就是我就想给你试一下这个in特的语句能不能在视图里边用可以用好可以用的话呢,我们去查看它里边的这个数据呢,有没有张飞了,有,那我问你原始表里边有没有没有没有没有,大家都说没有是吧,这个是有的,好来看一下有没有有别的字段默认是不是就是no啊,那个联没有对呀,所以说它那个没有办法插入呀,是不是他没有办法插入它也可以,是不是对我的这个原始表是不是生成更新呀,哎,也可以哈,行,这是插入,我们再试一下修改能不能好使。
04:24
修改修改,当然也行,Update我们的MYV1SET一下,我们的这个应该叫做last name,我们把张飞改成吧,张无忌好,然后where,我们的这个last name是不是等于张飞好,那行了,我们看一下能不能更改,是不是也能成功呀,先看一下。好,改没改,改了它的原始表也改了,这个是对我们的原始表也可以更新的,看到了吧,嗯,行吧,张无忌也没什么用了,所以第三步我们干嘛删除delete from,我们的my we where,对,Last name等于张无忌啊行,这个删除也有效执行,对吧?啊然后同样呢,我们先看一下这个先看视图吧,执啊也就是告诉你增删感它也是使用这样的语法,而且会更改我们原始表没了吧啊那有的同学说老师这这也不太好,对吧?啊,不安全是不是啊,不安全,所以往往啊,我们会为试图添加权限,它的权限是只允许读,不能更新,能听懂吧,往往呢,假如说你这个数据你不想去。
05:56
呃,对,他的这个原始表产生一些这个更新呀,其实一般来讲视图的话,会给他添加这样的一个只读的权限啊,就算你不添加只读的权限,我们也很少这样去做,为什么呢?因为一般的这个视图里边保存的语句它是不允许更新的,我刚才举的这个例子是不是一个非常非常简单的语句啊,所以增删感是不是都好使啊,对不对啊,但是假如说你的视图里边它涉及到的查询语句具备这些特点就不能更新了,而你发现具备这些特点的语句基本上就是全部了,对吧?所以这也就是说刚才咱们的insert update和delete视图很少用,对不对,很少用啊啊,那基本上没什么应用场所啊,那接下来呢,我们就试一下什么样的视图是不允许增删改的,不允许。
06:56
自然感的,哎,我们把这几点呢,跟大家去写一下,验证一下啊,写到这来啊,那意思是说,呃,具备我们以下特点的,以下特点的视图实际上是不允许更新的啊,哪些特点呢?啊,就是这些能看到吧,啊好,我们一个一个来看,首先呢,其实我可以这样哈,可以这样,哎,这是第一点,是不是叫做包含,哎,我可以这样句是是不是包含这个叫做以下关键词,比如说分组,Distinct group或者having,还有联合呀,我就随便挑一个吧,咱们挑哪个呀,挑一个来试就行了,如是吧,来注意看哈,那么我就create or replace跟上了哈,哎,Will,然后比方说我们有了那个MYV1了,我叫MY,有有MYV1吗?啊,要没有的话,我就直接叫他了。
07:56
好,把这个删了吧,不就没了吗?好,这样就连上了是不是as哈s select的,然后我们来一个比方说求一下那个最高工资salary可以吧?好,跟着想哈,Department ID from我们的employee表是不是加上一个group bad department ID啊好了,那么这个的话就是一个简单的视图已然做完,那做完了之后执行说明是不是有了视图了,有了视图之后呢,我们先查看一下哈,Select的星号from我们的麦V1好,我们去查看这是这个视图,假如说这个视图呢,我想做一个更新,对吧?啊,请做一个更新啊,看一下能不能行啊,更新是不是包含insert update和delete呀啊。
08:49
总之只要有一个不行就说明不允许啊,那比方说我们做一个update可以吧,嗯,它这个连个别名也没起啊,我叫一个M,再直行一遍就行,可以这样干吗?哎,这样我们的视图的话,是不是这个列就叫M了,我update一下my VE set m,比方说等于9000 where,我们的department ID等于十,可以这么干吧,按说是可以的,对不对?但是由于你的视图里边包含可如何办?还有分组函数,所以说这条语句,哎,看一下是不是不行啊。
09:31
对不对,看一下这个错误,他的意思是说我们是not AB是不是不允许更新呀?嗯,它是这样的意思哈,好,那跟上吧,然后接下来我们看第二种情况,敞量视图,什么叫敞量视图啊,第二个图。啊,那意思是说我们create will create这样写全or replace will my will了,对不对,As,我们Li的后面就是个常量,假如说是join,起个别名叫做那个name可以吧,啊,完事,哎,那么现在呢,我再去执行,好,然后呢,我们再去做一个谁呢,是不是岔开呀,好,我们粘过来哈。
10:16
把这个拉上面,好我们查看一下是不是,诶错了哈,这应该是my where,好,是不是找握就是这个事啊,那这个常量视图我要做个更新,比方说update可以吧,My way2set一下name,比方把join改成Lucy,能看明白吧,你就一个值,我就不加Y条件了,是不是还是报这个错误。没问题吧,哎,这个叫敞量视图,不能更新,哎,我试一遍,其实你们下面就不用试了啊,行,然后接下来我们看第三什么叫做select中包含查询,咱们学过吧,好,那它的意思是说create a replace will my删了对不对?As,好,我们来一个比方说我的select,我故意这个地方加上一个子查询select count的星号可不可以啊,对吧?啊,或者你加别的也行啊,比方加一个mass salary啊,好,From我们的employees表行吧?啊,然后起了一个别名,这个叫做最高工资可以吧啊。
11:36
啊,其实我我我也没必要加别的了,对不对,这就是一个slide后面加字查询吧,嗯,就完了,来现在我们去尝试,我这样写语句没问题吧,能看懂是不是啊好,那么现在呢,我再去做一下更新,当然了,你也是先查看一下呗,看一下它是什么,我们好更新呀,MYV3是不是这样写啊,这不就找这个事,你想想它也不能更新呀,是不是啊,你这个你update一下my way3set一下最高工资等于比方说1万哈,哎,这这不是1万了,10万是不是也不行啊啊想想也不难。
12:24
没问题吧?咋了?这句话有的还没看明白是吧?看明白了吗?啥哪没看明白没有,我不一定非要from,那这个是不是也没呀?因什么时候才用,是不是我查询的列表中涉及到了表呀,也就涉及到你必须来自于模表,而我这个地方人家已经能够查出来了呀,我用不着表了呀,对不对啊,对,这就是一个具体的值已经有了,对不对啊,它不需要表,它就已经有了对不对,你可以把它理解成是不是一个常量了呀,啊,已经查出来了,你就不用from表了,你假如说我这要是再来一个什么department台第一能听懂吧,这个时候就相当于你的查询列表是不是两个呀,一个是它,是不是一个是它呀?啊,你这个是不是必须来自于表啊?
13:27
那你就得加from表了,对不对啊,他是这样的,你看你要是不加它报错呀,是不是报错啊,你这个时候就得怎么着呀,From我们的哪个表了,比方说department次表对吧?好,我们现在呢,再去执行看是不是可以了啊,它这样的一个意思哈,对吧?嗯。行了,然后再去看那个,这应该是第四点了啊,所以在做这个的过程中,是不是相当教了大家很多的特殊的语句啊,好,Create or replace will my way4对不对,As,它是说里边是不是用上drawing呀,这个简单select last name,比方说department name from,我们的lo词表,其实它不一定是用上draw哈,只要是连接都算,也就是逗号的那种啊,也就是S9日语法能听懂吧,啊,那个也不行,那个也不行啊,也不能更新,嗯,那么我就先试这个的吧,照应一,我看谁在那没好好听啊,啊,我这个鲍笔希就过去一巴掌啊,你看我。
14:51
这讲的这个满头大汗的是不是行了,来看上面哈,我这是不是用上了join呀啊,那我在这再去执行成功了,能不能更新呀,对,肯定是不能的,那我们比方试一下啊,呃,这个的话,他印象中呢,它是好像是可以去这个更新,但是不能插入啊,我们试一下,呃,你比方说我要做个更新,当然你得先看一下它的表啊,长什么样,但是你不能插入,或者说不能删除,或者说不能更新,是不是都不能,都都可以成为叫做不能更新啊,都可以这样去叫啊好,你比方说我们做一个update吧,Update一下MY4吧,Set一下last name等于呃,改成张飞啊,Where last name等于hall。
15:52
烟好,我们看一下,你看是不是能能能能update呀,但是我们来试一下insert,我先查看一下哈,是不是改了呀,啊,我们试一下insert into my way4是不是values啊啊好,这个地方呢,比方说我们加上俩值嘛。
16:15
嗯,陈真逗号不明不明名XX,好,我们再去执行啊,你看这已经写了count insert into是不是不行了啊,所以它也可以称为不能更新了,对不对?嗯,虽然update没报错,谁没事跟update去啊,咱们就统称为不能更新了,能听懂吧?啊好,这是关于它在第几个了五哈,第五点,那么我们看一下from,一个不能更新的视图,什么意思啊啊,不是说常亮,是说那个你呀s select的哎,From后面加的是一个视图,而且这个视图是不能更新的,比方说man为字,或者说man。
17:15
A3是不是这样的一个感觉啊啊,当然你也可以再加入外之类的哈,我就简单起见不加了,好,你看这个是创建,创建肯定行呀,是不是创建完了我们是不是要看更新呀,Select的星号from谁呀?My way5好,是不是找这个事啊,那你就去update一下MYV几啊五我们算一下最高工资等于比方说1万啊然后Y2谁呢?我们的这个,呃,对,因为我我刚才是不是随便写了一个那个这个东西啊,所以都是两万四啊好,那where,我们的department ID等于比方说60的可以吧啊总之我随便加了一个再去执行能行吗?不行,Is not after。
18:15
遇到这个错误就要知道,说明我们的视图不能更新,好最后一个这个还挺麻烦的,谁给我举个例子,Where子句的子查询引用了from子句中的表,咱们学过这样的哈,学过这样的词,口语句就讲子查询的时候看能不能想的上来。就是你创建的那个视图里边的查询具备这样的特点,好,我们来一下它呀,比方说我举一个例子哈,它是说,呃,我这个我这个外二子居里边首先是不是用到了子查询啊,你子查询肯定也会个表吧,你的表和你本身的外边的查询语句中的那个表是一样的,比方说我举一个场景,呃,咱们其实经常用,呃,假如说我要查询我们领导,所有领导的那个信息,领导的信息是不是包含领导的名字和邮箱等等啊啊,我要查询这个,那我怎么写了select,呃,Last name逗号,比方说email,比方说salary,对不对,From我们的employees表,然后where,谁呢?Where我们的employee。
19:45
对啊,第一啊,看这个语句,我估计有的同学也不会了,In这个咱们讲过in是不是就看一下谁是领导呀?嗯,这怎么写,Select manager ID from in employs where,我们的,呃,这个major ID不等于not吧,行不行,Where major ID is not not,并且可以去一下重啊,我先不加他呢,因为咱们是不是就试一下不能更新啊,那加了他你还以为是个事儿呢,对不对啊,我就不加他哈,行,那咱们不加他呢,咱们执行一下。
20:28
啊,能成功是吧,能成功呢,咱们看一眼去select星号from my v6好吧,然后再去看是不是就长这个事了呀,那咱们就更新一下呗,更新这个地方就是update我们的MYV6 set一下salary吧,等于1万好Y2呢,我们的last name,比方说等于K对吧?嗯,行,我们再去执行能行吗?哎,还是已经not。
21:04
能看明白吧,嗯,好吧,那到现在为止的话呢,咱们就说明白了哈,呃,我们一共有六种情况,它是不支持我们视图的更新的,这个更新有可能不支持你插入,有可能不支持你update,也有可能不支持你删除,但是咱们就都统称为不能更新,明白吧?啊那所以说从这个角度上来讲,基本的这个视图是不允许更新的,因为我们基本的这个视图里边用到的语句是不是它都包括了呀,你说他连连接也不能做,连分组也不能做,对不对啊,然后基本上你就不用视图了,是不是啊,好吧,那这个就说到这哈,我们停一下,嗯。
我来说两句