当前位置:首页 » 操作系统 » 数据库表的联系

数据库表的联系

发布时间: 2025-08-17 04:06:52

Ⅰ mysql数据库表之间是怎么关联的请详解

left join

join

主外键是两种对表的约束。

例如:

学生表student(学号(id),姓名(name),性别(sex))

表内有:1,aa,女

课程表subject(课程编号(id),课程名(name))

表内有:1,语文

成绩表grade(成绩编号(id),学号(stu_id),课程号(sub_id),成绩(grade))

表内有:1,1,1,90

成绩表的学号就是学生表的学号相对应,并且为学生表的主键,这样就称成绩表中的学号是学生表的外键,同理,成绩表中的课程号是课程表的外键。

select * from student as s inner join subject as su on su.stu_id=s.id inner join grade as g on g.sub_id=su.id where 1.

(1)数据库表的联系扩展阅读:

注意事项

SQL 连接(JOIN) 子句用于把来自两个或多个表的行结合起来,基于这些表之间的共同字段。连接的结果可以在逻辑上看作是由SELECT语句指定的列组成的新表。

左连接与右连接的左右指的是以两张表中的哪一张为基准,它们都是外连接。外连接就好像是为非基准表添加了一行全为空值的万能行,用来与基准表中找不到匹配的行进行匹配。

假设两个没有空值的表进行左连接,左表是基准表,左表的所有行都出现在结果中,右表则可能因为无法与基准表匹配而出现是空值的字段。

不同的 SQL JOIN可以使用的不同的 SQL JOIN 类型:

INNER JOIN:如果表中有至少一个匹配,则返回行

LEFT JOIN:即使右表中没有匹配,也从左表返回所有的行

RIGHT JOIN:即使左表中没有匹配,也从右表返回所有的行

FULL JOIN:只要其中一个表中存在匹配,则返回行(MySQL不支持FULL JOIN)

例如:

mysql> select * from access_log;

+-----+---------+-------+------------+

| aid | site_id | count | date |

+-----+---------+-------+------------+

| 1 | 1 | 45 | 2016-05-10 |

| 2 | 3 | 100 | 2016-05-13 |

| 3 | 1 | 230 | 2016-05-14 |

| 4 | 2 | 10 | 2016-05-14 |

| 5 | 5 | 205 | 2016-05-14 |

| 6 | 4 | 13 | 2016-05-15 |

| 7 | 3 | 220 | 2016-05-15 |

| 8 | 5 | 545 | 2016-05-16 |

| 9 | 3 | 201 | 2016-05-17 |

+-----+---------+-------+------------+

9 rows in set

热点内容
哪咤汽车upro选哪个配置 发布:2025-08-17 05:56:01 浏览:586
思科模拟路由如何重新配置 发布:2025-08-17 05:51:02 浏览:430
源码游 发布:2025-08-17 05:44:49 浏览:859
家庭可以配置哪些功能房 发布:2025-08-17 05:35:20 浏览:938
为什么银行卡输入密码后会退出来 发布:2025-08-17 05:35:20 浏览:655
二次元科技姬安卓版如何下载 发布:2025-08-17 05:24:04 浏览:463
h3cwap621如何修改密码 发布:2025-08-17 05:12:18 浏览:171
php图片上传到数据库 发布:2025-08-17 05:12:17 浏览:331
linux网络流量 发布:2025-08-17 05:07:32 浏览:745
计算机存储负数 发布:2025-08-17 05:01:47 浏览:282