数据库视图、触发器

1.delete和truncate区别

在有自动增长的前提上,用delete清空表后再插入数据,id会从被删除的最大的id+1开始,用

truncate清空表后再插入数据,id会从起始值开始

2.索引

①唯一索引(已存在表)

alter table 表名 add unique index 索引名(作用的字段)

注意:

添加的唯一索引的字段值不可重复

查询的字段值如果不存在于表内,则不会使用唯一索引

②主键索引

注意:

查询的字段值如果不存在于表内,则不会使用主键索引

查看当前表的索引

show index from 表名

③联合索引

alter table 表名 add index 索引名(作用的字段1,作用的字段2)

注意:

联合索引遵循最左原则

④全文索引

alter table 表名 add fulltext index 索引名(作用的字段)

⑤索引的使用原则

数据量少的表不建议使用索引

频繁修改的字段,不建议使用索引

满足唯一索引要求的字段就不建议使用普通索引

3.视图

(1)视图是一种虚拟存在的表,是一个逻辑表,本身并不包含数据,作为一个select语句保存在

数据字典中的。通过视图,可以展现基表(用来创建视图的表)的部分数据,视图数据来自定义视

图的查询中使用的表,使用视图动态生成

(2)使用视图的原因

①简单:使用视图的用户完全不需要关心后面对应的表的结构,关联条件和筛选条件,对用户来说

已经是过滤好的符合条件的结果集

②安全:使用视图的用户只能访问他们被允许查询的结果集,对表的权限管理并不能限制到某个行

某个列,但是通过视图就可以简单的实现

③数据独立:一旦视图的结构确定了,可以屏蔽表结构变化对用户的影响,原表增加列对视图没有

影响,原表修改列名,则可以通过修改视图来解决,不会造成对访问者的影响

总而言之,使用视图的大部分情况是为了保障数据安全性,提高查询效率

(3)创建视图,视图可以嵌套视图

create view 视图名 as select 语句

(4)修改视图

alter view 视图名 as select 语句

(5)创建时覆盖原视图

create or replace view 视图名 as select 语句

(6)查看创建的视图信息

show create view 视图名

(7)查看视图中字段信息

DESC 视图名

(8)删除视图

drop view 视图名1,视图名2

4.触发器

(1)Mysql的触发器是嵌入到mysql中的一段程序,是MySQL中管理数据的有力工具,通过对数据

表的相关操作来触发,激活从而实现执行。比如当对student表进行操作

(INSERT,DELETE,UPDATE)时就会激活它执行

(2)优缺点

①优点

触发器的执行是自动的,当对触发器相关表的数据做出相应的修改后立即执行

触发器可以实施比FOREIGN KEY约束,CHECK约束更为复杂的检查和操作

触发器可以实现表数据的级联更改,在一定程度上保证了数据的完整性

②缺点

使用触发器实现的业务逻辑在出现问题时很难进行定位,特别是涉及到多个触发器的情况下,会使

后期维护变得困难

大量使用触发器容易导致代码结构被打乱,增加了程序复杂性

如果需要变动的数据量较大时,触发器的执行效率会非常低

(3)创建触发器

create trigger 触发器名 before|after insert|update|delete on 表名 for each row <触发器主体>

(4)查看指定触发器的信息

select * from information_schema.triggers where trigger_name = '触发器名'

(5)删除触发器

drop trigger 触发器名

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值