zoukankan      html  css  js  c++  java
  • 数据库一对多,多对一, 多对多的问题

    数据 一对多 多对一 多对多的问题

    在关系型数据库中,通过外键将表跟表之间联系在了一起。

    一对多关系

    一个班级有很多学生,外键维护在学生的一方,也就是多的一方。(在做页面设计的时候,需要把两个表连接到一块查询信息)

    建立一个student和clazz表

    clazz                                                      

    id    name

    1       一班

    2       二班

    3        三班

    student           

    id     name      clazz_id

    1       小明            2

    2       小红            3

    3        小张           1

    select s.name,c.name from student as s,clazz as cwhere c.id=s.clazz_id;

            一对一关系。一对一是一对多的特例,外键唯一。在上面的student和clazz表中,假设一个班级只能有一名学生,clazz_id(外键)不能重复。

             多对多关系。

    外键维护在桥表中,不在两个多的任意一方。下面举一个例子更好地说明。

    student           

    id     name      

    1       小明            

    2       小红         

    3        小张   

    课程表  course

    id      name

    101     java

    102      php

    103       c

    学生选课表 sc

    id       course_id      student_id         grade

    1           101                   1                         60

    2            102                 1                        80 

    3             103                 2                       80

    查询id=1的学生的选的课程,名字,分数。

    select s.*,c.name,sc.grade from student as s,clazz as c,sc

    where sc.course_id=c.id

    and   sc.student_id=s.id

    and s.id=1;

  • 相关阅读:
    NumberFormat注解 DateTimeFormat
    SpringMVC自定义视图
    SpringMVC访问静态资源
    Jmeter查看结果树乱码的情况解决
    JMETER设置默认启动为中文的方法
    python——for循环与while循环的区别
    python学习笔记——字符串也可加入到for循环中
    python学习笔记——列表与字典的区别
    python学习笔记——删除列表元素的三种方法
    python学习笔记——input函数的使用规则
  • 原文地址:https://www.cnblogs.com/woniucode/p/10615641.html
Copyright © 2011-2022 走看看