基础DQL(数据查询)——多表关系及多表查询概述

简介: 我们要想在数据库的层面上体现这种关系,就要建立第三张中间表,中间表至少包含两个外键,分别关联两方主键

一、前言


在前几篇文章中介绍的数据查询都是单表查询,从本文开始将讲述多表查询。在开始讲述多表查询之前,先讲述一下多表关系已经多表查询的相关概念,有助于后面理解。


二、多表关系


1.一对多(多对一)


  • 很常见的例子就是部门与员工的关系:一个部门有很多员工,但是一个员工对应的只有唯一的一个部门


13fc175d0f43464a89e494470096f45c.png


  • 我们想要在数据库层面体现这种关系,就要在多的一方建立外键,指向一的一方的主键;所以我们把外键建立在员工表上,并指向部门表,让两个表产生联系


f9fbbfb9bc8248c289269a792151f4f1.png


2.多对多


  • 很常见的例子就是学生与课程的关系:一个学生可以选修很多课,一门课也可以有很多学生去选择


bff7afecbc7544d281dcac20b9942ee9.png


  • 我们要想在数据库的层面上体现这种关系,就要建立第三张中间表,中间表至少包含两个外键,分别关联两方主键


7acd0fe5e0644bffa6f6a3b3e2baf706.png


  • 在DG软件中我们如果实验一下,并查看关系可以得到如下结果


d44439707ad74481823a759f68c928c1.png


3.一对一关系


  • 很常见的例子就是用户与用户详情的关系


ab96a04ddce94763b434b46272151ea5.png


  • 我们要想在数据库的层面上体现这种关系,就要将单表拆分,将一张表的基础字段放在一张表中,其它详情字段放在另一张表中,来提升效率


c6e6b012c031492094e2d8113a74ed72.png


  • 然后在任意一方加入外键,关联另一方的主键,并设置外键唯一(UNIQUE),这样才能保证是一对一的关系


4d14284d75954d29afcdfb6e91a652ac.png


三、多表查询


1.概述


  • 从多张表中查询数据


  • 在笛卡儿积中要寻找属性值相同的


2.分类


  • 内连接:查询A、B交集部分数据


  • 左外连接:查询左表以及两表交集部分数据


  • 右外连接:查询右表以及两表交集部分数据


  • 自连接:当前表与自身的连接查询,必须用表别名


  • 子查询


四、结语


本文只是讲述了多表查询的一些基础概念,接下来会展开详细讲述

相关文章
|
10月前
|
SQL
DQL-基础查询
DQL-基础查询
32 0
|
SQL 关系型数据库 MySQL
MySQL数据库练习题(单表查询,多表关联查询)(一)
MySQL数据库练习题(单表查询,多表关联查询)
491 0
|
2月前
|
关系型数据库 MySQL 数据库
MySQL数据库—查询:关联查询(一篇教会你在多表关联下查询数据)
MySQL数据库—查询:关联查询(一篇教会你在多表关联下查询数据)
|
2月前
|
存储 关系型数据库 MySQL
MySQL数据库—多表设计与关联查询
MySQL数据库—多表设计与关联查询
|
3月前
|
SQL 前端开发 数据可视化
数据库开发关键之与DQL查询语句有关的两个案例
数据库开发关键之与DQL查询语句有关的两个案例
19 0
|
关系型数据库 MySQL 数据库
MySQL数据库练习题(单表查询,多表关联查询)(二)
MySQL数据库练习题(单表查询,多表关联查询)(二)
193 0
|
3月前
|
关系型数据库 MySQL 数据库
MySQL数据库——多表查询(1)-多表关系(一对多、多对对多、一对一)、多表查询概述(概念、笛卡尔积、分类)
MySQL数据库——多表查询(1)-多表关系(一对多、多对对多、一对一)、多表查询概述(概念、笛卡尔积、分类)
72 0
|
4月前
|
SQL 关系型数据库 MySQL
mysql查询语句练习总结(涵盖所有sql语法)
mysql查询语句练习总结(涵盖所有sql语法)
|
SQL 数据库
关系数据库SQL数据查询(一)
关系数据库SQL数据查询
811 0
|
SQL 数据库 索引
关系数据库SQL数据查询(二)
关系数据库SQL数据查询
117 0