自学内容网 自学内容网

[Mysql] Mysql的多表查询----多表关系(上)

1、介绍

在实际开发中,一个项目通常需要很多张表才能完成。例如:一个商城项目就需要分类表、商品表、订单表等多张表。且这些表的数据之间存在一定的关系。

2、多表关系

Mysql多表之间的关系可以概括为:一对一、一对多/多对一、多对多关系。

(1)一对一关系

例如:一个学生只有一张身份证;一张身份证只能对应一个学生。

(2)一对多/多对一关系

例如:一个 部门有多个员工(一对多关系),多个员工对应一个部门(多对一关系)。

(3)多对多关系

例如:一个学生可以选择很多门课程,一个课程可以被很多学生选择。

多对多关系实现需要借助第三张中间表。中间表至少包含两个字段,将多对多关系拆成一对多的关系。

3、外键约束

(1)介绍

Mysql外键约束(foreign   key )是表的一个特殊字段,经常与主键约束一起使用。对于两个具有关联关系的表而言,相关联字段中主键所在的表就是主表(父表),外键所在的表就是从表(子 表)。

外键用来建立主表与从表的关联关系,为两个表的数据建立连接,约束两个表中数据的一致性与完整性。

比如:一个水果摊,只有苹果、桃子、李子、西瓜等4中水果,那么你来到水果摊要买水果就只能选择苹果、桃子、李子和西瓜。其它的水果都是不能购买的。

(2)特点

1))主表必须已经存在于数据库中,或者是当前正在创建的表。

2))必须为主表定义主键

3))主键不能包含空值,但允许在外键中出现空值,也就是说,只要外键的每个非空值出现在指定的外键中,这个外键的内容就是对的。

4))在主表的表名后面指定列名或列名的组合。这个列或列的组合必须是主表的主键或候选键。

5))外键中列的数目必须和主表的主键中列的数目相同(意思是:若主键列是单列主键,则外键列也必须是单列的。若主键列是联合主键则外键列也必须是联合的)。

6))外键中列的数据类型必须和主表主键中对应列的数据类型相同。

4、操作

(1)操作---创建外键约束

方式一:在创建表时设置外键约束

在create table  语句中,通过foreign   key  关键字来指定外键,具体的语法格式如下:

[constraint   <外键名>]   foreign   key   (字段名   [,   字段名2,...])    references  <主表名>  (主键列1,[ ,主键列2,...]);

注意:[ ...]  代表可以省略。

示例:

创建主表:

创建子表:


原文地址:https://blog.csdn.net/hefaxiang/article/details/143805818

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!