• [Mysql]一对多关系是如何发挥作用的?


    一个孩子只有一个妈妈,而一个妈妈可以有多个孩子,这是典型的一对多的关系,这里采用navicat图形化界面建立二者的关系。

    第一步:创建mother表,如下图:

     第二步:创建children表,在children表中创建一个外键ch_mom_id,如下图:

     

    第三步:在children表中添加外键约束 

    选中表children>>选择外键>>添加好外键后 ctrl+s保存配置

    mom_ch_lk是外键名,自己定义

    这个外键表示将children表的ch_mom_id字段与mother表的mom_id关联起来,然后我们就可以通过child_id,找到对应的妈妈的id和name.

     

     最后一步:查看约束。新建查询-->查询创建工具-->双击children表和mother表 

     我们发现在children表和mother表之间添加了children.ch_mom_id=mother.mom_id的约束

       

    接下来,添加几条数据,我们来看一下 一对多关系是如何发挥作用的,我们如何通过SQL语句查询出来,每个妈妈有几个孩子?

    首先在mother表中增加3条数据:

     然后在children表中增加几条数据,注意ch_mom_id的取值范围只能是已经存在的mom_id(1,2,3)

    • 许莉莉有3个孩子,是张健,张良,张松
    • 张元元有1个孩子,是李靖
    • 黄梅梅有2个孩子,是王美丽,王英俊

    最后我们通过SQL语句查询许莉莉有几个孩子

    这里我们用多表查询,注意:最后我们想查询的结果是 孩子,所以最外层查询的表是children

    SELECT
        * 
    FROM
        children 
    WHERE
        ch_mom_id IN ( SELECT mom_id FROM mother WHERE mom_name = '许莉莉' );

    查询结果和我们的预期一致

    参考文档:

    Mysql 一对多关系建立(在navicat中)

  • 相关阅读:
    Elasticsearch Server,2nd Edition pdf 翻译 中文
    为什么氦气会改变人的音色?
    intellij 文件太大,无法code assistant
    intellij idea rearrange code
    static变量、static方法之间的异同
    linux top 各个标识的含义 详解
    JAVA面向对象编程课程设计——多人扫雷对战
    递归法创建二叉树
    线性表总结
    线性表总结
  • 原文地址:https://www.cnblogs.com/kaerxifa/p/12052569.html
Copyright © 2020-2023  润新知