mysql 索引触发器,MySQL 索引、触发器

1、 为什么要使用索引:

一本书需要目录能快速定位到寻找的内容,同理,数据表中的数据很多时候也可以为他们创建相应的“目录”,称为索引,当创建索引后查询数据也会更加高效2、 Mysql中的索引类型:1) 普通索引:在不添加任何关键字的情况下创建的索引,他没有其他特殊功能,就是为了提高查询效率2) 唯一索引:使用UNIQUE关键字标记,被添加唯一索引的字段值不重复3) 全文索引:使用FULL TEXT关键字标记,MYSQL在针对一些数据量较大的字段建议创建全文索引,以便在查询时检索更快

注:全文索引只能在myisam相关的数据库引擎使用,MySQL默认的数据库引擎innodb是不支持全文索引的3、 创建索引:1) 在创建数据表结构时就使用关键字创建唯一索引:UNIQUE关键字2) 使用CREATE INDEX语句完成:

语法:create {不写 | UNIQUE | FULLTEXT} index ON表名(字段名列表)

举例:--在tb_student表的student_name上添加唯一索引

CREATE UNIQUE INDEX inx_student_name_u ONtb_student (student_name);--查看索引

show index fromtb_student ;3) 在修改数据表时为其添加索引的方式完成:

语法:ALTER TABLE ADD {不写 | UNIQUE | FULLTEXT} INDEX (字段名列表)

举例:--在tb_student2中的address字段上创建全文索引。--从tb_student复制一份新表tb_student2

CREATE TABLE tb_student2 SELECT * FROMtb_student;SELECT * FROMtb_student2;--创建全文索引 需要将数据表的引擎修改为myisam

ALTER TABLE tb_student2 ADD FULLTEXT INDEXinx_address_f (address);

showINDEX FROMtb_student2;4) 查看索引:

语法:SHOWINDEX FROM 举例:SHOWINDEX FROMtb_student;5) 删除索引

语法:DROP INDEX ON 举例:DROP INDEX inx_address_f ONtb_student2;*:针对记录的CRUD操作语句:Insert into,delete,update,select

*:针对数据库对象的CRUD操作语句:create,drop,alter,show

二、 触发器:1、 什么是触发器?

当满足设定好的条件时会自动执行事先设定好的任务的一种数据库对象,称为触发器。2、 触发器的几个要素:1) 触发地点:具体是针对哪个数据表创建触发器2) 触发事件:具体是执行什么操作(增删改)时会启动触发器3) 触发时机:具体是在操作之前还是之后启动触发器3、 创建触发器:

语法:CREATE TRIGGER {befor| after} /*触发时机*/{INSERT | DELETE | UPDATE} /*触发事件*/

ON /*触发地点*/

For each row /*固定写法:针对每一行都生效*/

Begin#为触发器事先设定的要执行的任务End;

说明:在触发器中的取值需要通过OLD或NEW关键字来获取字段的“老值”、“新值”。

举例:

delimiter//

CREATE TRIGGERtrig_studentscore

BEFOREINSERT ONtb_scoreFOREACH ROWBEGIN

IF NEW.student_score < 0 THEN

SET NEW.student_score = 0;

ELSEIF NEW.student_score> 100 THEN

SET NEW.student_score = 100;END IF;END //delimiter ;--执行触发器中对应的触发事件,启动触发器,验证触发器是否正常工作

INSERT INTO tb_score VALUES(null,"S08",2,-3.3,‘2019-10-11‘);INSERT INTO tb_score VALUES(null,"S08",2,80.5,‘2019-10-11‘);INSERT INTO tb_score VALUES(null,"S08",2,120,‘2019-10-11‘);SELECT * FROM tb_score WHERE student_no = ‘s08‘;DESCtb_score;--查看当前数据库下的所有触发器

SHOW TRIGGERS;

MySQL 索引、触发器

标签:uniq   col   update   功能   相关   情况   说明   row   全文索引

本条技术文章来源于互联网,如果无意侵犯您的权益请点击此处反馈版权投诉

本文系统来源:https://www.cnblogs.com/zhangzimuzjq/p/11660815.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值