一、定义(DDL)
视图是一张虚拟表,是有一个或多个表的查询结果集创建(可以将视图理解为查询结果的快照)
作用:
使操作复杂的查询语句更简单化
好处:
1.简单,所见即所得
2.安全,将敏感字段隐藏
3.具备自己独立的逻辑结构(视图可以嵌套使用)
缺点:
1.性能不高(操作视图的同时还要看原表,使简单的操作变的更麻烦)
2.维护困难(视图的增删改查会改变原表数据,多表查询结果无法进行增加和删除,但可以更新)
1.1创建视图
create view 视图名 (列名字)as 查询语句
在多表查询时,select的结果集合中不允许出现相同的列名,否则视图无法创建
1.2修改视图
1.2.1 覆盖
create or replace view 视图名 as 查询语句
1.2.2 alter关键字
alter view 视图名 as 查询语句
新添加的列会添加在原有列的后面
1.3删除视图
drop view 视图名
二、操作视图(DML)
视图就是一张虚拟表
对视图中的数据进行增删查改的操作
对单表结果集合创建的视图,可以进行增删查改,所有的操作会直接影响原数据
对多表的结果集合创建的视图,可以查询和修改,但是绝不允许增加和删除,如下图会报错
视图是可以嵌套使用的,但不要超过三层
2.1单表
2.1.1增:
插入行,要求包含所有非空字段的值,
插入后,该视图,原表,引用该视图的视图都会更新
insert into 视图名 (列名1,列名2) values
(内容1,内容2);
2.1.2删
delete from 视图名 where 条件
该视图,原表,引用该视图的视图都会更新
2.1.3改
update
2.2 多表
2.2.1查
2.2.2增删是不可以的,会报错