zoukankan      html  css  js  c++  java
  • [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中)

  • 相关阅读:
    document.getElementById IE bug
    Add Event
    start silverlight
    【转】MSDN magzine JavaScript使用面向对象的技术创建高级 Web 应用程序
    文本编辑工具Vim
    《JavaScript DOM编程艺术》附录(dom方法和属性)
    js variable undefined
    good tools 调试好帮手
    my pretty code
    万级访问网站前期的技术准备(下)
  • 原文地址:https://www.cnblogs.com/kaerxifa/p/12052569.html
Copyright © 2011-2022 走看看