文章来源: 学习通http://www.bdgxy.com/

普学网http://www.boxinghulanban.cn/

智学网http://www.jaxp.net/

前言

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

一,交叉连接

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

示例:实现线路表与车辆表,其语句如下:

`slelect*from line CROSS JOIN vehicle 等价于:select*from line,vehicle

二,内连接

内连接是应用程序中非常常见的连接操作,它一般都是默认的连接类型。

语法如下:

SElECT fieldlist FROM table1 【INNER】JOIN table2 ON
table1.column1=table2.column2 【where condition】

三,自然连接

自然连接是一种特殊的内连接,它要求相连的两张表的依据列必须是相同字段(字段名相同,字段属性相同)。
语法如下:

select fieldlist FROM table1 NATURAL JOIN table2 【where condition】

四,多表连接查询

如果查询的信息来源多张表,则可通过两两相连的反式建立多表连接查询。

三表连接查询语法如下:

SELECT fieldllist FROM table1 JOIN table2 ON
tabke1.column1=table.column2_1 JOIN table3 ontable2.column2_2=table.column3【where condition】

如果在FROM子句中,直接列出所有要连接的表,然后在WHERE子句中指定连接条件,此为简单多表查询,它与内连接功能相同。

使用两表连接查询语法格式如下:

SELECT fieldlist FROM table1, table2
HERE table1.column1=table2.column2 【and其他条件】

五,外连接

在内连接查询中,只有满足连接条件的记录才能出现在查询结果中。但在实际血用中,如果秀望不满足连接条件的记录也在查询结果中出现,这时需要使用外连接查询。外连接分左外连接和右外连接。

语法如下:

`SELECT字段名称FROM表名1 LEFT|RIGHT|FULL [OUTER] JOIN 表名2 ON 表名1.字段名1=表名2.字段名2`

1,左外连接

在外连接的结果集包括左表的所有记录和右表中满足连接条件的记录,结果集中那些不符合连接条件的来源于表的列值为nullo。

2,右外连接

右外连接是左外连接的反向连接。右外连接的结果集包括右表的所有记录和左表中满足连换条件的记象,结果集中那些不符合连接条件的来源于左表的列值为nullo。

作业:

获取所有非空调车的车牌号、型号和司机姓名、所属线路的线路号、起点站和终点站信息;

SELECTv.plateNO 车牌号,v.model 型号,d. NAME 司机姓名,l.lineNo 线路号,l.from_station 起点站,l.end_station 终点站
FROMline l,vehicle v,driver d
WHEREv.type = '非空调车'
AND l.lineID = v.lineID
AND d.driverID = v.driverID;

获取公交二公司所有司机信息。要求输出司机姓名、身份证、性别和电话;

SELECTNAME 司机姓名,licenseNO 身份证,d.gender 性别,phone 电话
FROMvehicle v,driver d,line l
WHEREv.driverID = d.driverID
AND v.lineID = l.lineID
AND company = '公交二公司'
GROUP BY

查询所有非空调车的车牌号、型号、线路号、起点站和终点站;

SELECT
v.plateNO 车牌号,v.model 型号,l.lineNo 线路号,l.from_station 起点站,l.end_station 终点站
FROMline l,vehicle v
WHEREv.type = '非空调车'
AND l.lineID = v.lineID;

显示所有线路及其所配车辆基本信息,并查询车辆所配司机相关信息,要求输出司机姓名、性别、电话、车牌号、型号、线路号、起点站和终点站;

   SELECTd.NAME 司机姓名,licenseNO 身份证,d.gender 性别,phone 电话,v.plateNO 车牌号,v.model 型号,l.lineNo 线路号,l.from_station 起点站,l.end_station 终点站
FROMvehicle v,driver d,line l
WHEREv.driverID = d.driverID
AND v.lineID = l.lineID
GROUP BY 司机姓名;

6.获取订单 ID 为 4 的订购明细信息,要求输出商品名、单价和件数。

SELECTc.cName 客户姓名,o.ordersDate 下单日期,g.goodsName 商品名,g.unitPrice 单价,od.quantity 件数
FROMordersdetail od,goods g,orders o,customer c
WHEREc.cName = '王传华'
AND c.customerID = o.customerID
AND o.ordersID = od.ordersID
AND od.goodsID = g.goodsID;

获取客户“王传华”所下订单详细信息,要求显示客户姓名、订单 ID、下单日期、商品名、单价和件数。

SELECTc.cName 客户姓名,o.ordersDate 下单日期,g.goodsName 商品名,g.unitPrice 单价,od.quantity 件数
FROMordersdetail od,goods g,orders o,customer c
WHEREc.cName = '王传华'
AND c.customerID = o.customerID
AND o.ordersID = od.ordersID
AND od.goodsID = g.goodsID;

使用左接获取所有客户的基本信息以及订购信息,要求输出客户姓名、电话、订单 ID 和下单时间。

SELECTc.cName 客户姓名,c.phone 电话,o.ordersID 订单ID,o.ordersDate 下单时间
FROMcustomer c
LEFT JOIN orders o on c.customerID=o.customerID;

8.使用右接获取所有客户的基本信息以及订购信息,要求输出客户姓名、电话、订单 ID 和下单时间。

SELECTc.cName 客户姓名,c.phone 电话,o.ordersID 订单ID,o.ordersDate 下单时间
FROMorders o
right JOIN customer c on c.customerID=o.customerID;

总结

到此这篇关于MYSQL连接查询的文章就介绍到这了,更多相关MYSQL连接查询内容请搜索菜鸟教程www.piaodoo.com以前的文章或继续浏览下面的相关文章希望大家以后多多支持菜鸟教程www.piaodoo.com!

你知道哪几种MYSQL的连接查询相关推荐

  1. MySql中左连接查询突然变得很慢

    MySql中左连接查询突然变得很慢 表结构: A表 userId,name B表 wId,userId,address A表左连接B表查询时,平时查询都非常的块,这几天突然变得很慢. 一个查询花了0. ...

  2. MySQL表连接查询

    MySQL表连接查询 1 基本格式 select fieldName from tbName1 连接符 tbName2 on 条件 2 笛卡尔乘积[避免] -- 笛卡尔乘积,没有约束条件,数据库匹配发 ...

  3. MySQL 数据库————连接查询

    目录 一.多表连接查询 1.内连接--inner join 2.左连接--left join 3.右连接--right join 二.存储过程 1.简介 2.优点 3.语法 ②.参数分类 ③.带参数的 ...

  4. MySQL学习--连接查询

    MySQL学习–连接查询 文章目录 MySQL学习--连接查询 1+N模式 全连接查询 左连接 左连接.右连接.内连接的区别 1+N模式 不使用连接查询: 要求查询出商品名称.商品栏目.商品库存.商品 ...

  5. mysql sql 连接查询语句_Mysql——sql数据库中的连接查询

    1.1.1   交叉连接(CROSS JOIN) 交叉连接(CROSS JOIN):有两种,显式的和隐式的,不带ON子句,返回的是两表的乘积,也叫笛卡尔积. 例如:下面的语句1和语句2的结果是相同的. ...

  6. mysql内连接查询原理_MySQL全面瓦解12:连接查询的原理和应用

    概述 MySQL最强大的功能之一就是能在数据检索的执行中连接(join)表.大部分的单表数据查询并不能满足我们的需求,这时候我们就需要连接一个或者多个表,并通过一些条件过滤筛选出我们需要的数据. 了解 ...

  7. MySQL 基础 ———— 连接查询

    引言 本篇文章承接<数据库与SQL语句>专栏,进入DQL的重要环节,可以说,这一部分的内容应该占据SQL语言的大部分使用场景. 本篇的连接查询知识,和后面的一些重要的查询知识总结,共同构成 ...

  8. MySQL学习-连接查询

    连接查询 操作的表 1.连接查询概述 2.连接查询的分类 3.连接查询原理以及笛卡尔积现象 4.怎么避免笛卡尔积现象? 5.内连接之等值连接 6.内连接之非等值连接 7.内连接之自连接 8.外连接 9 ...

  9. MYSQL左连接查询过滤问题

    1.MySQL left jion 连接查询,保留左边查询记录信息在on连接后面加过滤条件(连接右表,有则查值,无则为null) 2.where 条件过滤,过滤字段记录若为null,也会被过滤掉,例如 ...

  10. Mysql:连接查询

    连接查询 1.连接是关系型数据库的主要特点.连接查询是关系型数据库中最主要的查询,主要包括内连接.外连接等     ⑴连接查询:也可以叫跨表查询,需要关联多个表进行查询 2.通过连接运算符可以实现多个 ...

最新文章

  1. redis 集群搭建_Redis分布式缓存分布式集群搭建
  2. 非标自动化企业前十名_非标设备的现状
  3. win8系统关闭共享服务器,Windows8系统关闭Windows Media Player网络共享服务的方法
  4. ubuntu版本号查询
  5. alloc_page分配内存空间--Linux内存管理(十七)
  6. 在centos7上使用Docker安装oracle 11g
  7. ACL2021 知识图谱、推荐系统相关论文
  8. 编写c语言程序的可视化编程环境有哪些,C语言可视化编程环境设计及实现.pdf
  9. 阿里B2B技术架构演进详解 一篇创业者必须收藏的文章
  10. jsweet-quickstart下载测试
  11. 将一个数组中的值按逆序重新存放。例如,原来顺序为8,6,5,4,1。要求改为1,4,5,6,8
  12. Go go test测试机制介绍及实例【Go语言圣经笔记】
  13. 人眼中的光 —— 光强,光通量,光照度,光亮度是什么
  14. 解决服务器上传的tar格式的中不可以解压tar格式的压缩包 zip解压中文会在文件中显示乱码
  15. c语言如何反复执行一段程序,C语言中重复执行程序的问题
  16. 关于QTableWidget 表头设置无效的原因
  17. 普元云计算-一起来DIY一个人工智能实验室吧
  18. Mysql 获取成绩排序后的名次
  19. ng-bind、ng-value和ng-model
  20. 世界易学大会副主席孙志华斩获浙江首位非全日制易学博士

热门文章

  1. 计算机分盘的时候c盘留多少,win10分区c盘留多大合适
  2. 计算机网络 8 报文交换和分组交换2
  3. PHP语言之正则表达式
  4. 2020德勤面试开始了吗_四大面试-德勤面试流程免费给你,还不收好?截止2020年9月...
  5. iOS 打包流程教程
  6. ThinkPHP6敏捷后台开发框架
  7. 向量与矩阵(点线距离与交点)
  8. CentOS 搭建自主 KMS服务器 激活内网机器
  9. 吴翰清:云计算安全是“皇帝的新装”么?
  10. 安卓使用教程:(八门神器)破解游戏内购方法及原理