动力节点旗下在线教育品牌  |  咨询热线:400-8080-105 学Java全栈,上蛙课网
首页 > 文章

SQL连接查询介绍

08-25 17:12 59浏览
举报 T字号
  • 大字
  • 中字
  • 小字

SQL语言的主要功能就是同各种数据库建立联系,进行沟通。SQL查询是必须使用的操作功能,SQL连接查询SQL查询的核心,SQL连接查询的连接类型选择依据要看实际的需求,所以这篇文章对SQL连接查询相关知识进行介绍,帮助大家使用好MySQL数据库。

java编程实际开发中,数据往往不是存放储一张表中,而是同时存储在多张表中,这些表与表存在着关系,我们在检索数据的时候往往需要多张表联合起来检索,这种多表联合检索被称为连接查询或跨表查询,这就是连接查询的基本概念。

SQL连接查询中,若两张表进行连接查询的时候没有任何条件限制,最终的查询结果总数是两张表记录的乘积,这种情况称为笛卡尔积现象,会在没有任何条件限制的时候出现。

选择哪种连接查询是很重要的,也有不同的连接查询依据,其一是根据年代分类:

1. SQL92语法

查询每一个员工所在的部门名称,要求最终显示员工姓名和对应的部门名称

select xxxx from A 表名,B表名where 表连接条件 and 数据查询条件;

缺点是表连接条件与查询条件放在一起,没有分离。

2.SQL99语法(只掌握SQL99)

语法:select xxxx from A 表名 join B 表名 where 数据查询条件;

优点:表连接独立,结构清晰,如果结果数据不满足要求,可再追加where 条件进行过滤。

连接查询的根据其二是按照连接方式分类,可以分为内连接和外连接:

1.内连接

定义:只连接匹配的行,即A表与B表相连接,能够匹配的记录查询出来。

1)等值连接,例如:select e.ename,d.dname from emp e join dept d on e.deptno = d.deptno;//inner 可忽略

(2) 非等值连接,例如:select e.ename,e.sal,s.grade from emp e join salgrade s on e.sal between s.losal and hisal; //inner 可以省略

(3) 自连接,例如:select a.ename empname ,b.ename leadername from emp a join emp b on a.mgr = b.empno;//inner 可以忽略

2.外连接

A表和B表能够完全匹配的记录查询出来之外,将其中一张表的记录无条件的完全查询出来,对方表没有匹配的记录时,会自动模拟出null值与之匹配;

外连接的查询结果条数 >= 内连接的查询结果条数

1)左外连接(左连接)定义:包含左边表的全部行(不管右边的表中是否存在与它们匹配的行),以及右边表中全部匹配的行;

2)右外连接(右连接)定义:包含左边表的全部行(不管右边的表中是否存在与它们匹配的行),以及右边表中全部匹配的行;

3)全连接(了解)定义:包含左、右两个表的全部行,不管另外一边的表中是否存在与它们匹配的行。

连接查询在SQL查询中是比较重要的,如果连接查询的类型选择不当的话,非但不能提高查询效率,反而会带来一些逻辑错误或者性能低下,所以上面的内容希望大家可以好好学习,掌握好SQL连接查询的操作是学习MySQL数据库的一项重要技能。

0人推荐
共同学习,写下你的评论
0条评论
国家有关部门
程序员国家有关部门

6篇文章贡献20349字

作者相关文章更多>

推荐相关文章更多>

MySQL开发规范

达芬奇09-04 11:38

必须掌握的30种SQL语句优化

不写代码你养我啊08-23 11:30

ES(Elasticsearch)支持PB级全文搜索引擎入门教程

HelloWorld09-29 17:28

Java面试中的hadoop面试题及答案整理

兔子06-15 17:15

数据库分类之速成篇

呵呵呀06-17 18:54

发评论

举报

0/150

取消