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 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> SQL数据库语言基础之SqlServer多表连接查询与INNER JOIN内连接查询 -> 正文阅读

[大数据]SQL数据库语言基础之SqlServer多表连接查询与INNER JOIN内连接查询

一、简单连接查询

1、直接连接:无连接规则连接两表,得到的是两个表的笛卡尔积。

  • 连接后的行数=表1行数*表2行数
  • 连接后的列数=表1列数+表2列数
    原表:
    1.1
    直接连接查询后就会得11列,30行的数据。
SELECT * FROM STU,COU

SELECT * FROM STU
SELECT * FROM COU

注意:这中直接连接一般都不会用,因为连接后的数据是没有规律的,是简单粗暴地结合在一起的,因此很难得到有效信息。

2、有连接规则连接两表:使用WHERE语句设定条件
(1)查询所有学生的学生信息和家庭作业信息(等值连接):

SELECT * 
FROM STU,HOMEWORKS 
WHERE STU.SNO=HOMEWORKS.H_SNO

2.1
(2)查询所有学生的学生名字和家庭分数(等值连接):

SELECT STU.SNAME,HOMEWORKS.H_SCORE_1,HOMEWORKS.H_SCORE_2,HOMEWORKS.H_SCORE_3
FROM STU,HOMEWORKS
WHERE STU.SNO=HOMEWORKS.H_SNO

2.2
3、表别名简化语句

SELECT a.SNAME,b.H_SCORE_1,b.H_SCORE_2,b.H_SCORE_3
FROM STU a,HOMEWORKS b
WHERE a.SNO=b.H_SNO

就是直接在FROM的表名后面加上名字,需要注意的是,起完别名后,在SELECT和其他语句中只能用别名了,不能使用原名。
当表名很长或者很复杂的时候,别名是个很好用的方法,可以很好地简化语句。

二、多表连接查询

就是连接多个表,方法和两个表连接类似,只是需要加多个等值条件
1、连接多表实例: 查询 张一 的所有选课及各个选课的成绩:

SELECT S.SNAME, C.C_COURSE_NAME, H.H_SCORE_1, H.H_SCORE_2, H.H_SCORE_3
FROM STU S, COU C, HOMEWORKS H
WHERE S.SNO=H.H_SNO AND C.CNO=H.H_CNO AND S.SNAME='张一'

2.1

2、分析:
需要连接3个表,然后需要确定这3个表的连接条件,即为学号与课程号,分别为其中两个表的主键,通过主键对应的外键进行与另外一个表的连接。并且在WHERE中需要添加一个查询条件,也就是名字为“张一”。

三、INNER JOIN 内连接查询

1、inner join说明
也就是连接查询的典型连接规则,将两个表或两个以上的表以一定的连接条件连接起来,从中检索出满足条件的数据。

2、连接查询实例练习
(1)与使用WHERE的连接规则一样,不过INNER是放在FROM中的:

--直接使用WHERE
SELECT * 
FROM STU,HOMEWORKS 
WHERE STU.SNO=HOMEWORKS.H_SNO AND STU.SNAME='张一'

--使用JOIN内连接
SELECT *
FROM STU INNER JOIN HOMEWORKS ON STU.SNO=HOMEWORKS.H_SNO
WHERE STU.SNAME='张一'

2.2.1

(2)还是上面的例子:查询 张一 的所有选课及各个选课的成绩(三表连接,直接使用多个INNER JOIN):

--使用WHERE
SELECT S.SNAME, C.C_COURSE_NAME, H.H_SCORE_1, H.H_SCORE_2, H.H_SCORE_3
FROM STU S, COU C, HOMEWORKS H
WHERE S.SNO=H.H_SNO AND C.CNO=H.H_CNO AND S.SNAME='张一'

--使用JOIN内连接
SELECT S.SNAME,C.C_COURSE_NAME,H.H_SCORE_1,H.H_SCORE_2,H.H_SCORE_3
FROM STU S JOIN HOMEWORKS H ON S.SNO=H.H_SNO
	INNER JOIN COU C ON C.CNO=H.H_CNO  
WHERE S.SNAME='张一'

2.2.2

3、注意
(1)elect … from A join B on …和select … from B join A on …查询结果本质上一样。
(2)inner join 可以简写为 join,也称为内连接。

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2021-11-23 12:26:02  更:2021-11-23 12:28:19 
 
开发: 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/24 8:48:30-

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