创建索引的方法
创建普通索引:
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:开启自动提交