一 视图
什么是视图?
视图是由一张表或多张表的查询结果构成的一张虚拟表。
为什么要有视图?
将复杂常用的查询结果保留下来重复使用。(将一张大表拆分成很多小表)
语法:create view 视图名[(查询字段的名字们)] as (查询语句)
eg1:建立一张emp表的视图表(数据与emp一致)
create view new_emp as (select * from emp);
注意:1.查询的字段们要与查询语句的查询字段对应
2.create or replace :视图没有则被创建,有则被替换
eg2:利用替换修改是视图表,要求为new_emp中只有id、name字段
create or replace view new_emp(id,name)as (select id,name from emp); +----+----------+ | id | name | +----+----------+ | 1 | egon | | 2 | yanghuhu | | 3 | sanjiang | | 4 | owen | | 5 | liujie | | 6 | yingjie | +----+----------+
视图的修改
alter 等价于 create or replace,这两个语句语法一致
eg3:利用alter修改是视图表,要求为new_emp中有id、name、salary字段
alter view new_emp(id,name,salary) as (select id,name,salary from emp); +----+----------+--------+ | id | name | salary | +----+----------+--------+ | 1 | egon | 3 | | 2 | yanghuhu | 2 | | 3 | sanjiang | 10 | | 4 | owen | 88888 | | 5 | liujie | 8 | | 6 | yingjie | 1.2 | +----+----------+--------+
视图中的字段操作(注意:不允许alter操作字段)
alter table new_emp rename new_emp1;
alter view new_emp modify id tinyint;
两个都会报错,因此视图中的字段无法操作。
视图中记录的操作:等价于普通表,完成增删改查,操作的是实体表即改是视图表的数据不会随着表(数据库表)的更新而变化,除非重新创建。
视图的删除:
drop view 视图名;
视图表(虚拟表)的作用:用于数据库中表的查询。
二 触发器