MySQL的多表关系梳理及建表的语句

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/angelinawang/article/details/79567689

一、一对一的关系:

    一对一的关系用的较少(一对一关系可以直接建在一张表内)。

1.举例:

    人和身份证:一个人只能有一张有效身份证,一张有效身份证只能对应一个人。

2.建表原则:

    2.1两张表,唯一外键对应主表主键(用unique约束外键)

    2.2两张表,两张表的主键各自对应

二、一对多的关系:

1.举例:

    部门和员工:一个部门可以有多个员工,一个员工只能属于一个部门。

2.建表原则:

    在多的一方建立一个字段(定义为该表的外键),字段作为外键指向一的一方的主键。

    *把一的一方称为主表;多的一方称为从表。

3.建表的语句

    alter table 从表 add [constraint] [外键名称] foreign key(从表外键字段名) references 主表(主表主键);

    **[constraint] [外键名称]用于删除外键的约束,建议“-fk”格式结尾。(写语句时可以省略)

    删除外键约束语句:

        alter table 从表 drop foreign key 外键名称;

三、多对多关系:

1.举例:

    学生选课:一个学生可以选多门课程;一个课程也可以被多个学生选。

2.建表原则:

    创建一张表作为两张表的中间表,中间表所含的字段分别作为外键指向各自对应表的主键。

    *把中间表称为从表;其他多的方向的表称为主表。


 3.建表语句:(两个表分开建立与中间表的关系)

    3.1表一建表语句

        alter table 从表(中间表) add foreign key(表一外键) references 主表一(表一主键);

    3.2表二建表语句

        alter table 从表(中间表) add foreign key(表二外键) references 主表二(表二主键);


展开阅读全文

没有更多推荐了,返回首页