数据库操作(DML)
插入数据语法:insert into t_table (字段名),vlaues(值);
更新数据语法:update t_table set 字段名=值 where 字段名=值;
删除数据语法:delete from t_table where 字段名=值;
数据库操作(DQL)
查询数据语法:select * from t_table
sql事务
保证了数据的原子性,一致性,隔离性,持久性。
并发事务处理带来的问题。
1、跟新丢失,事务a和事务b同时操作,事务a覆盖了事务b的操作,导致事务b的数据丢失了
2、脏读,事务a在执行更新业务,但是没有提交,事务b读取了事务a的数据,如果事务a进行了回滚,那么事务b的数据无效。
3、不可重读,事务a读取了数据以后,事务b修改了a读取的数据,事务a再次读取数据时数据已经发生改变,不能再次读取
4、幻读,事务a在同一事务的不同时间内,读取同一数据,得到的值不一样
sql事务隔离级别
数据库的三大范式
第一范式,设计表时,应尽量保证表中的属性不可再次分割
第二范式,非主属性必须完全依赖主属性
第三范式,属性不依赖于其他非主属性。
er图:实体关联图
实体:长方体
属性:椭圆
关系:菱形
外键约束与级联操作
外键是用来建立两个表的关联关系的字段
什么是外键约束及外键约束的操作
在执行操作的的时候自动对关联表做出相应的约束,比如删除时会有约束,不能删除,如果想删除,可以设置级联删除 ,no action ,restrict,不做任何操作,cascade可以做出同步操作,setnull在操作时设置为空。
constraint fk Foreign key id references student id
锁
行锁 事务a在执行某一行操作的时候没有提交事务会对这一行进行上锁
表锁 事务a在执行某一列操作的时候没有提交事务会对整张表进行上锁
乐观锁 用户自己执行的一种锁机制,认为外界不会对数据进行修改,
悲观锁 认为外界会修改修改数据,数据库会对整张表进行上锁,其它事务无法进行修改。
索引
索引的本质是一张表 分为主键索引,唯一值索引,普通索引,全文索引。
索引的原理是b+树
索引的注意事项,索引能够增加查询的速度,但会影响cud的速度
一张表不要超过三个索引
触发器
触发器监视某种情况,并触发某种操作