数据库索引与事务

创建索引的方法

创建普通索引:
create index <索引的名字> on tablename (列的列表)
在这里插入图片描述
创建唯一性索引:
create unique index <索引名字> on tablename(列的列表)
在这里插入图片描述
创建主键索引,有俩种方式,一种是在创建表的同时创建主键,主键索引会自动创建:
在这里插入图片描述
另外一种就是已经创建了表,没有指定主键,然后修改表加入主键,主键索引会自动创建;
在这里插入图片描述
多列索引只需要在创建索引时指定多列即可;
create index 名字 on 表名(name,id)
不需要使用索引时,应删除索引:
drop index index——name on table_table;
alter table table_name drop index index_name;
alter table table_name drop primary key;
第一条命令是直接删除索引,第二条是修改表时删除索引,第三条是删除主键索引
在这里插入图片描述
名称是xingming的索引已经删除

修改表结构

删除某一列,如果此列有索引存在,相应的索引也会被删除
在这里插入图片描述
删除id一列后,关于id的索引也删除掉了

索引查看方法:

show index from tablename;

show keys from tablename;
在命令后面加上\G,可以竖向显示索引的信息;
在这里插入图片描述

事务的概念:

事务是一种机制、一个操作序列,包含了一组数据库操作命令,并且把所有的命令作为一个整体一起向系统提交或撤销操作请求,即这一组数据库命令要么都执行,要么都不执行。事务是一个不可分割的工作逻辑单元,在数据库系统上执行并发操作时,事务是最小的控制单元。事务适用于用户同时操作数据库系统的场景。事务是保证了一组操作的平稳性和可预测性的技术。
MYSQL中使用命令控制事务需要用到三个命令:
begin:表示开始一个事务,后面会有多条数据库操作语句执行
commit : 表示提交一个事务,对应前面的begin操作,它们之间的数据库操作语句一起完成
rollback :表示回滚一个事务,在begin和commit之间,如果某一个数据库操作语句出现错误,执行rollback命令,执行rollback回滚,数据库回到begin之前的状态,也就是操作语句都没执行
在这里插入图片描述
如果只开启一个事务不提交,操作语句并不是真正的插入到数据库中,退出MySQL连接后数据是没有插入的

rollback回滚的使用

在这里插入图片描述
很多时候一个事务会包含多条语句,而出现问题需要回滚时,并不一定是要回滚到begin之前的状态,有可能是某条语句执行后的状态,这时需要使用save point定义回滚点,rollback决定回滚到的位置

在这里插入图片描述
执行第一条插入语句后,定义了回滚点s1,执行第二条插入语句后,定义了回滚点s2,如果后面直接使用rollback命令,这俩条插入语句都将失败,现在使用回滚点进行回滚
在这里插入图片描述
回滚到了s1,第一条插入的数据可以查询出来,但是没有提交,如果需要保存到数据库,使用commit命令提交

使用set设置控制事务

MySQL默认是自动提交事务,也可以修改为不自动提交,使用set命令操作
set autocommit=0:禁止自动提交
set autocommit=1:开启自动提交

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值