数据库视图和触发器

4.视图:
是一个虚拟的表 有行有列有数据 视图中存的 查询语句
视图中的数据依赖于原数据
当查询的复杂度较大时,多字段,多关系,会导致查询混乱,不利于sql的编写和可读性
会影响sql的拼接,视图就是对查询结果进行记录,视图中只存放语句,不存放结果,类似虚拟的表

优点:
1.简单,视图构建了虚拟逻辑表,这个表的数据来源执行的查询,查询可以来源于多个表,在使用的时候直接使用虚拟表,代替复杂的查询
2.安全,数据库有权限设置,但是没有行和列的权限,所以对于同一个表中完整的数据是否展示就是问题
3.数据独立 相当于在原表的基础上加上一列

缺点:
	视图会降低查询效率 特别是嵌套视图

创建视图:
	create view view_name as (select * from user);

	使用视图 select * from 视图名
	查看视图 show table status where comment='view'
	删除视图 drop view 视图名

5.触发器:trigger
触发器,也叫触发程序,是和表有关的命令数据对象,触发器不需要语句调用,也不需要手动启动,他由事件触发,事件包括 insert update 和delete 语句,当指定表发生指定动作,将激活触发器

创建触发器

	create trigger t_name
	after insert on 表名 for each row
	begin
		sql语句
	end;

# create trigger t_name  创建触发器名字是t_name
# after 触发的时机 
# 事件  insert update delete
# begin 开始
# end 结束
# old 只能在删除事件中使用 

1.修改mysql默认的结束符
\d $

2.创建触发器 当user表中删除一条数据时 将删除的的数据备份到user_bak -- 逻辑删除
create trigger t_name
before delete on user for each row
begin
	insert into user_bak(id,name) values(old.id,old.name);
end; 
$

3.将默认的结束符改回来
\d ;
查看触发器 select * from information_schema.triggers;

删除触发器 drop trigger t_name
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值