教你如何在最短的时间内学会——内连接查询

1.内连接查询

查询信息的来源如果来自多张表,则必须对这些表进行连接查询。连接是把不同表的记录连到一起的最普遍的方法,通过连接查询可将多个表作为一个表进行处理。连接查询分为内连接和外连接。

1.1 内连接查询概要

内连接是应用程序中非常常见的连接操作,它一般都是默认的连接类型。内连接基于连接谓词,它将两张表的列组合在一起,产生新的结果表。内连接查询操作列出与连接条件匹配的数据行,它使用比较运算符比较被连接列的列值。内连接分为三种:交叉连接,相等连接和自然连接。

内连接语法如下:

SELECT fieldlist FROM table1 【INNER】JOIN table2 ON table1.columnl=table2.columnl【where condition】

!注意:

连接依据的列可能包括null值,null值不与任何值匹配(甚至和它本身)

例题如下


查询每件商品的商品名和分类名

结果如图:

代码如下:

SELECT GoodsName 商品,TypeName 分类 FROM goods JOIN type ON goods.TypeID=type.TypeID

分析:

将goods表与type表相连接并且运用内循环来查询 从goods表中提取goodname表示商品信息 找出共有的typeID项。

2.多表连接查询

2.1 多表连接查询方法

如果查询的信息来源多张表,则可以通过两两相连的方法建立多表查询。以下为三张表连接查询的语法。

语法如下:

SELECT fieldlist FROM table1 JOIN table2 ON table1.column1=table2.column2_1 JOIN table3 ON table2.column2_2=table3.column3 【where condition】

说明:

(1)table2与table1和table3两两相连。

(2)三表以上连接查询的方法与三表连接查询的方法一样,均是通过两两相连的方式实现

例题如下

查询每个订单是谁买的,什么时候买的,买了什么,买了多少个(花了多少钱)

结果示例

代码如下:

SELECT 
	NAME 客户,
	OrdersDate 日期,
	GoodsName 商品,
	Quantity 数量,
	SalePrice 金额


	
FROM

	user JOIN orders ON user.UserID = orders.UserId
  join ordersdetail on orders.OrdersID = ordersdetail.OrdersID
	JOIN goods ON goods.GoodsID = ordersdetail.GoodsID

!注意:

在这题需要特别注意每个数据库之间的关系。

其他连接

1.交叉连接,又称“笛卡尔连接”或“叉乘”,它是所有类型的内连接的基础。

2.自然连接,是一种特殊的内连接,它要求相连接的两张表的连接依据列必须是相同的字段。

3.左外连接: 包含左边表的全部行(不管右边的表中是否存在与它们匹配的行),以及右边表中全部匹配的行,结果集中那些不符合连接条件的来源于右表的列值为null。

4.右外连接:  是左外连接的反响连接 包含右边表的全部行(不管左边的表中是否存在与它们匹配的行),以及左边表中全部匹配的行,结果集中那些不符合连接条件的来源于左表的列值为null。

以上需要的数据库如下:

希望以上内容可以帮助到你,如果出现错误请自行理解

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值