数据库原理与应用(SQL Server)笔记 第三章 连接查询

本文涉及的产品
云数据库 RDS SQL Server,基础系列 2核4GB
简介: 数据库原理与应用(SQL Server)笔记 第三章 连接查询

前言


本次内容,我们主要掌握数据库的多表查询,即通过两个表及两个以上的表之间的逻辑关系进行检索,将通过连接谓词和关键字JOIN来介绍。


一、连接谓词


连接谓词在WHERE子句中使用比较运算符给出连接条件,对多个表连接,同时在FROM子句中要指定所连接的多个表。为了区分多个表中同样的列字段,我们使用“ . ”来表示哪个表的哪个字段(例如classes.classNO则表示classes表的classNO列)。


格式如下:

(表名1.) 列名1 <比较运算符> (表名2.) 列名2


这里我们只讲等值连接,即表之间是通过比较运算符“=”连接的,而非等值连接即是通过非等号连接。

另外当在目标列中去掉相同的字段名,即为自然连接;而如果将同一个表进行连接称为自连接。


例、根据以下三个表信息,使用T-SQL语句查询销售员“胡宝林”与客户“王小姐”所签订的订单编号及日期。

1666917704491.jpg

SQL语句:

USE Sales
SELECT Seller.*,Customer.*,Orders.*           
FROM Seller,Customer,Orders               
WHERE Seller.Salename='胡宝林' AND Customer.ConnectName='王小姐' AND
Seller.SaleID=Orders.SaleID AND Customer.CustomerID=Orders.CustomerID

运行结果:

1666917727409.jpg


二、JOIN连接


另一种方式则是使用关键字JOIN连接,其表示方式是用在FROM子句当中。这里的连接也分很多种:


(一)内连接


内连接按照JOIN…ON中ON所指定的连接条件合并两个表,返回满足连接条件的行,由于内连接是系统默认的,可以省略INNER关键字。内连接可以实现多个表的连接。

格式如下:

FROM 表1 JOIN 表2 ON <连接条件>

我们来看一个题。


例、根据以下两个表的信息,使用T-SQL语句查询所有员工有订单的销售员的信息表,采用内连接。

1666917746369.jpg


SQL语句:

USE Sales
SELECT Seller.*,Orders.*      
FROM Seller JOIN Orders ON Seller.SaleID=Orders.SaleID


运行结果:

1666917792507.jpg


(二)外连接


首先我们要知道,外连接只能对两个表进行。

外连接跟内连接的差别在于内连接只有满足连接条件的行才能输出结果,而外连接输出结果不仅包括满足连接条件的行,还包括相应表的所有行。

这里外连接分为三种:

名称 作用
左外连接 输出结果不仅包括满足连接条件的行,还包括左表的所有行
右外连接 输出结果不仅包括满足连接条件的行,还包括右表的所有行
完全外连接 输出结果不仅包括满足连接条件的行,还包括两个表的所有行


(三)交叉连接


交叉连接,只做了解,即对两个表进行笛卡尔积,即第一个表的行数乘以第二个表的行数(笛卡尔积可以表示为一个二维表,表中每行对应一个元组,每列的值来自一个域)。


可以了解一下笛卡尔积


相关文章
|
3月前
|
SQL 关系型数据库 MySQL
Go语言数据库编程:使用 `database/sql` 与 MySQL/PostgreSQL
Go语言通过`database/sql`标准库提供统一数据库操作接口,支持MySQL、PostgreSQL等多种数据库。本文介绍了驱动安装、连接数据库、基本增删改查操作、预处理语句、事务处理及错误管理等内容,涵盖实际开发中常用的技巧与注意事项,适合快速掌握Go语言数据库编程基础。
261 62
|
2月前
|
SQL XML Java
配置Spring框架以连接SQL Server数据库
最后,需要集成Spring配置到应用中,这通常在 `main`方法或者Spring Boot的应用配置类中通过加载XML配置或使用注解来实现。
243 0
|
3月前
|
SQL 人工智能 关系型数据库
GitHub 热门!MindsDB 破解 AI + 数据库瓶颈,究竟有什么惊艳亮点?只需 SQL 即可实现智能预测
MindsDB 是一款将 AI 能力直接注入数据库的开源工具,支持 MySQL、PostgreSQL 等多种数据库连接,通过 SQL 即可完成模型训练与预测。它提供 AutoML 引擎、LLM 集成、联邦查询等功能,简化 MLOps 流程,实现数据到智能的无缝衔接。项目在 GitHub 上已获 32.4k 星,社区活跃,适用于客户流失预警、推荐系统、情感分析等场景。开发者无需深入模型细节,即可快速构建智能解决方案。项目地址:https://github.com/mindsdb/mindsdb。
716 0
|
SQL 数据库
如何快速备份还原Sql Server 数据库
备份数据库 选择你要备份的数据库,鼠标右键单击,选择任务-备份   弹出备份数据库窗口,选择添加    弹出选择备份目标窗口,点击浏览,选择存放备份数据库的目录,输入文件名,后缀名输入.bak,点击确定,确定,备份完成     还原数据库  鼠标右键单击数据库,选择还原文件和文件   ...
1441 0
|
数据库 SQL 数据安全/隐私保护
|
5月前
|
SQL 数据库 数据安全/隐私保护
数据库数据恢复——sql server数据库被加密的数据恢复案例
SQL server数据库数据故障: SQL server数据库被加密,无法使用。 数据库MDF、LDF、log日志文件名字被篡改。 数据库备份被加密,文件名字被篡改。
|
SQL 数据库
数据库数据恢复—SQL Server数据库报错“错误823”的数据恢复案例
SQL Server附加数据库出现错误823,附加数据库失败。数据库没有备份,无法通过备份恢复数据库。 SQL Server数据库出现823错误的可能原因有:数据库物理页面损坏、数据库物理页面校验值损坏导致无法识别该页面、断电或者文件系统问题导致页面丢失。
241 13
数据库数据恢复—SQL Server数据库报错“错误823”的数据恢复案例

热门文章

最新文章