sql语句分为DML(操作语句增删改查),DDL(定义语句创建删除修改),DCL(控制语句权限管理),触发器和完成行约束,事务管理;内连接,只显示符合条件的,左外连接以左为基准,右边不符合的为null,有外连接的相反;mysql不支持全外连接;
事务:事务的四种属性,原子性,一致性,隔离性,持久性;
并发操作带来的三种问题:丢失修改(操作一修改该数据,操作二也修改该数据,操作一写入,操作二写入时丢失操作一的修改),读脏数据(操作一修改该数据并写回,操作二再读取,操作一撤销操作恢复,操作二读取的数据就时脏的,不可重复读(操作一读取数据,操作二求改数据写回,操作一再次读取,两次的数据不一致;
锁:x锁(读写锁)s锁(读锁)加了x所之后其他事务不能加任何锁,加s锁其他事务也可以加s锁;
解决丢失数据,用一级封锁协议,对事务T加X锁;
解决读脏数据,使用二级封锁协议,对事务T加X锁,还加S锁,操作结束后释放s锁;
解决重复读:使用三级封锁协议,对事务T加X锁,还加S锁,事务操作结束后释放S锁,X锁;
范式
第一范式:每个值都是由原子构成,存在部分依赖和传递依赖;
第二范式:只存在传递依赖,没有部分依赖;
第三范式:没有传递依赖和部分依赖,都是完全依赖;
BCNF:没有部分依赖和传递依赖,并且所有都是关于主键的完全依赖;