目录
视图介绍
视图:将select的结果像表一样保留下来的虚表就是视图,视图不是表,是一种信息,用于查询记录;
创建试图
create view 视图名as select 列名from 表名where条件;
ex:
创建一个简单的视图。员工信息表tb1由员工号(empid)、姓名(name)和年龄(age)组成。试着创建没有员工号、只包含姓名和年龄这两个列的视图v1。
# create view...as 创建为试图;
create view v1 as select name, age from tb1;
select * from v1;
通过视图更新列的值
update v1 set name = '主任·佐藤' where name = '佐藤';
设置条件创建视图
ex:
连接表tb1J与表tb,提取销售额(sales)大于等于100万元的记录,创建由表tb的员工号(empid)和销售额(sales),以及表tb1J的姓名(name)构成的视图v2,然后显示视图v2的所有记录
create view v2 as
select tb.empid,tb1j.name,tb.sales from tb
join tb1j using(empid) where tb.sales >=100;
select * from v2;
格式:显示视图的详细信息
show create view 视图名
限制通过视图写入
向视图v1中插入方法和向标中插入数据的方法:
insert into v1 values ('临时工·石田',18);
select * from v1;
创建v3视图,复制tb图到v3且sales>=100;
create view v3 as
select empid,sales from tb
where sales >=100;
select * from v3;
插入不符合视图条件的记录
insert into v3 values ('恶意刁难',50);
使用select * from v3,则不会显示,若使用select empid, sales from tb;
当与视图的条件不匹配时报错
create view v4
as
select empid, sales
from tb
where sales > 100
with check option;
insert into v4 values('恶意刁难',50);
select * from v4;
无法输入不符合条件的记录;
替换、修改和删除视图
当存在同名的视图时,对其进行替换,使用create or replace view 替换视图:
create or replace view v1
as
select now();
修改试图结构
使用alter view
格式:
alter view 视图名 as select 列名 from 表名;
让当前的视图v1中包含表tb1的列name和age;
例子:
alter view v1
as
select name, age
from tb1;
删除试图
drop view 视图名
ex: 删除视图 v1 使用 if exists
drop view if exists v1;