视图的定义
- 视图的本质是一种虚拟表,其内容与真实的表相似,包含一系列带有名称的列和行数据。但是,视图并不在数据库以存储的数据值形式存在。行和列的数据来自定义视图的查询所引用基本表,并且在具体引用视图时动态产生。
- 视图特点:
- 视图的列可以来自不同的表,是表的抽象和在逻辑意义上建立的新关系。
- 视图是由基本表(实表)产生的。
- 视图的建立和删除不影响基本表。
- 视图的修改会影响到基本表。
- 当视图来自于多个基本表时,不允许添加和删除数据。
创建视图
基本语法
CREATE VIEW view_name
AS 查询语句;
例:在t_prod表中,创建一个查看id,pname的视图
查看视图
- SHOW TABLES查看视图名:
SHOW TABLES;
- SHOW TABLE STATUS查看视图详细信息:
SHOW TABLE STATUS [FROM db_name] [like 'pattern'];
- SHOW CREATE VIEW语句查看视图定义信息:
SHOW CREATE VIEW view_name;
- DESC|DESCRIBE语句查看视图设计信息:
DESC|DESCRIBE view_name;
- 通过系统表查看视图信息:
USE information_schema;
SELECT * FROM company
WHERE table_name='view_prod' \G
删除视图
DROP VIEW view_name;
修改视图
- CREATE OR REPLACE VIEW语句修改视图
CREATE OR REPLACE VIEW view_name
AS 查询语句;
例:替换视图对象
- 通过ALTER语句修改视图
ALTER VIEW view_name
AS 查询语句;
利用视图操作基本表
- 查询数据:
基本语法:
SELECT * FROM view_name;
- 利用视图操作基本表数据:
- 我们不仅可以对视图进行数据查询,我们还可以对视图进行更新(添加,删除,更新)数据操作。由于视图是虚表(也是表),所以对视图数据进行的更新操作,实际上是对其基本表进行更新操作。
- 对视图的更新数据得注意以下两点:
- 对视图数据进行添加、删除和修改操作直接影响基本表。
- 视图来自多个基本表时,不允许添加或删除数据。
实验证明
-
添加数据操作
-
删除数据操作
-
更新数据操作
如果是两个表联合封装产生的视图就不能对其进行更新操作