MySQL数据库基础(四)

1、事物(Transaction)
事务是由一组DML语句组成,完成一个相对完整的功能,这一组DML语句要么全部执行,要么全部放弃执行。
1)start transaction 或者 begin 开启事务
2)commit 提交事务,提交未存储的事务
3)rollback 回滚事务,即撤销指定的sql语句(回退insert delete update语句)
4)savepoint 保留点 ,事务处理中设置的临时占位符 你可以对它发布回退.

start TRANSACTION;

update account set money=money-100 where name ='zs';

update account set money = money+100 where name = 'ls';

COMMIT;

start tanscation 就是开启事务,commit 提交事务,如果不提交,任务不完成,保留原始状态。下一次提交时会把上一次没有提交成功的数据一起提交。
在句中设定保留点,当返回这个保留点时,状态回到保留点之前的状态。就好比Word里的撤销,当你撤销时回到上一次的状态。具体操作如下;

create table student (
id int primary key auto_increment,
name varchar(20),
score int

);
insert into student  values('张三',70);
insert into student  values('李四',75);
insert into student  values('王五',80);
start transcation;
insert into student  values('向阳',90);
savepoint s1;
insert into student  values('张华',87);
savepoint s2;
select * from student; /第一次查询,所有结果都有/
rollback to s1
select * from student;    /第二次查询由于回滚到了s1,所以保留点s1 下面的数据不会插入/

2、事物的特性
事务具有四个特性:原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)和持续性(Durability)。这四个特性也简称ACID性。

(1)原子性:是指事务是一个不可再分割的工作单位,事务中的操作要么都发生,要么都不发生。就如原子是自然界最小颗粒,具有不可再分的特征一样。

(2)一致性:事务执行的结果,必须使数据库从一个一致性状态,变到另一个一致性状态。当数据库中只包含事务成功提交的结果时,数据库处于一致性状态。一致性是通过原子性来保证的。(双方账户的总和不能少也不能多)

(3)隔离性:各个事务的执行互不干扰,任意一个事务的内部操作对其他并发的事务,都是隔离的。(简单的理解 就是你做你的,我做我的!)

(4)持续性:持续性也称为持久性,指事务一旦提交,对数据所做的任何改变,都要记录到永久存储器中,通常是保存进物理数据库。(转账记录成功了,不能过一会变成了出错了)
3.索引
索引相当于字典的目录,如果查找某个字的时候可以通过目录,提高查询速度,否则需要翻阅字典的每一页。
使用索引的目的:提高查询速度。
语法1:创建表时,添加索引。
create table 表名(
字段名1 数据类型,
字段名2 数据类型,
…,
Index | key [索引名称] (字段名)
);

语法2:创建完表后,添加索引。
create table 表名(
字段名1 数据类型,
字段名2 数据类型,
…,
);
Alter table 表名 add {unique | primay key| index…索引种类} 索引名(字段名)
3.1索引分类
1)普通索引 就是一个普通的索引,可以为空,可以重复。
ALTER TABLE teacher ADD INDEX name_index(column);
1)唯一索引 可以为空,不可以重复。
ALTER TABLE teacher ADD UNIQUE(column); # 添加唯一索引
ALTER TABLE teacher ADD column type UNIQUE; # 添加列并且添加索引。
alter table t2 add UNIQUE phone_index(phone);
3)主键索引 不可以为空,不可以重复。
ALTER TABLE teacher ADD PRIMARY KEY(column);
alter table t2 add PRIMARY key(id);
只要是主键,就是索引。
4)多列索引
ALTER TABLE teacher ADD INDEX(column1,column2,column3);
多列索引就是同时给多个字段加索引

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值