`

内连接、左外连接、右外连接,全外连接简易解析

阅读更多

原创转载请注明出处:http://agilestyle.iteye.com/blog/1227808

 

创建表STUDENT
CREATE TABLE STUDENT
(
    SID INTEGER,
    NAME VARCHAR(20) NOT NULL,
    CONSTRAINTS STUDENT_SID_PK PRIMARY KEY(SID) 
);

 

创建表EXAM
CREATE TABLE EXAM
(
    EID INTEGER,
    SCORE NUMBER(2) NOT NULL,
    CONSTRAINTS STUDENT_EXAM_EID_FK FOREIGN KEY(EID) REFERENCES STUDENT(SID)
);
 
查看STUDENT表结构

查看EXAM表结构

 

插入数据
INSERT INTO STUDENT(SID, NAME) VALUES(1, 'Struts');
INSERT INTO STUDENT(SID, NAME) VALUES(2, 'Spring');
INSERT INTO STUDENT(SID, NAME) VALUES(3, 'Hibernate');
INSERT INTO EXAM(EID, SCORE) VALUES(1, 99);
INSERT INTO EXAM(EID, SCORE) VALUES(2, 88);

 

SQL INNER JOIN 关键字

INNER JOIN 关键字在表中存在至少一个匹配时返回行。

SQL INNER JOIN 语法

SELECT column_name(s)
FROM table1
INNER JOIN table2
ON table1.column_name=table2.column_name;

 或者:

SELECT column_name(s)
FROM table1
JOIN table2
ON table1.column_name=table2.column_name;

Note:INNER JOIN 与 JOIN 是相同的 

内连接 (显示两表id匹配的)
SELECT S.SID, S.NAME, E.EID, E.SCORE
FROM STUDENT S 
INNER JOIN EXAM E
ON S.SID = E.EID;
结果

 

SQL LEFT JOIN 关键字

LEFT JOIN 关键字从左表(table1)返回所有的行,即使右表(table2)中没有匹配。如果右表中没有匹配,则结果为 NULL

SQL LEFT JOIN 语法 

SELECT column_name(s)
FROM table1
LEFT JOIN table2
ON table1.column_name=table2.column_name;

或者:

SELECT column_name(s)
FROM table1
LEFT OUTER JOIN table2
ON table1.column_name=table2.column_name;

Note: 在某些数据库中,LEFT JOIN 称为 LEFT OUTER JOIN。

左连接(显示join 左边的表的所有数据) 
SELECT S.SID, S.NAME, E.EID, E.SCORE
FROM STUDENT S 
LEFT OUTER JOIN EXAM E
ON S.SID = E.EID;
结果

 

SQL RIGHT JOIN 关键字

RIGHT JOIN 关键字从右表(table2)返回所有的行,即使左表(table1)中没有匹配。如果左表中没有匹配,则结果为 NULL。

SQL RIGHT JOIN 语法

SELECT column_name(s)
FROM table1
RIGHT JOIN table2
ON table1.column_name=table2.column_name;

或者:

SELECT column_name(s)
FROM table1
RIGHT OUTER JOIN table2
ON table1.column_name=table2.column_name;

Note:在某些数据库中,RIGHT JOIN 称为 RIGHT OUTER JOIN

右连接(显示join 右边的表的所有数据) 
SELECT S.SID, S.NAME, E.EID, E.SCORE
FROM STUDENT S 
RIGHT OUTER JOIN EXAM E
ON S.SID = E.EID;
结果

 

SQL FULL OUTER JOIN 关键字

FULL OUTER JOIN 关键字只要左表(table1)和右表(table2)其中一个表中存在匹配,则返回行.

FULL OUTER JOIN 关键字结合了 LEFT JOIN 和 RIGHT JOIN 的结果。

SQL FULL OUTER JOIN 语法

SELECT column_name(s)
FROM table1
FULL OUTER JOIN table2
ON table1.column_name=table2.column_name;

全连接
SELECT S.SID, S.NAME, E.EID, E.SCORE  
FROM STUDENT S   
FULL OUTER JOIN EXAM E  
ON S.SID = E.EID;
结果


 

 

 

 

 

  • 大小: 6.8 KB
  • 大小: 6.6 KB
  • 大小: 15.3 KB
  • 大小: 18.8 KB
  • 大小: 15.5 KB
  • 大小: 28.1 KB
  • 大小: 33 KB
  • 大小: 33.9 KB
  • 大小: 38.9 KB
  • 大小: 3.8 KB
1
1
分享到:
评论

相关推荐

    连接onenet的c#简易上位机代码

    在本文中,我们将深入探讨如何使用C#语言开发一个简易的上位机程序,以便连接到中国移动物联网平台OneNet。上位机通常是指能够控制、读取或与下位机(如传感器、嵌入式设备)进行通信的计算机程序。在C#中,我们可以...

    根据SpringGraph改的简易节点连接器

    《基于SpringGraph改造的简易节点连接器解析》 在IT领域,数据可视化和图形界面设计是不可或缺的一部分。本文将深入探讨一个特别的项目——“根据SpringGraph改的简易节点连接器”。SpringGraph是一款用于构建动态...

    发那科0i-MF系统连接调试手册

    根据提供的文件信息,我们将详细解析发那科0i-MF系统连接调试手册中的主要内容及知识点。 发那科0i-MF系统是属于发那科公司生产的数控系统(CNC)的一个型号。发那科(FANUC)是全球著名的工业自动化控制系统及...

    oralce简易客户端,PLSQL远程连接数据可用

    Oracle简易客户端,通常指的是Oracle提供的一种轻量级的数据库管理工具——PL/SQL Developer(简称PLSQL),它允许用户远程连接到Oracle数据库进行管理和开发工作。这个压缩包可能包含了一个简化版的PLSQL客户端和...

    c3p0简易配置

    ### c3p0简易配置详解 c3p0是一个开源的JDBC连接池实现,它提供了对数据库连接的管理和优化,能够显著提升基于数据库的应用程序性能。本文将深入解析c30p配置中的关键参数,帮助理解其工作原理及如何进行有效配置。...

    FX5U与L02简易CPU连接(以太网),fx5u以太网连接电脑源码.zip

    两者都需要正确设置IP地址,确保在同一网络段内,以便进行通信。 2. **选择通信协议**:由于L02可能不具备高级通信功能,我们可能需要使用简单且广泛支持的协议,如Modbus TCP。FX5U作为服务器,L02作为客户端,...

    华中世纪星 HNC-18xpT3,M3连接调试说明书V1.0

    ### 华中世纪星 HNC-18xpT3,M3 连接调试知识点解析 #### 前言 华中世纪星 HNC-18xpT3,M3 数控装置连接与调试说明书V1.0是针对华中数控公司生产的HNC-18xp/M3,T3系列数控装置的操作指南。此文档不仅详细介绍了产品...

    soap-4.5附简单连接wsdl文档

    在"连接wsdl.docx"文档中,可能会详细介绍如何使用SOAP-4.5工具来解析和利用WSDL文档。通常,这涉及以下步骤: 1. **理解WSDL**:首先,开发者需要阅读并理解WSDL文件,识别服务的接口、输入和输出消息、以及服务的...

    基于STM32的wifi模块连接实现

    在本文中,我们将深入探讨如何实现基于STM32微控制器的WiFi模块连接,特别是使用ESP8266作为通信桥梁。STM32是一款广泛应用的32位微控制器,以其高性能、低功耗和丰富的外设接口而受到青睐。而ESP8266是一款低成本、...

    基于nio的简易聊天室

    这包括连接中断、数据传输错误、解析异常等情况,需要有相应的机制来捕获和处理这些异常,保证系统的稳定运行。 总的来说,"基于nio的简易聊天室"项目综合运用了Java NIO的多种核心特性,通过通道、缓冲区和选择器...

    用Visual Studio连接ONENET物联网平台做一个简易版微信,兼带连接esp8266通讯控继电器功能

    在本项目中,我们将利用Visual Studio这一强大的开发环境,结合ONENET物联网平台,构建一个简易版的微信应用,同时实现与ESP8266 WiFi模块的通信,以控制继电器的功能。以下是对这个项目涉及的技术点的详细解析: 1...

    简易的tcp聊天软件

    然而,"简易的TCP聊天软件"仅实现了最基础的功能,即一对一的文本通信,因此可能没有涉及这些复杂的设计。 此外,由于项目标签为“Linux C”,我们可以推断代码是针对Linux操作系统编写的。在Linux环境下,网络编程...

    tcp协议,实现简易聊天

    TCP(Transmission Control Protocol)协议是互联网上应用最广泛的一种网络传输层协议,它提供了一种面向连接、可靠的、基于字节流的通信服务。在这个简易聊天应用中,TCP协议是数据传输的基础,确保了信息的准确...

    一个简单的外呼管理系统代码

    - `database.py`:数据库操作相关的Python代码,包括连接数据库、执行SQL语句等功能。 - `interface.py`:用户界面的实现,可能使用了Tkinter或Flask等库。 - `dialer.py`:拨号逻辑,包括调用呼叫API、处理通话状态...

    简易ftp客户端,内含源码

    - **命令解析**:观察如何将用户输入的命令转化为FTP命令,并处理服务器的响应。 - **状态管理**:理解如何跟踪当前的FTP会话状态,如是否已登录、当前目录等。 - **异常处理**:学习如何在代码中添加适当的错误处理...

    简易的WebSocket代码

    WebSocket是一种在客户端和服务器之间建立持久连接的协议,它允许双方进行全双工通信,即数据可以在两个方向上同时传输,极大地提高了实时性。在Web应用中,WebSocket为实时交互提供了强大支持,如在线游戏、股票...

    java编写源代码简易聊天系统

    Java 编写的简易聊天系统是一种基于网络编程技术实现的通信工具,主要利用了Java的Socket编程接口和多线程机制。下面将详细讲解这个系统的实现原理、关键技术和涉及的Java概念。 1. **网络编程基础** 在Java中,...

    简易浏览器

    此外,浏览器还需要具备URL解析和DNS查找功能,以便找到并连接到用户请求的网站。 在用户界面设计上,"简易浏览器"可能包含地址栏,用户在这里输入网址或进行搜索;前进和后退按钮,用于在浏览历史中切换页面;书签...

Global site tag (gtag.js) - Google Analytics