前言
视图的概念,在工作中或多或少的用过,之前一直没有系统的整理这部分内容,我现在想来视图就是一种虚拟的表,和上面DQL子查询中提到的虚拟表概念应该是一致的,视图的行和列的数据来自于定义视图的查询中使用的原始表(真实的表),并且是在使用使用的时候动态生成的,视图只会保存Sql逻辑,不会保存查询的结果。
这样想的话,视图是不是和子查询很像,尤其是像表子查询很像,其实视图说到底它还是一个查询,不过我们再次使用这个查询的时候可以直接通过这个视图就得到了。
视图常用的命令
1 创建视图
/*
CREATE VIEW 视图名(不可以和表名重复)
AS
查询语句
*/
CREATE VIEW no_equal_two
AS
SELECT id,seat,age
FROM grade_new_9
WHERE id !=2;
对于视图查询就和普通表的查询是一样的,可以使用各种查询方式,还可以基于视图来创建新的视图。
如:
SELECT *
FROM no_equal_two
WHERE id=1;
但是视图是不建议进行增删改的,但是并不是不可以进行增删改,而是不建议,这里也不赘述。
2 视图的修改
CREATE OR REPLACE VIEW 视图名
AS
查询语句
这个和创建视图很像,其实基本上一个意思,不过加上OR REPLACE
语句后呢,变成了如果视图存在则替换该原有视图,这样就起到了一个修改视图的作用。当然和DDL语句很像的是,视图也有一个专门修改的语法,那就是下面的这个
ALTER VIEW 视图名
AS
查询语句
这个和上面的语句不同的是,他不可以创建视图。
3 视图的删除
DROP VIEW 视图名[,视图名2,...];
4 查看视图
DESC 视图名;
SHOW CREATE VIEW 视图名;
这样就结束了,这块内容还是很少的,主要是在使用上。