Web学习历程记录(二)——数据库(二)

Web学习历程记录(二)

多表操作

外键约束

外键:唯一标识其他表中的一条记录,用来通知数据库两张表字段之间的对应关系,并让数据库维护这样的关系

外键作用:确保数据库数据的完整性和一致性

添加外键
foreign key (dept_id) references dept(id) alter table 从表 add constraint 外键名 foreign key(从表的外键列名) refences 主表(主键)

表与表之间的联系

一对多,一对一,多对多

多表查询

子查询

一个查询的结果作为另一个查询的条件
有查询的嵌套,内部的查询称为子查询
子查询要使用括号

事务

事务指逻辑上的一组操作,组成这组操作的单元要么全部成功,要么全部失败

作用:保证一组操作全部成功或者全部失败

MySQL进行事务管理

自动事务
一条sql语句就是一个事务,且没有办法回滚

手动开启一个事务
开启事务
start transaction
提交
commit
回滚
rollback

事务原理

  1. 客户库服务器,创建连接时创建用户临时文件
    开启事务以后,所有的操作都会先写入到临时日志文件中
  2. 开启事务后,所有的操作都会先写入到临时文件中
  3. 所有的查询操作从表中查询,但会经过日志文件加工后才返回
  4. 如果事务提交则将日志文件中的数据写到表中。否则清空日志文件

回滚点

设置回滚点
savepoint 名字
回到回滚点
rollback to 名字

事务特性

原子性:事务是一个不可分割的工作单位,事务中的操作要么都发生,要么都不发生
一致性:事务前后数据的完整性必须保持一致
持久性:持久性是指事务一旦被提交,它对数据库中数据的改变就是永久性的
隔离性:多个用户并发访问数据库时,一个用户的事务不能被其他用户的事务所干扰,多个并发事物之间数据要相互隔离,事务之间互不干扰

因为并发操作,多个用户访问同一个数据,可能引发并发访问的问题

并发访问的问题含义
脏读一个事务读取到了另一个事务未提交的特性
不可重复读一个事务中两次读取的数据内容不一致,这是事务update时引发的问题
幻读一个事务中两次读取的数据数量不一致,这是insert或delete引发的问题
事务隔离级别
级别名字隔离级别脏读不可重复读幻读数据库默认隔离级别
1读未提交read uncommitted
2读已提交read committedOracle
3可重复读 repeatable readMySQL
4串行话serializable

设置隔离级别
set session transaction isolation level 隔离级别;
查询当前事务隔离级别
select @@tx_isolation;

创建用户和授权(DCL)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值