`

SQL连接查询 --原理

SQL 
阅读更多
此文转载自网易博客.
SQL连接查询 --原理2010-11-12 19:58:26|  分类: SqlServer |  标签:查询  sql  where  on  连接   |字号大中小 订阅 .

SQL查询的基本原理:两种情况介绍。
第一、   单表查询:根据WHERE条件过滤表中的记录,形成中间表(这个中间表对用户是不可见的);然后根据SELECT的选择列选择相应的列进行返回最终结果。

第二、   两表连接查询:对两表求积(笛卡尔积)并用ON条件和连接类型进行过滤形成中间表;然后根据WHERE条件过滤中间表的记录,并根据SELECT指定的列返回查询结果。

第三、   多表连接查询:先对第一个和第二个表按照两表连接做查询,然后用查询结果和第三个表做连接查询,以此类推,直到所有的表都连接上为止,最终形成一个中间的结果表,然后根据WHERE条件过滤中间表的记录,并根据SELECT指定的列返回查询结果。
理解SQL查询的过程是进行SQL优化的理论依据。

ON后面的条件(ON条件)和WHERE条件的区别:

ON条件:是过滤两个链接表笛卡尔积形成中间表的约束条件。
WHERE条件:在有ON条件的SELECT语句中是过滤中间表的约束条件。在没有ON的单表查询中,是限制物理表或者中间查询结果返回记录的约束。在两表或多表连接中是限制连接形成最终中间表的返回结果的约束。
从这里可以看出,将WHERE条件移入ON后面是不恰当的。推荐的做法是:
ON只进行连接操作,WHERE只过滤中间表的记录。

本文转载自:http://nqyongyuan.blog.163.com/blog/static/37431964201010127582631/
分享到:
评论

相关推荐

    flume-ng-sql-source-1.5.2

    - **代码结构**:源码分析可以帮助理解内部工作原理,如如何建立数据库连接、执行查询、将结果转化为事件等。 - **扩展性**:对于开发人员,源码提供了扩展和定制的基础,例如添加新的数据库适配器,或优化查询...

    sqljdbc4-4.0.jar.zip

    要理解sqljdbc4-4.0.jar的工作原理,首先要了解JDBC的基本概念。JDBC是Java语言访问数据库的标准接口,通过它可以调用SQL语句,实现数据的增删改查操作。在Java程序中,我们首先需要加载JDBC驱动,然后创建数据库...

    数据库原理及运用实验四SQL连接查询.doc

    数据库原理及运用实验四 SQL 连接查询 本实验报告主要探讨了数据库原理的应用,通过 SQL 连接查询实现了多种复杂的查询操作。以下是实验报告的详细解释: 一、数据库原理 数据库原理是数据库系统的基础理论,它...

    sql-parser-master.zip_Parser_SQL parser

    这个解析器可能用于分析、验证和转化SQL查询,以便于执行。 SQL解析器的工作原理通常涉及以下步骤: 1. **词法分析**:这是解析过程的第一步,解析器会读取SQL语句,并将它们分解成一系列的“词法单元”或“标记”...

    sql_exporter-0.5.linux-amd64.tar.gz

    通常,配置文件(如`config.yml`)会定义数据库连接信息和要执行的SQL查询,而启动脚本则用于启动sql_exporter服务。 配置sql_exporter时,需要指定数据库类型、连接参数(如主机名、端口、用户名、密码)以及SQL...

    flume-ng-sql-source-1.4.3.jar

    3. **工作原理**:SQL Source 通过定期执行用户定义的 SQL 查询来检测数据的变化。查询通常会包含时间戳字段,以识别自上次查询以来的新增或更新记录。一旦发现变化,源会将结果数据作为事件发送到 Flume Channel,...

    PyPI 官网下载 | soda-sql-hive-2.1.0b5.tar.gz

    `soda-sql-hive-2.1.0b5`是Soda SQL的一个版本,特别针对Apache Hive,一个分布式存储和查询系统,广泛用于大数据处理。 在这个版本`2.1.0b5`中,我们看到开发者可能引入了新的特性、改进或修复了已知问题。"b5...

    SQL Server T-SQL Recipes, 4th Edition

    - **连接基础**: 涵盖内连接、外连接等多种连接方式的原理及应用场景。 - **自连接**: 介绍如何在一个表上进行连接操作,用于分析复杂的关系结构。 - **多表查询**: 探讨如何通过嵌套查询或多个`JOIN`语句来从多个表...

    sql远程连接-2.0

    首先,我们要明白SQL远程连接的基本原理。当一个客户端尝试远程连接到SQL服务器时,它会通过网络发送一个请求,服务器接收到请求后进行身份验证,一旦验证成功,就会建立一个TCP/IP连接,允许客户端执行SQL查询和...

    sql2000-----chm

    在学习SQL2000的过程中,你将深入理解数据库管理系统的基本原理,如ACID属性(原子性、一致性、隔离性和持久性),以及事务处理的概念。此外,还会接触到备份与恢复策略,性能调优,安全性管理,包括用户权限、角色...

    SQL Server高级查询与T-SQL编程知识点汇总

    学习SQL Server高级查询与T-SQL编程,意味着深入理解数据库设计原理,掌握高效的数据操作和查询技巧,这在开发和管理大型数据库系统时至关重要。通过实践和熟悉这些概念,可以提高数据库性能,确保数据的准确性和...

    sql2000--jdbc--jar

    3. **创建Statement/PreparedStatement**:通过连接对象,我们可以创建`Statement`或`PreparedStatement`对象,用于执行SQL查询或更新语句。 4. **执行SQL**:执行SQL语句,获取结果集。 5. **处理结果**:对返回...

    SQL连接器 SQL连接器

    SQL连接器是数据库管理系统与应用程序之间的重要桥梁,它允许程序通过特定的接口与各种数据库进行交互,从而实现数据的查询、插入、更新和删除等操作。在本文中,我们将深入探讨SQL连接器的工作原理、常见类型以及...

    sql连接查询

    sql查询基础,连接查询介绍及实例,简洁形象的描述了连接查询的原理。

    SQLServer-sql查询入门

    ### SQLServer-SQL查询入门知识点详解 #### 一、SQL简介 - **定义与作用**:SQL(Structured Query Language)即结构化...随着技术的发展,虽然SQL的具体实现可能会有所不同,但其核心原理和使用方式却始终保持一致。

    sql server 2005 技术内幕t-sql查询源码

    《SQL Server 2005 技术内幕:T-SQL查询源码》是一本深入探讨SQL Server 2005中T-SQL查询技术的专业书籍。T-SQL(Transact-SQL)是Microsoft SQL Server数据库管理系统中使用的SQL扩展版本,它在标准SQL的基础上增加...

    SQL-injection-detective.rar_Detective_sql injection_sql 注入_sql注入

    1. SQL注入原理:SQL注入发生时,用户输入的数据未经验证或过滤就直接被用于构建数据库查询,导致攻击者能够执行非授权的操作,如读取、修改、删除敏感数据,甚至完全控制数据库服务器。例如,一个简单的登录表单...

    mybatis慢SQL插件

    基于mybatis的慢SQL小插件,原理是mybatis拦截器。只需要在springboot的配置文件做简单的配置,mybatis拦截器将SQL中所有参数自动做了填充。拦截器监控慢SQL并将完整的可执行的SQL语句打印在日志文件中,复制该SQL...

    [电子书] SQL Server 2012 T-SQL 实用技巧 (英文版)

    对于SQL Server 2012,T-SQL的掌握至关重要,因为它直接影响到数据的查询效率、数据库设计以及应用程序的性能。 本书的核心内容可能包括以下几个方面: 1. **基础查询**:介绍如何使用SELECT语句进行基本的数据...

    sql ---跨服务器数据库操作

    在SQL Server中,链接服务器是一种特殊的对象,它允许用户连接到远程的数据库服务器,并执行查询或事务。链接服务器可以通过以下T-SQL命令创建: ```sql EXEC sp_addlinkedserver @server = N'ITSV', @...

Global site tag (gtag.js) - Google Analytics