视图
一、视图是啥?
视图时一个虚拟表,视图并不在数据库中存储数据值,数据库只在数据字典中存储对视图的定义。
1、视图是一个虚拟表(逻辑表);
2、视图中的行和列的数据来自一到多张物理表,也可以来源自其他视图;
3、可以通过视图进行增删改查;
4、如果通过视图进行增删改,那么物理表的数据也会随之做出同样的增删改;反之亦然。
5、视图的使用比较少,起码相对于一般SQL来说,不在一个数量级上;
6、视图是一种”虚表”,所以不能与已经存在的表重名。
二、创建视图
1. 创建视图
CREATE [OR REPLACE] [{FORCE|NOFORCE}] VIEW view_name
AS
SELECT查询
[WITH READ ONLY CONSTRAINT]
2. 语法解析
- OR REPLACE:如果视图已经存在,则替换旧视图。
- FORCE:即使基表不存在,也可以创建该视图,但是该视图不能正常使用,当基表创建成功后,视图才能正常使用。
- NOFORCE:如果基表不存在,无法创建视图,该项是默认选项。
- WITH READ ONLY:默认可以通过视图对基表执行增删改操作,但是有很多在基表上的限制(比如:基表中某列不能为空,但是该列没有出现在视图中,则不能通过视图执行insert操作),WITH READ ONLY说明视图是只读视图,不能通过该视图进行增删改操作。现实开发中,基本上不通过视图对表中的数据进行增删改操作。
3. 视图使用
视图只能进行查询操作,不能进行增删改
3.1 视图修改
SELECT * FROM VU_STUDENT;
3.2 视图删除
DROP VIEW IF EXISTS VU_STUDENT;
3.3 查看视图
//查看视图结构
DESC VU_STUDENT;
//查看某数据库中的所有视图
select * from information_schema.views where table_schema= 'study';
总结
感觉视图好像不怎么用,了解了解就好了