什么是视图
视图是一张虚拟表,它是基于SQL语句的结果集的可视化表
创建视图
语法
CREATE VIEW 视图名
AS SELECT 列名
WHERE 条件;
代码示例
CREATE VIEW v_stu AS SELECT s_name FROM students;
查看视图
查看所有的表时视图也在其中
代码示例
SHOW TABLES;
查询视图
语法
SELECT * FROM 视图名;
和查询表时是一样的
代码示例
SELECT * FROM v_stu;
注意: 视图总是显示最近的数据。每当用户查询视图时,数据库引擎通过使用 SQL 语句来重建数据
更新视图
语法
UPDATE 视图名 SET 列名=新值 WHERE 条件;
将名字为“张三”的改名为“张三三”
代码示例
UPDATE v_stu SET s_name='张三三' WHERE s_name='张三';
有下列内容之一,视图不能做修改
- select语句中包含distinct
- select语句中包含group by子句
- select语句中包含order by子句
- where子句中包含相关子查询
- from子句中包含多个表
- 如果视图中有计算列,则不能更新
- 如果基表中有某个具有非空约束的列未出现在视图定义中,则不能做insert操作
删除视图
语法
UPDATE 视图名 SET 列名=新值 WHERE 条件;
代码示例
DROP VIEW v_stu;
视图的作用
- 视图隐藏了底层的表结构,简化了数据访问操作,客户端不再需要知道底层表的结构及其之间的关系
- 提高了安全性能,可以针对不同的用户,设定不同的视图,使用户只能看到视图所显示的数据