码迷,mamicode.com
首页 > 其他好文 > 详细

索引和触发器操作

时间:2017-11-12 16:31:49      阅读:148      评论:0      收藏:0      [点我收藏+]

标签:play   course   技术   手工   查找   create   inno   nod   insert   

索引

在基本表上建立一个或多个索引,可以提供多种存取路径,加快查找速度。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:创建表时创建普通索引

技术分享技术分享

 

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

技术分享技术分享

 

方式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;

 

索引和触发器操作

标签:play   course   技术   手工   查找   create   inno   nod   insert   

原文地址:http://www.cnblogs.com/zx1116/p/7821722.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!