`

sql2005 内连接 外连接 交叉连接 查询 与联合查询(合并查询)

阅读更多

(一)内连接

内连接查询操作列出与连接条件匹配的数据行,它使用比较运算符比较被连接列的列值。内连接分三种:
1、等值连接:在连接条件中使用等于号(=)运算符比较被连接列的列值,其查询结果中列出被连接
表中的所有列,包括其中的重复列。

2、不等连接: 在连接条件使用除等于运算符以外的其它比较运算符比较被连接的列的列值。这些
运算符包括>、>=、<=、<、!>、!<和<>。

3、自然连接:在连接条件中使用等于(=)运算符比较被连接列的列值,但它使用选择列表指出查询
结果集合中所包括的列,并删除连接表中的重复列。
例,下面使用等值连接列出authors和publishers表中位于同一城市的作者和出版社:
SELECT *
FROM authors AS a INNER JOIN publishers AS p
ON a.city=p.city

又如使用自然连接,在选择列表中删除authors 和publishers 表中重复列(city和state):
SELECT a.*,p.pub_id,p.pub_name,p.country
FROM authors AS a INNER JOIN publishers AS p

ON a.city=p.city



多个inner join 时,执行顺序从左到右,例如:

SELECT T1.NAME,T2.AGE,T3.SEX FROM


TABLE1 AS T1 INNER JOIN TABLE2 AS T2

ON T1.ID=T2.ID

INNER JOIN TABLE3 AS T3

ON T1.ID=T3.ID


(二)外连接

内连接时,返回查询结果集合中的仅是符合查询条件( WHERE 搜索条件或 HAVING 条件)和连接条件
的行。而采用外连接时,它返回到查询结果集合中的不仅包含符合连接条件的行,而且还包括左表(左外
连接时)、右表(右外连接时)或两个边接表(全外连接)中的所有数据行。

如下面使用左外连接将论坛内容和作者信息连接起来:
SELECT a.*,b.* FROM luntan LEFT OUTER JOIN usertable as b
ON a.username=b.username

下面使用全外连接将city表中的所有作者以及user表中的所有作者,以及他们所在的城市:
SELECT a.*,b.*
FROM city as a FULL OUTER JOIN user as b
ON a.username=b.username

三)交叉连接

交叉连接不带WHERE 子句,它返回被连接的两个表所有数据行的笛卡尔积,返回到结果集合中的数
据行数等于第一个表中符合查询条件的数据行数乘以第二个表中符合查询条件的数据行数。
例,titles表中有6类图书,而publishers表中有8家出版社,则下列交叉连接检索到的记录数将等
于6*8=48行。
SELECT type,pub_name
FROM titles CROSS JOIN publishers
ORDER BY type
UNION运算符可以将两个或两个以上上SELECT语句的查询结果集合合并成一个结果集合显示,即执行联合查询。UNION的语法格式为:
select_statement

UNION [ALL]

selectstatement

[UNION [ALL]

selectstatement



其中selectstatement为待联合的SELECT查询语句。
ALL选项表示将所有行合并到结果集合中。不指定该项时,被联合查询结果集合中的重复行将只保留一

行。



联合查询时,查询结果的列标题为第一个查询语句的列标题。因此,要定义列标题必须在第一个查询语
句中定义。要对联合查询结果排序时,也必须使用第一查询语句中的列名、列标题或者列序号。
在使用UNION 运算符时,应保证每个联合查询语句的选择列表中有相同数量的表达式,并且每个查询选
择表达式应具有相同的数据类型,或是可以自动将它们转换为相同的数据类型。在自动转换时,对于数值类

型,系统将低精度的数据类型转换为高精度的数据类型。

例如:SELECT A1,A2,A3 FROM A

         UNION

         SELECT B1,B2,B3 FROM B

其中(A1,B1),(A2,B2),(A3,B3)必须为具有相同的数据类型,或是可以自动将它们转换为相同的数据类型



在包括多个查询的UNION语句中,其执行顺序是自左至右,使用括号可以改变这一执行顺序。例如:
查询1 UNION (查询2 UNION 查询3)
分享到:
评论

相关推荐

    SQL查询相关技术(常用SQL查询技术、比较逻辑运算符查询、SQL关键字查询、表结构与性能、时间与谓词、聚合函数、子查询与连接查询、交叉表、常用数据操作高级应用、试图存储过程和触发器的使用)

    理解如何编写复杂的查询,如联合查询、嵌套查询和分组查询,是SQL的基础。 2. **比较逻辑运算符查询**:在SQL中,比较逻辑运算符如=、、&lt;、&gt;、、&gt;=以及BETWEEN、IN和NOT IN等用于筛选满足特定条件的数据。理解这些...

    SQL 高级查询课件

    “连接查询”这部分可能会涵盖内连接(INNER JOIN)、外连接(LEFT JOIN、RIGHT JOIN和FULL JOIN)、交叉连接(CROSS JOIN)以及自连接。每种连接类型都有其独特的应用场景,理解和熟练运用它们能让你在处理复杂数据...

    SQL组合查询和ACCESS查询模块源码

    Access支持多种查询类型,包括选择查询、参数查询、联合查询、分组查询、子查询和动作查询(如更新、删除和追加查询)。这些查询可以用来过滤数据、合并表、计算字段值或修改数据库内容。 对于开发者来说,源码是...

    SQL查询技巧(范例宝典)

    SQL查询相关技术,源码大放送! 10.1 SELECT子句 426  实例292 查询特定列数据 426  实例293 使用列别名 428  实例294 在列上加入计算 430 EX10_03  实例295 使用函数设置条件 431  10.2 查询...

    sql进阶。。。。。。。。

    有四种类型的连接:内连接、外连接(左、右和全连接)、交叉连接。内连接只保留满足连接条件的记录,如等值连接使用`=`运算符匹配两个表中的对应记录。例如,如果我们想要找出所有既有商品类别又有供应商名称的对应...

    mysql连接查询、联合查询、子查询原理与用法实例详解

    连接查询是将两个或更多表的数据结合在一起进行查询,主要有四种类型:内连接(INNER JOIN)、外连接(LEFT JOIN、RIGHT JOIN)、自然连接(NATURAL JOIN)和交叉连接(CROSS JOIN)。 1. 内连接:只返回两个表中...

    最常用的SQL查询语句.docx

    本篇文章将详细讲解最常用的SQL查询语句,涵盖简单查询、联合查询和连接查询。 一、简单查询 1. 查询列和表:`SELECT`语句用于从数据库中提取数据,基本格式为`SELECT column_name FROM table_name`。例如,`...

    SQL+Server+2005考试试题

    3. **查询语句**:掌握SELECT语句的使用,包括联合查询、子查询、联接查询(内连接、外连接、交叉连接)、分组和聚合函数(GROUP BY、HAVING、COUNT、SUM、AVG、MAX、MIN)。 4. **视图**:创建和使用视图,理解...

    SQL语法大全

    2. ASP与SQL数据库连接: dim conn set conn=server.createobject("ADODB.connection") con.open "PROVIDER=SQLOLEDB;DATA SOURCE=SQL服务器名称或IP地址;UID=sa;PWD=数据库密码;DATABASE=数据库名称 %&gt; 建立...

    可能是史上最全的-------mysql连结查询精炼.pdf

    在本文件中,我们探讨了几种不同的连接类型:交叉连接、自然连接、内连接、外连接以及联合查询。 1. **交叉连接 (CROSS JOIN)**:也称为笛卡尔积,它返回第一个表中的每一行与第二个表中的每一行的组合。在MySQL中...

    精通sql,很好的sql教程

    4. 联合查询:UNION操作符用于合并两个或更多SELECT语句的结果集,去除重复行。 5. 分区函数:在大数据处理中,通过PARTITION BY将数据划分为多个部分,便于处理。 6. 自定义函数和存储过程:编写用户自定义函数...

    数据库原理与应用:第6章 表数据的选择操作.ppt

    此外,还有连接查询,允许从两个或更多表中检索数据,如内连接、外连接和交叉连接。子查询是嵌套在其他查询中的查询,用于提供临时结果供外部查询使用。联合查询则用于合并多个查询结果集。 学习这些概念和操作对于...

    access数据库应用教程使用查询PPT教学课件.pptx

    - **查询类型**:Access提供了多种查询类型,包括选择查询、参数查询、交叉表查询、操作查询和SQL查询。 2. **查询设计工具**: - **查询设计器**:是创建和修改查询的主要工具,支持各种查询类型的创建,包括...

    Access数据查询[参照].pdf

    在Access中,用户可以编写SQL语句来实现选择查询(从表中选择数据)、交叉表查询、动作查询,以及更复杂的操作如联合查询(合并多个查询的结果)、传递查询(基于另一查询的结果进行查询)、数据定义查询(创建或...

    自定义组合查询

    5. 交叉连接(Cross Join):返回两个表的笛卡尔积,即每个左表记录与右表的每个记录配对。 三、实现自定义组合查询的编程语言和工具 在实际开发中,我们可以使用SQL(结构化查询语言)来编写组合查询,它是与...

    MYsql 数据库0基础SQL语句实战精讲.docx

    - SQL92标准仅支持**内连接**(INNER JOIN),而SQL99标准推荐使用内连接及外连接(左外JOIN, 右外JOIN)和交叉连接。 - **FROM**子句指定要连接的表,**WHERE**子句定义连接条件,**JOIN**关键字连接表格。 8. **...

    TSQLFundamentals Code.zip

    T-SQL中的联接操作是将两个或多个表的数据合并在一起的关键方法,包括内连接、外连接和交叉连接。"Chapter 03 - Joins - Solutions.sql"展示了如何使用JOIN子句将不同表中的数据关联,以便进行更复杂的分析和报告。...

    sql相关的操作

    6. **交叉连接(CROSS JOIN):** 将一个表的每一行与另一个表的每一行进行组合,产生笛卡尔积。 ```sql SELECT lastName + firstName FROM lastNames CROSS JOIN firstNames; ``` 通过上述介绍,我们了解了SQL语言...

    mysql第五章.pdf

    内连接仅包含满足连接条件的行,外连接则包括至少一侧满足条件的所有行,而交叉连接则是将一个表的每一行与另一个表的每一行进行组合。 5. 子查询:子查询是嵌套在SELECT、INSERT、UPDATE或DELETE语句中的查询。子...

    ACCESS查询分析器

    - **操作查询**:如联合查询、追加查询、更新查询和删除查询,用于合并、添加、修改或删除记录。 - **参数查询**:允许用户在运行查询时输入值。 - **交叉表查询**:用于重新组织数据,将行转换为列或列转换为行...

Global site tag (gtag.js) - Google Analytics