Mysql--V2.0
表:
创建:
create table 表名(
字段名1 数据类型,
字段名2 数据类型,
字段名3 数据类型,
);
//删除表 drop table aaa; drop table if exists aaa;插入:
insert into 表名(字段名1,字段名2,字段名3) values(值1,值2,值3);
删除数据:delete from 表名 where 条件;删除效率低,可以回滚
删除数据:delete from 表名 where 条件;删除效率低,可以回滚
delete from t_user where id=2; delete from t_user;//删除所有
truncate: truncate table 表名;物理删除表中数据,表还在。效率高,不会回滚。
修改:update 表名 set 字段名1=值1,字段名2=值2,字段名3=值3...where 条件;
约束条件:
非空:not null -------跟在数据类型后面
唯一性:unique-------跟在数据类型后面,或末尾(表级约束)
主键约束:PK 唯一,非空,自增(关键字auto_increment)等属性-------跟在数据类型后面,或末尾(表级约束)
外键约束:FK----多张表的数据相关------子表foreign key(外键值) references 父表表名(引用值----不一定是主键,但必须unique);
事务:
一个事务就是一个完整的业务逻辑。最小的工作单元,不可再分。
事务提交:commit; 事务回滚:rollback;只能回滚到上一次提交点;
InnoDB存储引擎支持事务:提供一组用来记录事务性活动的日志文件。
Mysql默认执行一条DML语句就自动提交一次。
事务的四个特性:ACID
A:原子性--整个事务中的所有操作,必须作为一个单元全部完成(或全部取消)。 C:一致性--在事务开始之前与结束之后,数据库都保持一致状态。
I:隔离性--一个事务不会影响其他事务的运行。 D:持久性--在事务完成以后,该事务对数据库所作的更改将持久地保存在数据库之中,并不会被回滚。
InnoDB 实现了四个隔离级别,用以控制事务所做的修改,并将修改通告至其它并发的事务:
– 读未提交(READ UMCOMMITTED) 允许一个事务可以看到其他事务未提交的修改。
– 读已提交(READ COMMITTED) 允许一个事务只能看到其他事务已经提交的修改,未提交的修改是不可见的。
– 可重复读(REPEATABLE READ) 确保如果在一个事务中执行两次相同的 SELECT语句,都能得到相同的结果,不管其他事务是否提交这些修改。 (银行总账) 该隔离级别为 InnoDB的缺省设置。
– 串行化(SERIALIZABLE) 【序列化】 将一个事务与其他事务完全地隔离。
– 读未提交(READ UMCOMMITTED) 允许一个事务可以看到其他事务未提交的修改。
– 读已提交(READ COMMITTED) 允许一个事务只能看到其他事务已经提交的修改,未提交的修改是不可见的。
– 可重复读(REPEATABLE READ) 确保如果在一个事务中执行两次相同的 SELECT语句,都能得到相同的结果,不管其他事务是否提交这些修改。 (银行总账) 该隔离级别为 InnoDB的缺省设置。
– 串行化(SERIALIZABLE) 【序列化】 将一个事务与其他事务完全地隔离。