0x01
数据类型
1.数值类型
2.字符与字符串类型
3.时间和日期
建表约束
1.主键约束 (primary key)
- 单一主键
- 联合主键(只要联合的主键加起来不重复就可以)
- 自增约束(primary key auto_increm ent)
2.唯一约束 (unique)
总结:
- 建表的时候就可以添加约束
- 可以使用alter。。。add。。。* alter。。。modify。。。
- 删除alter。。。drop。。。
3.非空约束 (修饰的字段不能为空 NOT NULL)
4.默认约束(当我们插入字段值的时候,如果没有传值,就会使用默认值 default)
5.外键约束(涉及两个表:父表,子表; 主表,副表)
- 主表中没有数据值,在副表中,是不可以使用的。
- 主表中的记录被副表引用,是不可以被删除的。
数据库的三大设计范式
1.第一范式
(INF)数据表中的所有字段都是不可分割的原子值。(范式,设计的越详细,对于某些实际操作可能更好,不过请以实际情况为准。)
2.第二范式
(必须是满足第一范式的前提下,第二范式要求,除主键外的每一列都必须完全依赖于主键。如果要出现不完全依赖,只可能发生在联合主键的情况下。)
3.第三范式
(必须满足第二范式,除主键外的其他列之间不能有传递依赖关系。)
操作语句
1. 基本操作语句:增删改查
- 查询练习:
2.详细操作语句
事务
1.
- 自动提交
select @@autocommit;
set autocommit=1;
将autocommit设为0,就可以使用事务回滚 - 手动提交commit;(一旦手动提交,就不能rollback)
- 事务回滚rollback;
- 手动开启事务(不想将autocommit设置为0时,可以采用手动开启一个事务的方式。) begin;start transaction;
2.总结
事务的四大特征:
- 原子性:
- 一致性:
- 隔离性:
- 持久性:事务一旦结束(commit),就不可以返回。
事务开启:
- 修改默认提交 set autocommit=0;
- begin;
- start transaction;
事务提交:commit;
事务手动回滚:rollback;
3.事务隔离性
-如何查看数据库的隔离级别:
(mysql 8.0)
系统级别:select @@global.transaction_isolation;
会话级别:select @@transaction_isolation;
-如何修改隔离级别:
set global transaction isolation level read uncommitted;-
隔离级别:
- read uncommitted; 读未提交的
- read commited; 读已经提交的
- repeatable read; 可以重复读(默认)
- serializable; 串行化
-脏读:一个事务读到了另一个事务没有提交的数据。(实际开发不允许!)read uncommitted;
-read commited
-幻读
-串行化