赞
踩
根据一个表创建一个视图,则这个表称为基表
。
视图的构造基于
基本表
或视图
。
视图可以被嵌套
,一个视图中可以嵌套另一个视图。
视图是一个虚拟表
,相当于SELECT
语句的封装。
套着
羊皮SELECT的
狼视图
创建视图
或者删除视图
本身,不会影响基表。
为了方便查询
。重复三遍,记住,只做查询使用!
当只想给特定人看特定的内容时,使用视图可以简化查询。
形象记忆:视图像个魔法镜子,它只显示允许你看到基表的一部分。
将经常使用的查询操作定义为视图,简化开发时对数据库的操作。
与新建字表相比,可以减少数据的冗余。
视图具有隔离性,保护原始数据,有助于数据安全。
当查询比较复杂时,可以创建多个视图,然后将这些视图的结果进行整合,完成复杂查询。
所以,针对视图,不要整那些花里胡哨的,比如增删改!
视图相当一个虚拟窗口,所以对它进行DML
(增删改)操作时,即直接对基表进行DML
操作。
- 插入数据
INSERT
(基表中字段有约束时,插入数据如果不符合约束,则会插入失败)- 更新数据
UPDATE
- 删除数据
DELETE
视图中的字段,可能在基表中没有对应字段。比如,根据基表计算出的字段
。对于这些字段,是无法执行UPDATE
、DELETE
操作的。
这段话看看就好,实际操作不建议使用!
视图过多时,维护成本高
如果实际数据表的结构变更了,我们就需要及时对相关的视图进行相应的维护。特别是
嵌套的视图
(就是在视图的基础上创建视图),维护会变得比较复杂, 可读性不好,容易变成系统的潜在隐患。因为创建视图的 SQL 查询可能会对字段重命名
,也可能包含复杂的逻辑
,这些都会增加维护的成本。
所以,在创建视图的时候,你要结合实际项目需求,综合考虑视图的优点和不足,这样才能正确使用视图,使系统整体达到最优。
CREATE OR REPLACE VIEW 视图
可以直接用于创建或修改视图
。实际上也基本都是这样写。
.
因为此处还没有讲到修改视图
,所以先简单用CREATE VIEW
进行介绍。
CREATE VIEW 视图名(字段别名1, 字段别名2, ...) -- 如果与查询中字段同名,可以省略起别名`(字段别名1, 字段别名2, ...)`
AS
SELECT 字段1, 字段2, ...
FROM 表名
WHERE 过滤条件
CREATE VIEW 视图名(字段别名1, 字段别名2, ...) -- 如果与查询中字段同名,可以省略起别名`(字段别名1, 字段别名2, ...)`
AS
SELECT 表名.字段1, 表名.字段2, ...
FROM 表名1, 表名2
ON 表名1.字段 = 表名2.字段;
WHERE 过滤条件
把视图
看做表
去写代码就好了,代码上没啥区别。
SHOW TABLES;
DESC 视图名称
SHOW CREATE VIEW 视图名称
SELECT *
FROM 视图名
查看视图信息(显示数据表的存储引擎
、版本
、数据行数
和数据大小
等)
SHOW TABLE STATUS LIKE '视图名称';
执行结果显示:注释Comment为VIEW,说明该表为视图,其他的信息为NULL,说明这是一个虚表。
常见题目:将...限制在...范围内
OR REPLACE
就行可以直接用这段代码进行创建或修改视图
。
CREATE OR REPLACE VIEW 视图名
AS
针对基表的查询语句
ALTER TABLE 视图名
AS
针对基表的查询语句
DROP VIEW IF EXISTS 视图名
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。