MySQL数据库中视图和触发器

create简介

说真的,第一次听说视图的时候,我想起的是图形化管理工具。你可能直到创建数据库用create database 数据库名,你也可能知道创建表用create table 表名,今天就再让你多知道两个,创建视图用create view 视图名,创建触发器用create trigger 触发器名

视图

视图是什么,视图其实就是一张虚拟表,一张从别的表中导出的一张不完整的虚拟表,视图有什么用,当我们经常查询一个表中的某几个字段的时候,我们可以把这几个字段单独导出一个视图,以后查询的时候直接可以select *,在数据库中只存放了视图的定义,没有存放视图的数据,视图是依赖原来表中的数据的,原表中的数据一旦发生变化,视图查询出的及俄国也会跟着变化。下面进行创建一个视图。
首先我们需要一张视图所以来的表,这里以bank表为例
在这里插入图片描述
这里我们以name和money两个字段创建视图

create view bankview 
as select name,money from bank;

进行查询name和money的时候,可以直接从视图中查询。
在这里插入图片描述
desc bankview;,查看视图结构
在这里插入图片描述
drop view bankview;删除视图
在这里插入图片描述

触发器

触发器是由事件来触发某个操作,这些事件包括,insert、delete、update语句。当数据库执行这些事件时,就会激活触发器执行相应的操作。
我们需要一个表,这里用bank表,用来对该表进行增删改操作,另外需要一个banklog表,当对bank表操作的时候,会激活我们的触发器,对banklog表做出相应的操作。
在这里插入图片描述

create trigger autoSaveTime before insert 
on bank for each row 
insert into banklog(bankTime) values(now());

这条语句的意思是,创建一个触发器名字是autoSaveTime,在bank表的任意行执行insert语句之前会激活触发器,并执行insert into banklog(bankTime) values(now());语句。
下面我们对bank表进行一个inser操作,可以看出,激活了触发器,并执行了那条语句。
在这里插入图片描述
下面演示delete操作

create trigger typelog after delete 
on bank for each row 
insert into banklog(bankTime) values("delete");

意思是再执行delete操作后,会触发insert语句。
在这里插入图片描述
查看触发器
show triggers;
删除触发器
drop trigger 触发器名

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

贺志营

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值