视图的概念视图View是虚拟存在的表,与实际表一样,视图也由列和行组成,但视图实际上不存在于数据库中。 行和列数据来自定义视图的查询中使用的表,并在使用视图时动态生成
数据库只存储视图定义,不存储视图数据
当实际表中的数据发生变化时,视图中显示的数据也会发生变化
视图与数据表不同,不同之处在于
视图是虚拟表,而不是数据库中的实际表,其结构和数据基于对数据中实际表的查询。 存储在数据库中的查询操作SQL语句定义了当视图查询引用的实际表引用视图时,视图的内容列数据和行数据是动态生成的。 视图中没有实际物理记录且未作为数据集存储在数据库中的数据实际上存储在视图引用的实际表中。 视图是数据的窗口,表是内容。 表是实际数据的存储单位,视图只是以不同的显示方式显示数据的数据源或实际表。 视图是显示数据表的一种方式,通过该方式可以查询数据表中由某些字段组成的数据只是SQL语句的集合。 从安全性的观点来看,视图的数据安全性更高,使用视图的用户在不接触数据表的情况下不知道表结构。 创建和删除视图只影响视图本身,而不影响相应的基本表。 视图角色视图简化了用户的操作视图。 用户可以从多个角度看到同一个数据视图,为数据库的重建提供一定程度的逻辑隔离视图。 通过保护敏感数据和合理利用视图,可以更清楚地表达查询视图的缺点
在不提高查询速度的情况下提高维护成本
您必须具有足够的访问权限才能创建注意事项视图。 创建的视图数量没有限制。 可以嵌套视图,并通过从其他视图中检索数据的查询创建视图。 不能为视图创建索引,也不能将触发器、默认值或规则与视图相关联。 视图可以与表一起使用。 创建视图视图视图名称
as
查询语句
修改【with check option】视图时,检查插入的数据是否满足WHERE设置的条件。
createviewvasselect * fromstudentjoinstudent1on student.namestudent1. name where age 15更改视图方法1
创建或替换视图名称
as
新建查询
方法2
警示视图名称
as
新建查询
-视图createviewp1as select * from student--视图1 createorreplaceviewp1as select id,namefrom student--视图2alter view p1asselect id
描述视图名称
删除视图drop view视图名称.
更新视图视图从基本表中检索虚拟表的实际数据,因此通过插入、修改和删除操作更新视图中的数据基本上就是更新视图所引用的基本表中的数据。
更改视图就是更改基本表,因此必须进行更改以满足基本表的数据定义。
还有其他几个结构,但这些结构无法更新视图。 具体来说,如果视图包含以下结构之一,则无法更新
聚合函数。 distinct关键字。 group by子句。 having子句。 union或union all运算符。 选择列表中的子查询。 常量视图包含from子句中的不可更新视图或多个表。 where子句的子查询引用from子句中的表。 在algorithm选项中对temptable使用临时表时,视图始终是不可更新的。