视图
- 视图概念
视图是存储的查询语句,当调用的时候,产生结果集,视图充当的是虚拟表的角色。其实视图可以理解为一个表或多个表中导出来的表,作用和真实表一样,包含一系列带有行和列的数据 视图中,用户可以使用SELECT语句查询数据,也可以使用INSERT,UPDATE,DELETE修改记录,视图可以使用户操作方便,并保障数据库系统安全,如果原表改名或者删除则视图也失效。
- 创建视图
语法结构:CREATE [OR REPLACE] VIEW [view_name] AS [SELECT_STATEMENT];释义:CREATE VIEW: 创建视图
OR REPLACE : 可选,如果添加原来有同名视图的情况下会覆盖掉原有视图
view_name : 视图名称
SELECT_STATEMENT :SELECT语句e.g.
create view good_student_view
as select name,age,score from class
where score>=80;-- 如果视图是针对多张表创建不要写操作
create view student_hobby_view
as select class.name,score,hobby,price
from class left join hobby
on class.name=hobby.name;
-
视图表的增删改查操作
视图的增删改查操作与一般表的操作相同,使用insert update delete select即可,但是原数据表的约束条件仍然对视图产生作用。
-
查看现有视图
show full tables in stu
-
删除视图
drop view [IF EXISTS] 视图名;
IF EXISTS 表示如果存在,这样即使没有指定视图也不会报错。
drop view if exists hobby_stu;
-
修改视图
参考创建视图,将create关键字改为alter
alter view good_student_view as select name,age,sex,score from class where score>=85;
-
视图作用
- 作用
-
是对数据的一种重构,不影响原数据表的使用。
-
简化高频复杂操作的过程,就像一种对复杂操作的封装。
-
提高安全性,可以给不同用户提供不同的视图。
-
让数据更加清晰。
- 缺点
- 视图的性能相对较差,从数据库视图查询数据可能会很慢。