一个视图是一个或一组SQL语句,存储在数据库中相关的名称,一个视图实际上是一个预定义的SQL查询中的表的形式组成。
一个视图可以包含一个表的所有行,或选择表中的行,从一个或多个表上写SQL查询创建一个视图,视图可以被创建。
这是一种虚拟表的视图,允许用户执行以下操作:
1:发现自然或直观的用户或用户类的结构数据的形式
2:限制访问的数据,例如,用户可以看到和修改正是他们所需要的并没有更多
3:总结从可以用于生成报告的各种表的数据
4:视图不允许增删改操作 只可以查看
创建视图:
使用create view语句创建数据库视图,从一个单一的表,多个表,或另一个视图也可以再创建视图,要创建一个视图,用户根据具体的实施必须有相应的系统权限。
基本的create view语法如下:
1,创建视图
--格式:CREATE VIEW 视图名称 AS SQL语句 CREATE VIEW v1 AS SELET nid, name FROM A WHERE nid > 4
2,删除视图
--格式:DROP VIEW 视图名称 DROP VIEW v1
3,修改视图
-- 格式:ALTER VIEW 视图名称 AS SQL语句 ALTER VIEW v1 AS SELET A.nid, B. NAME FROM A LEFT JOIN B ON A.id = B.nid LEFT JOIN C ON A.id = C.nid WHERE A.id > 2 AND C.nid < 5
4,使用视图
select * from v1
5,使用视图时,将其当作表进行操作即可,由于视图是虚拟表,所以无法使用其对真实表进行创建、更新和删除操作,仅能做查询用。
在使用过程中正常的SQL select查询,可以包含多个表的select语句中的方式非常相似。
性能问题
因为视图不包含数据,所以每次使用视图时,都必须处理查询执行时所需的任一检索。如果你用多个连接和过滤创建了复杂的视图或者嵌套了视图,可能会发现性能下降的厉害,因此,在部署使用了大量视图的应用前,应该进行测试。
视图用create view语句创建
使用show create view viewname;来查看创建视图的语句。
用drop删除视图,其语法是drop view viewname
更新视图时,可以先用drop再用create,也可以直接用create or replace view。
视图是可更新的,即可以对它们使用insert,update和delete,但并非所有的视图都是可更新的,有局限性。