1、事务处理:
将一组sql语句放在同一批次内去执行
(1)如果一个sql语句出错,则该批次内的所有sql都被取消执行
(2)MYISAM不支持事务
(3)事务的ACID原则
原子性:一组语句当一个整体执行
一致性:所有数据处于同样的状态
隔离性:事务之间互不影响
持久性:事务成交以后,对于数据的影响是持久的
–查看数据库事务支持
show variables like ‘event scheduler’;
– 设置数据库支持事务
set global scheduler=on;
2、 事务的实现方法
set autocommit = 0; --关闭自动提交模式
start transaction; --开始一个事务
commit/rollback; --提交一个事务给数据库/事务回滚,将数据回到本次初始状态
set cutocommit = 1; --开启自动提交
3、练习:
create table account(
id int(4) primary key auto_increment,
name varchar(32) not null,
cash decimal(9,2) not nul
insert into account(name,cash)
values(‘a’,2000),(‘b’,10000);
set autocommit = 0;
start transaction;
update account set cash = cash -500 where name=‘customer’;
update account set cash = cash +500 where name=‘shop’;
#commit;
rollback;
set autocommit = 1;
select * from account;
4 、数据库索引
对表里面某列进行排序
在物理上来说是单独的存储在磁盘上的一种数据库结构(对表里面的引用的指针)
(1)主键索引
数据库会自动的给添加了主键的字段添加一个索引
主键唯一区分数据库里的一条记录
原理:
数据库把索引单独存起来在一个文件里,索引对应的是一些数据
当要查这个数据的时候会先去找这个索引,再根据这个索引直接找到这个数据
(类似于查字典)索引就相当于目录
先找到在索引中的位置,再根据索引中的位置找到数据的位置
(2)唯一索引–不是为了提高查询速度的
不同于主键索引
唯一索引是唯一的,但主键索引不是唯一的
主键可为空,且不唯一
(3)常规索引–是为了提高查询速度的
经常被当作查询条件的列可设置为常规索引
(4)全文索引–快速定位特定数据
只能用于mylsam类型的数据表
只能用于char varchar text
5、添加索引的方式
(1) 方式一:创建表,声明列属性时添加上
方式二:将所有列都声明完毕后,再添加索引
方法三:先创建表,创建表完毕后,修改表添加索引
create table test(
in int(4) primary key,
testno varchar(10) unique
c varchar(50),
d varchar(20),
e text,
–或者方法二:
primary key(id),
unique key(testno),
index index_c(c,d),
fulltext(e)
) engine=myisam;