JAVA WEB 重学day10


学习目标

  • 能够说出多表之间的关系及其建表原则

  • 能够理解三大范式

  • 能够使用内连接进行多表查询

  • 能够使用左外连接和右外连接进行多表查询

  • 能够使用子查询进行多表查询

  • 能够理解多表查询的规律

  • 能够理解事务的概念

  • 能够说出事务的原理

  • 能够在MySQL中使用事务

    数据库三大范式

第一范式:最基本的要求,每一列要保证原子性,不可再分割

第二范式(2NF)要求在第一范式的基础上数据库表中的每个实例或记录必须可以被唯一地区分,表中的每一个字段都依赖于主键。(一张表只能描述一件事情 ;每张表必须有主键

第三范式(3NF)是第二范式(2NF)的一个子集,即满足第三范式(3NF)必须满足第二范式(2NF)。简而言之,第三范式(3NF)要求一个关系中不包含已在其它关系已包含的非主关键字信息。

数据库三大范式小结说明
1NF最基本的要求,每一列必须具有原子性,不可再分割
2NF满足1NF基础上,满足下面两个条件
每张表必须有主键
一张表只描述一件事件
3NF满足2NF基础上,满足一个条件
一张表只能引用另一张表的主键列的值。

表关系-一对一

在这里插入图片描述

表关系-一对多

在这里插入图片描述
一对多建表原则小结

在从表(多方)创建一个字段,字段作为外键指向主表(一方)的主键

表关系-多对多

在这里插入图片描述

多对多建表原则小结

需要创建一个中间表,中间表至少有两个字段,这两个字段分别作为外键引用各种1方的主键,这两个字段一起作为中间表主键共同确定中间表记录的唯一性,主键称为联合主键。

内连接查询

在这里插入图片描述

内连接查询分类语法
隐式内连接select * from 左表,右表 where 条件;
显示内连接select * from 左表 inner join 右表 on 条件;
inner 关键字可以省略

内连接查询的特点:使用左表的记录去匹配右表的记录,只有满足条件的记录才会查询出来。

总结多表连接查询步骤

  1. 先确定要查询的表有哪些
  2. 然后确定要查询的字段有哪些
  3. 最后确定查询条件

左外连接查询

语法:select 字段 from 左表 left join 右表 on 条件;

特点:能够保证左表的记录全部查询出来。

右外连接查询

语法:select 字段 from 左表 right join 右表 on 条件;

特点:能够保证右表的记录全部查询出来

多行多列子查询

在这里插入图片描述

事务概述

在实际的业务开发中,有些业务操作要多次访问数据库。一个业务要发送多条SQL语句给数据库执行。需要将多次访问数据库的操作视为一个整体来执行,要么所有的SQL语句全部执行成功。如果其中有一条SQL语句失败,就进行事务的回滚,所有的SQL语句全部执行失败。

事务:将一个业务操作中的多条SQL语句当成一个整体对待,这多条SQL语句要么全部执行成功,要么全部执行失败,如果有一条SQL语句执行失败,则会撤销已经成功执行的SQL语句。

手动管理事务小结语句
开启事务start transaction;
提交事务commit;
回滚事务rollback;

事务的四大特性

事务四大特性说明
A:atomic 原子性事务中的多条SQL语句是一个整体,不可再分割
要么全部执行成功,要么全部执行失败。
C:consistence 一致性事务前后的数据要保存一致:比如转账前后总金额要一致。
I:isolation 隔离性多个事务之间操作不能相互影响。
D:durablity 持久性事务一旦提交则对数据库的数据影响是永久的,不可逆了。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值