视图
- 含义
视图是一个虚拟表,封装了select的查询语句,视图是基本表(实体表)的映射。
- 作用
1、封装复杂的sql语句
2、对于数据库敏感信息的保护
- 用法
创建视图:
create view 视图名(view_1)//默认取名view_n
as select 字段名1,字段名2,… from 表名
删除视图:
drop view [if exists] view_1,view_2…
修改视图:
alter view view_1 as select 字段名1,字段名2,… from 表名
- 注意
更新视图,是转到基本表进行更新。
也就是,更新视图的记录实际上是更新了基本表的记录,因此需要对视图进行权限的设置,一般只有只读权限
例:制作一个试图提供给销售人员,只提供商品名称、出售价格、商品类型、产地的信息
create view view_sellSet as
select c.c_name as 商品名称,c.c_outprice as 商品售价,ct.ct_name as 商品类型,c.c_madein as 商品产地
from commodity as c,commoditytype as ct
where c.c_type=ct.ct_id and c.c_outprice is not null;
触发器
- 含义
简单地说,就是一张表发生了某件事(插入、删除、更新操作),然后自动触发了预先编写好的若干条SQL语句的执行;
- 作用
保证数据的完整性,起到约束作用
- 用法
创建触发器
#首先修改命令结束标识符
delimiter $
#创建触发器
create trigger tri_1
after insert on table_name
for each row
begin
#触发的是修改事件
update table_name set field1=value1,... where condition#修改条件;
end $
#结束将命令结束标识符修改回;
delimiter ;
四要素:
监视地点(table_name)
监视事件(insert|update|delete)
触发时间(after|before)
触发事件(insert|update|delete)
- 删除触发器
drop trigger [if exists] tri_1;
- 查看触发器
show triggers;
- 修改触发器
需要先将触发器删除,再新建触发器,详细过程如上
例:写一个触发器 当新增一条订单的时候 自动修改商品表的库存
# 首先修改命令结束标识符'$'
delimiter $
create trigger tri_1
after insert