视图
视图是一个虚拟的表,其内容由查询来进行定义。视图的数据变化会影响基表,基表的数据变化也会影响视图。
注意,视图不是一个真正的表,但是我们可以使用和表一样的操作来查询它。
创建视图
create view 视图名 as select 语句
注意,视图名不要和基表的名字相同。
下边我们创建两个表,并插入数据
create table test( id int, name varchar(10) );
mysql> insert into test values(1,'w');
Query OK, 1 row affected (0.01 sec)
mysql> insert into test values(2,'h');
Query OK, 1 row affected (0.00 sec)
create table data( didi int, erer varchar(10) );
mysql> insert into data values(6,'zzz');
Query OK, 1 row affected (0.00 sec)
mysql> insert into data values(7,'qqqq');
Query OK, 1 row affected (0.01 sec)
如果我们频繁的进行表查询的时候,我们可以通过视图来进行查询,并且,修改视图后原表也会变化哦
视图规则与限制
- 与表一样,必须唯一命名(不能出现同名视图与表名)。
- 创建视图数据无限制,但要考虑复杂查询创建为视图之后的性能影响。
- 视图不能添加索引,也不能添加关联的触发器或者默认值。
- 视图可以提高安全性,但必须有足够的访问权限。
- order可以用在视图中,但是如果从视图中检索数据select中也含有order,那么视图中的order by将被覆盖。
- 视图和表可以一起使用。