标签:
视图是对磁盘上保存的表数据的抽象,即抽取一个表或多个表的部分行或列的数据,展示给使用者。
首先列举下MySQL中最简单的对视图操作的语法:
1、创建视图:
create view 视图名 as select语句 例如: create view v_fruit as select name,place,weight from t_fruit where weight<=12;
据我所知,“as”后面的语句肯定都是以“select”开头的,可以理解成视图的创建结果就是一张新的表格,表格里面有哪些东西呢,就是select语句的结果;另外这张新的“表格”的字段与“select”后面的名字对应,在上例中就是name,place,weight,但是也可以用as或省略as的别名形式,改变新“表格”的字段名,例如:
create view v_fruit as select name myname,place as myplace,weight from t_fruit where weight<=12;
这样,“新表格”的包含的所有字段名就是myname,myplace,weight
上面的视图是在一张表的基础上创建的,也可以根据多张表连接查询,或者根据其他的视图创建
2、使用视图:
视图一旦创建,操作起来就跟表格一样,爱怎么玩就怎么玩,至少你往编辑器里面输语句,肯定不会报错。实际执行阶段就不一样了,对于select from的查询操作,肯定不会出任何问题;但是对于增、删、改,因为视图实际存储的只是定义,这三个操作会改动底下的实际的表格,而你看到的view,里面的数据可能来源于好几个表格,也有可能是通过和、平均数等计算得到的,一旦insert、delete或者update,改动就会特别复杂。为了保险起见,对于一些情况,增删改直接会被MySQL系统判定为误操作,无法成功。这里修改失败的情况特别多,只列举几个,比如改动涉及到两个或两个以上的表会失败,改动后not null的列没有值会失败,view的列值通过sum、count等计算得到的会失败。
3、修改视图:
有两种方法,一种是常规的alter,另一种可以跟创建视图的共用
①alter方法,只需把创建时的create改成alter就行,比如:
alter view v_fruit as select place as myplace,weight from t_fruit where weight<=12;
②第1点创建视图里面漏了没说,实际上存在创建和修改视图可以共用的方法:create or replace,只要把create换成这3个单词,其他不要变
create or replace view v_fruit as select place as myplace,weight from t_fruit where weight<=12;
4、删除视图:
drop view 视图名; 或者 drop view 视图1,视图2,...
5、查看视图各字段的定义:
describe 视图名; 或者 desc 视图名;
更深层次分析未完待续。。。
标签:
原文地址:http://www.cnblogs.com/zhinengfeiyu/p/4844725.html