`

【转载】SQL语句的解析过程

 
阅读更多
 【原文地址】http://www.cnblogs.com/myprogram/archive/2013/01/24/2874666.html

自己补充下两点

【一。内连与外连接】

1.什么时候使用连接查询:简单说来,为了满足业务的需求,我们需要将多个表中的数据集成一个结果集返回给用户。

2。用转载的文章中的两个表来说明

customerid city
FISSA Madrid
FRNDO Madrid
KRLOS Madrid
MRPHS Zion

 

orderid customerid
1 FRNDO
2 FRNDO
3 KRLOS
4 KRLOS
5 KRLOS
6 MRPHS
7 NULL

内连接:查询操作列与连接条件匹配的数据行

select * from customers C join orders O on c.customerid = o.customerid

customerid city orderid customerid
FRNDO Madrid 1 FRNDO
FRNDO Madrid 2 FRNDO
KRLOS Madrid 3 KRLOS
KRLOS Madrid 4 KRLOS
KRLOS Madrid 5 KRLOS
MRPHS MRPHS 6 MRPHS
外连接:返回的查询结果集中不仅包含符合连接条件的行,还包括左表或者右表或全部(左连接或者右连接或全连接)中所有的数据行接)中的所有数据行
select * from customers C  left outer join orders O on c.customerid = o.customerid

 

 select * from customers C  right  outer join orders O on c.customerid = o.customerid



 

 

【二。from 和on 】平时写sql 语句几乎都是用的select ..from where 即使是两个表之间的连接也是这样,从来没考虑过,这样写,到底是外连接还是内连接。on和from 有啥区别。

 

 select * from customers C  , orders O where c.customerid = o.customerid 


事实表示。这样子写,可以拆分为三部分。

(1)  from customers C  , orders O  默认为内连接

(2)where c.customerid = o.customerid  执行where 子句,在(1)的结果中进行过滤

(3)select * ,执行

SELECT 子句

 

 

 

  • 大小: 19.3 KB
  • 大小: 18.8 KB
  • 大小: 16.5 KB
分享到:
评论

相关推荐

    摘录转载sql语句大全

    本文摘录了几个关键的SQL优化技巧,旨在帮助用户写出更高效、性能更佳的查询语句。 1. **选择最有效的表名顺序**:在ORACLE数据库中,FROM子句中的表处理顺序是从右到左,因此,应将记录最少的表放在最后,以减少...

    sql精华笔记(转载)

    根据给定的信息,本文将对SQL事务处理方法以及部分SQL语句进行详细的解析与扩展。 ### SQL事务处理方法 在数据库操作中,事务处理是非常重要的一个环节,它确保了数据的一致性和完整性。通常,一个完整的事务过程...

    Excel表导入sqlserver(转载的,已试过成功)

    - **查询Excel数据**:构建SQL语句并使用`OleDbDataAdapter`填充数据集。 - **批量导入SQL Server**:使用`SqlBulkCopy`类进行高效的数据批量导入操作。 - `BatchSize`: 每批处理的行数。 - `NotifyAfter`: 每完成...

    db2学习代码例子(代码为转载网上)

    本资料集合主要围绕DB2的编程和开发,特别是涉及到存储过程和SQL语句的使用。以下是对每个文件内容的详细解析: 1. `DECLARE CURSOR statement .doc`:这部分内容可能详细介绍了DB2中的声明游标(DECLARE CURSOR)...

    mybatis interceptor

    // 获取BoundSql对象,其中包含了SQL语句和参数 BoundSql boundSql = mappedStatement.getBoundSql((Object) invocation.getArgs()[3]); // ... 分页逻辑 ... } } ``` 2. **识别分页查询**:我们需要判断当前...

    Java 最常见 200+ 面试题全解析:面试必备.pdf

    13. MyBatis:讨论MyBatis框架的特点,以及如何进行SQL语句映射和结果集处理。 14. RabbitMQ:是消息代理软件,用于实现系统之间的异步通信,介绍了如何使用RabbitMQ以及其核心概念,比如交换机、队列、绑定等。 ...

    【转载】oracle笔试4.doc

    所有这些SQL语句都是有效的,因此答案是E,没有语句会产生错误。 4. **EMPLOYEES表的描述**: - 这里给出的EMPLOYEES表的描述表明,它包含了员工ID、姓氏、名字、部门ID、职位类别和薪水等字段。这些字段可能用于...

    SSM整合,参考尚硅谷视频,转载笔记,非原创,侵权删

    MyBatis允许开发者编写SQL语句,然后通过XML或注解方式将其绑定到Java接口方法上,实现了数据访问的灵活和高效。 **4. SSM整合步骤** - **引入依赖**:在项目中添加Spring、SpringMVC和MyBatis的依赖库。 - **配置...

    c#试题 网络转载 很不错啊!

    4. SQL查询:取出第31到第40条记录,假设ID为主键,可以使用以下SQL语句(适用于SQL Server): ```sql SELECT * FROM A WHERE ID BETWEEN 31 AND 40 ``` 注意,这里的ID假设是连续的,如果不是连续的,需要考虑其他...

    jstl源代码,转载内容

    1. **Core标签库**: Core库是JSTL的基础,提供了控制流、条件语句、循环、URL处理等功能。例如,`<c:if>`用于条件判断,`<c:forEach>`用于循环遍历集合,`<c:import>`用于导入外部资源,`<c:set>`用于设置变量等。 ...

    hibernate官方入门教程 (转载)

    7. **Criteria查询**: 除了传统的SQL语句,Hibernate还提供了Criteria API进行动态查询,无需编写SQL,更加面向对象。 8. **HQL(Hibernate Query Language)**: Hibernate特有的查询语言,类似于SQL,但针对对象...

    易语言网页应用专题(转载)

    这包括变量定义、条件语句、循环语句、函数和模块的使用等基础内容。 2. **网络通信**:网页应用的核心是网络通信,易语言提供了多种网络模块,如HTTP请求模块,用于与服务器交互。学习如何使用这些模块发送GET和...

    《转载》ora-00020超出最大进程数

    3. 解决方案实例:提供具体的SQL语句或操作步骤来解决问题。 4. 预防措施:介绍如何通过优化配置、应用设计或监控策略来防止类似问题的再次出现。 5. 源码分析:如果标签提到“源码”,可能涉及Oracle数据库的源代码...

    Android 完美高仿的微信源码(转载)

    "MyAppWeixin"可能会利用SQLite来存储聊天记录和用户信息,开发者可以借此学习如何设计数据库表结构、执行SQL语句,以及使用ContentProvider进行数据共享。 6. **推送服务** 实时的消息推送是微信的一大特点,...

    新闻小偷asp版

    4. **数据库操作**:如果新闻存储在数据库中,需要使用ADO(ActiveX Data Objects)与数据库交互,如SQL插入语句。 5. **用户界面**:尽管描述中没有提及,但可能有一个简单的管理界面,用于配置抓取规则、查看抓取...

    ADO.NET Entity Framework 的分页类代码.rar

    Entity Framework是Microsoft开发的一个对象关系映射(ORM)框架,它允许开发者使用.NET语言来操作数据库,而无需直接编写SQL语句。这里的“分页类代码”指的是实现数据库查询结果分页显示的C#代码。 **描述分析:*...

    Qt 快速入门实战资料

    14. 数据库操作:讲解了如何在Qt中操作数据库,包括添加MySQL驱动、执行SQL语句以及使用QSqlQueryModel、QSqlTableModel等模型进行数据库数据的展示和管理。 15. XML数据处理:介绍了Qt中处理XML文件的方法,包括...

    Qt学习文档

    数据库操作是许多应用的核心部分,教程详细阐述了Qt与MySQL数据库的集成,使用QSqlQuery类执行SQL语句,以及不同类型的QSql模型,如QSqlQueryModel、QSqlTableModel和QSqlRelationalTableModel,帮助开发者实现数据...

    Java面试题

    10. **数据库操作**:掌握JDBC基本操作,事务处理,以及SQL语句优化。了解ORM框架如Hibernate和MyBatis的工作原理。 11. **Spring框架**:理解依赖注入(DI)和面向切面编程(AOP)的概念,熟悉Spring Boot和Spring...

    thinkPHP5快速入门手册

    - **SQL语句构造**:使用ThinkPHP5.0内置的方法构建复杂的SQL语句。 - **条件表达式**:解释如何使用条件表达式过滤查询结果。 - **排序和分页**:说明如何对查询结果进行排序和分页显示。 - **聚合函数**:介绍如何...

Global site tag (gtag.js) - Google Analytics