0
点赞
收藏
分享

微信扫一扫

mysql连接查询

_LEON_ 2022-05-20 阅读 64

1.连接查询

作用:当查询结果的列来源于多张表时,需要将多张表连接成一个大的数据集,再选择合适的列返回

2、连接类型

内连接

定义:

内连接查询:查询结果为两个表匹配到的数据

语法1:

例:查询学生信息及学生成绩

 语法2:

 3个表连接

-- 查询学生信息及学生的课程对应的成绩

显示指定列

左连接

定义:

查询的结果为两个表匹配到的数据加左表特有的数据,对于右表中不存在的数据(匹配不到)使用null填充

语法:

例:

查询所有学生的成绩,包括没有成绩的学生

 例:

查询所有学生的成绩,包括没有成绩的学生,需要显示课程名

右连接 

 定义:

右连接查询:查询结果为两个表匹配到的数据加右表特有的数据,对于左边中不存在的数据使用null填充

语法:

例:查询所有学生的成绩,包括没有成绩的学生 

 例:

查询所有学生的成绩,包括没有成绩的学生,需要显示课程名

自关联

定义

连接查询的一种应用,对同一个表查询多次,把查询多次得到的结果连接组成新的结果 

主要应用场景:数据有上下级关系,并且存于同一个表中

 例:查询河南省的所有城市

 

例:查询郑州市的所有区县 

 

例:查询河南省所有区县

 子查询

定义

在一个select 语句中,嵌入另外一个select语句,那么嵌入的那个select语句称之为子查询语句

主查询

外城的select称之为主查询语句

主查询和子查询的关系

  • 子查询是嵌入到主查询中
  • 子查询是辅助主查询的,要么充当条件,要么充当数据源
  • 子查询是可以独立存在的语句是一条转正的select语句 

子查询充当条件

以下例子中子查询返回结果只有一个值(一行一列),这种称之为标量子查询

例1:查询大于平均年龄的学生

以下例子返回数据结果是一列数据(一列多行),这种称之为列子查询

例: 查询18岁学生的成绩,要求显示成绩

 以下例子查询的结果是一行(一行多列),这种称之为行子查询

例:查询和王昭君同班、同龄的学生信息 

 子查询充当数据源

以下例子子查询返回的结果是多行多列(相当于一个表),这种称之为表级子查询;

例:查询数据库和系统测试的课程成绩

子查询中特定关键字使用 

in范围 

any|some任意一个

all

举报

相关推荐

0 条评论