MySQL_day4笔记

本文详细介绍了MySQL中的视图、触发器和存储过程。视图作为一个虚拟表,用于封装复杂的SQL查询,提供数据保护。触发器在数据表发生特定事件时自动执行预设SQL语句,确保数据完整性。存储过程则是一组预编译的SQL语句集合,具有执行速度快、安全性高等优点,可用于实现复杂业务逻辑。
摘要由CSDN通过智能技术生成

视图

  • 含义

视图是一个虚拟表,封装了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 
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值