MySQL非空、唯一、主键、默认、外键约束,数据库设计,表之间的关系,多表查询之内连接、外连接、子查询,事务简介、事务四大特征

约束

概念&分类

  • 约束的概念

    • 约束是作用于表中列上的规则,用于限制加入表的数据
    • 约束的存在保证了数据库中数据的正确性、有效性和完整性
      在这里插入图片描述
  • 约束的分类
    在这里插入图片描述
    注意:MySQL不支持检查约束

案例

  • 根据需求,为表添加合适的约束
    在这里插入图片描述
    在这里插入图片描述

非空约束

  • 概念

    • 非空约束用于保证列中所有数据不能有 NULL值
  • 语法

    • 添加约束
      在这里插入图片描述

    • 删除约束
      在这里插入图片描述

    唯一约束

  • 概念

    • 唯一约束用于保证列中的所有数据各不相同
  • 语法

    • 添加约束
      在这里插入图片描述
  • 删除约束
    在这里插入图片描述

主键约束

  • 概念

    • 主键是一行数据的唯一标识,要求非空且唯一
    • 一张表只有一个主键
  • 语法

    • 添加约束
      在这里插入图片描述

    • 删除约束
      在这里插入图片描述

    默认约束

  • 概念

    • 保存数据时,未指定值则采用默认值
  • 语法

    • 添加约束
      在这里插入图片描述

    • 删除约束
      在这里插入图片描述

外键约束

  • 概念

    • 外键用来让两个表的数据之间建立连接,保证数据的一致性和完整性
      在这里插入图片描述
  • 语法

  • 添加约束
    在这里插入图片描述

    • 删除约束
      在这里插入图片描述

数据库设计

软件开发的步骤

在这里插入图片描述

数据库设计概念

  • 数据库设计就是根据业务系统的具体需求,结合我们所选用的 DBMS,为这个业务系统构造出最优的数据存储模型
  • 建立数据库中的表结构以及表与表之间的关联关系的过程
  • 有哪些表?表里有哪些字段?表和表之间有什么关系?

数据库设计的步骤

在这里插入图片描述

  • 需求分析(数据是什么?数据具有哪些属性?数据与属性的特点是什么)

  • 逻辑分析(通过ER图对数据库进行逻辑建模,不需要考虑我们所选用的数据库管理系统)

  • 物理设计(根据数据库自身的特点把逻辑设计转为物理设计)

  • 维护设计(1.对新表的需求进行建表;2.表优化)

表关系

  • 一对一

    • 如:用户 和用户详情
      在这里插入图片描述

    • 一对一关系多用于表拆分,将一个实体中经常使用的字段放一张表,不经常使用的字段放另一张表,用于提升查询性能

  • 一对多(多对一)

    • 如:部门 和员工
      在这里插入图片描述

    • 一个部门对应多个员工,一个员工对应一个部门

  • 多对多

    • 如:商品和订单
    • 一个商品对应多个订单,一个订单包含多个商品
      在这里插入图片描述

    表关系之一对多

  • 一对多(多对一)

    • 如:部门表 和 员工表
    • 一个部门对应多个员工,一个员工对应一个部门
  • 实现方式

    • 在 多 的一方建立 外键,指向 一 的一方的主键
      在这里插入图片描述

表关系之多对多

  • 多对多
    • 如: 订单 和 商品
    • 一个商品对应多个订单,一个订单包含多个商品
    • 实现方式:
      • 建立第三张中间表,中间表至少包含两个外键,分别关联两方主键
        在这里插入图片描述

表关系之一对一

  • 一对一:
    • 如: 用户 和用户详情
    • 一对一关系多用于拆分,将一个实体中经常使用的字段放一张表,不经常使用的字段放另一张表,用于提升查询功能
    • 实现方式:
      • 在任意一方加入外键,关联另一方主键,并且设置外键为 唯一(UNIQUE)
        在这里插入图片描述

总结

在这里插入图片描述

多表查询

  • 笛卡尔积:取A,B集合所有组合情况
  • 多表查询:从多张表查询数据

内连接

  • 内连接查询语法
    在这里插入图片描述
    内连接相当于查询 A B交集数据
    在这里插入图片描述

外连接

  • 外连接查询语法
    在这里插入图片描述
    左外连接:相当于查询 A 表所有数据和交集部分数据
    右外连接:相当于查询 B 表所有数据和交集部分数据
    在这里插入图片描述

子查询

  • 子查询概念

    • 查询中嵌套查询,称嵌套查询为子查询
  • 子查询根据查询结果不同,作用不同:

    • 单行多列
    • 多行单列
    • 多行多列
  • 子查询根据查询结果不同,作用不同:

    • 单行单列:作为条件值,使用 = != > <等进行判断
      在这里插入图片描述

    • 多行单列:作为条件值,使用 in 等关键字进行条件判断
      在这里插入图片描述

    • 多行多列:作为虚拟表
      在这里插入图片描述

    多表查询分析步骤

    在这里插入图片描述

事务

事务简介

在这里插入图片描述

事务四大特征

  • 原子性(Atomicity):事务是不可分割的最小操作单位,要么同时成功,要么同时失败
  • 一致性(Consistency):事务完成时,必须使所有的数据都保持一致状态
  • 隔离性(Isolation):多个事务之间,操作的可见性
  • 持久性(Durability):事务一旦提交或回滚,它对数据库中的数据的数据的改变就是永久的

MySQL事务默认自动提交

在这里插入图片描述

  • 6
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

续写青春.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值