索引和触发器操作

索引

在基本表上建立一个或多个索引,可以提供多种存取路径,加快查找速度。SQL新标准不主张使用索引,而是以在创建表时直接定义主键,一般系统会自动在主键上建立索引。

在特殊需要时,建立和删除索引由数据库管理员(DBA)或表的属主负责完成。

 

SQL中索引一般格式为:

create [unique] [cluster] index <索引名> on <表名> (<列名1> [asc|desc], <列名2> [asc|desc], ...)

 

ps:

unique表示唯一索引,即此索引的每一个索引值只对应唯一的数据记录。cluster表示聚簇索引,即索引项的顺序与表中记录的物理顺序一致的有序索引。一个基本表上最多只能建立一个聚簇索引。对于经常更新的列不宜建立聚簇索引。

 

MySQL支持的索引:
B型树索引(BTREE)-- InnoDB和MyISAM存储引擎支持
哈希索引(HASH)    -- MEMORY存储引擎支持

 

方式1:创建表时创建普通索引

imageimage

 

方式2:在已经存在的表上创建普通索引

imageimage

 

方式3:通过ALTER  TABLE创建普通索引

 

删除索引:

DROP INDEX 索引名 ON 表名;

 

触发器:

触发器:

实现由一些表事件触发的某个操作。不是程序调用,不是手工启动,而是由事件触发。用于在表发生更改时,自动进行一些处理。

触发语句:INSERT/UPDATE/DELETE。其他SQL语句不会激活触发器

 

创建触发器:

CREATE TRIGGER trigger_insert BEFORE INSERT ON student FOR EACH ROW INSERT INTO student_new SELECT * FROM student;

 

创建包含多条执行语句的触发器

DELIMITER $$ --将结束符号设置为$$ CREATE TRIGGER trigger_update_multi BEFORE UPDATE ON course FOR EACH ROW BEGIN INSERT INTO student (sno, sname) VALUES(111111,’ZHIBO’); INSERT INTO student (sno, sname) VALUES(222222,’HENRY’); END $$ DELIMITER ; --将结束符号设置为;

 

查看触发器

SHOW TRIGGERS;

 

删除触发器:

DROP  TRIGGER  trigger_name;

 

转载于:https://www.cnblogs.com/zx1116/p/7821722.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值