MySQL学习:
MySQL视图
1.什么是视图?
MySQL视图是虚拟的表。与包含数据的表不一样,视图只包含使用时动态检索数据的查询。
视图仅仅是用来查看存储在别处的数据的一种设施。视图本身不包含数据,因此它们返回的数据是从其他表中检索出来的。
在添加或更改这些表中的数据时,视图将返回改变过的数据。
2.为什么使用视图?
- 重用SQL语句
- 简化复杂的SQL语句
- 保护数据
- 让数据更加清晰
3.使用视图
- 创建视图
使用CREATE VIEW语句来创建。
CREATE VIEW 视图名[(列1,列2,列3...)]
AS SELECT 列1,列2,列3...
FROM 数据表1,数据表2...
eg:
CREATE VIEW
productcustomers
AS SELECT
cust_name,
cust_contact,
prod_id
FROM
customers,
orders,
orderitems;
- 删除视图
用 DROP VIEW 视图名 来删除
DROP VIEW 视图名;
- 更新视图
使用 CREATE OR REPLACE VIEW 语句。
若要更新的视图不存在,则会创建一个视图;若存在,更新语句会替换原有视图。
CREATE OR REPLACE VIEW 视图名
AS SELECT 列1,列2...
FROM 数据表名;
若想更新数据,可以对它们使用INSERT、UPDATE和DELETE。
但如果视图有如下定义,则不能进行视图更新:
- 分组(使用GROUP BY和HAVING)
- 联结
- 子查询
- 并
- 聚集函数(MIN()、COUNT()、SUM()等)
- DISTINCT
- 导出(计算)列
- 查看视图
查看视图数据就当作查看一般表一样就行了。
查看视图结构用 DESC 视图名 或 SHOW FIELDS FROM 视图名
SHOW FIELDS FROM 视图名;
或
DESC 视图名;
若有不当之处,欢迎指正!