IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> mysql连接查询 -> 正文阅读

[大数据]mysql连接查询

1.连接查询

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

2、连接类型

内连接

定义:

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

语法1:

select * from 表1

inner join 表2 on 表1.列 = 表2.列

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

?语法2:

?select * from 表1,表2 on 表1.列 = 表2.列

注:通常不使用此语法,效率较低

?3个表连接

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

显示指定列

左连接

定义:

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

语法:

select * from 表1

left join 表2 on 表1 .列 = 表2.列

例:

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

?例:

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

右连接?

?定义:

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

语法:

select * from 表1

right join 表2 on 表1 .列 = 表2.列

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

?例:

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

自关联

定义

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

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

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

?

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

?

例:查询河南省所有区县

?子查询

定义

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

主查询

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

主查询和子查询的关系

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

子查询充当条件

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

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

-- 查询班里学生的平均年龄
SELECT AVG(age) FROM students --21.5833
-- 查询大于平均年龄的学生
SELECT * from students where age > 21.5833

SELECT * FROM students where age >(SELECT AVG(age) FROM students);

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

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

-- 学生表中查询18岁学生的学号
SELECT studentNo from students WHERE age = 18

-- 成绩表中根据学号查询成绩
SELECT * FROM scores where studentNo in ('002','006' )

SELECT * FROM scores where studentNo in (SELECT studentNo from students WHERE age = 18 )

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

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

SELECT class,age from students where name = '王昭君'

SELECT * from students where class = '1班' and age = 20
SELECT * from students where (class,age) = ('1班' , '20')
SELECT * from students where (class,age) = (SELECT class,age from students where name = '王昭君')

?子查询充当数据源

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

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

子查询中特定关键字使用?

in范围?

格式:主查询where条件in(列子查询)

any|some任意一个

格式:主查询where 列 = any(列子查询)

在条件查询的结果中匹配任意一个几个,等价于in??

all

格式:主查询where列 = all(列子查询):等价于里面所有

格式:主查询where列<>all(列子查询):不等于其中所有?

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2022-05-24 18:15:37  更:2022-05-24 18:16:07 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 20:41:03-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码