数据库学习之四--Join, Left Join, Right Join, Full Join对比
一、Join, Left Join, Right Join, Full Join区别:
二、查询对比
1. 创建表Persons和Orders,并插入数据:
CREATE TABLE `persons` (
`ID_P` int(11) NOT NULL AUTO_INCREMENT,
`FistName` varchar(32) COLLATE utf8_bin DEFAULT NULL,
`LastName` varchar(32) COLLATE utf8_bin DEFAULT NULL,
`Age` int(11) DEFAULT NULL,
`City` varchar(32) COLLATE utf8_bin DEFAULT NULL,
PRIMARY KEY (`ID_P`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8 COLLATE=utf8_bin; -- ----------------------------
-- Records of persons
-- ----------------------------
INSERT INTO `persons` VALUES ('', 'Adams', 'John', '', 'London');
INSERT INTO `persons` VALUES ('', 'Bush', 'George', '', 'New York');
INSERT INTO `persons` VALUES ('', 'Carter', 'Thomas', '', 'Beijing');
CREATE TABLE `orders` (
`ID_O` int(11) NOT NULL AUTO_INCREMENT,
`ID_P` int(11) NOT NULL,
`OrderNo` int(11) NOT NULL,
`Price` float DEFAULT NULL,
PRIMARY KEY (`ID_O`)
) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8 COLLATE=utf8_bin; -- ----------------------------
-- Records of orders
-- ----------------------------
INSERT INTO `orders` VALUES ('', '', '', '11.2');
INSERT INTO `orders` VALUES ('', '', '', '');
INSERT INTO `orders` VALUES ('', '', '', '10.5');
INSERT INTO `orders` VALUES ('', '', '', '');
INSERT INTO `orders` VALUES ('', '', '', '16.6');
数据表显示如下:
persons:
Orders:
2. Join、Inner Join查询语句:
SELECT Persons.LastName, Persons.FistName, Orders.OrderNo
FROM Persons
INNER JOIN Orders
ON Persons.Id_P = Orders.Id_P
ORDER BY Persons.LastName
查询结果:
3. Left Join查询:
SELECT Persons.LastName, Persons.FistName, Orders.OrderNo
FROM Persons
LEFT JOIN Orders
ON Persons.Id_P = Orders.Id_P
ORDER BY Persons.LastName
查询结果:
4. Right Join查询:
SELECT Persons.LastName, Persons.FistName, Orders.OrderNo
FROM Persons
RIGHT JOIN Orders
ON Persons.Id_P = Orders.Id_P
ORDER BY Persons.LastName
查询结果:
5. Full Join查询:
SELECT FistName,LastName, Age,OrderNo
FROM Persons
FULL JOIN Orders
查询结果:
数据库学习之四--Join, Left Join, Right Join, Full Join对比的更多相关文章
- 一步一步跟我学习lucene(18)---lucene索引时join和查询时join使用演示样例
了解sql的朋友都知道,我们在查询的时候能够採用join查询,即对有一定关联关系的对象进行联合查询来对多维的数据进行整理.这个联合查询的方式挺方便的.跟我们现实生活中的托人找关系类似,我们想要完毕一件 ...
- SQL join中级篇--hive中 mapreduce join方法分析
1. 概述. 本文主要介绍了mapreduce框架上如何实现两表JOIN. 2. 常见的join方法介绍 假设要进行join的数据分别来自File1和File2. 2.1 reduce side jo ...
- SQL Server之LEFT JOIN、RIGHT LOIN、INNER JOIN的区别
很多人刚入门的时候分不清LEFT JOIN.RIGHT LOIN 和 INNER JOIN的区别,对它们的定义比较模糊,今天就简单的介绍一下它们的区别,对于入门的人来说,应该能够帮助你们理解. lef ...
- MySQL数据库学习笔记(六)----MySQL多表查询之外键、表连接、子查询、索引
本章主要内容: 一.外键 二.表连接 三.子查询 四.索引 一.外键: 1.什么是外键 2.外键语法 3.外键的条件 4.添加外键 5.删除外键 1.什么是外键: 主键:是唯一标识一条记录,不能有重复 ...
- SQL Server数据库学习总结
经过一段时间的学习,也对数据库有了一些认识,数据库基本是由表,关系,操作组成:对于初学者首先要学的 一图胜“十”言:SQL Server 数据库总结 一个大概的总结 经过一段时间的学习,也对数 ...
- MySQL数据库学习笔记----MySQL多表查询之外键、表连接、子查询、索引
本章主要内容: 一.外键 二.表连接 三.子查询 四.索引 一.外键: 1.什么是外键 2.外键语法 3.外键的条件 4.添加外键 5.删除外键 1.什么是外键: 主键:是唯一标识一条记录,不能有重复 ...
- 数据库学习---SQL基础(一)
数据库学习---SQL基础(一) 数据库学习---SQL基础(二) 数据库学习---SQL基础(三) SQL(struct query language)结构化查询语言:一种专门与数据库通信的语言, ...
- SQL数据库学习,常用语句查询大全
数据库学习 sql server数据库基本概念 使用文件保存数据存在几个缺点: 1.文件的安全性问题: 2.文件不利于查询和对数据的管理: 3.文件不利于存放海量数据 4.文件在程序中控制不方便. 数 ...
- SQL数据库学习系列之一
数据库知识的重要性不言而喻,以下链接给出了最最基础知识的讲解. 第一讲:SQL 语法 第二讲:SQL SELECT 语句 第三讲:SELECT DISTINCT 语句 第四讲:SQL WHERE 子句 ...
随机推荐
- GPIO 输出—使用固件库点亮 LED
编程要点 1. 使能 GPIO 端口时钟: 2. 初始化 GPIO 目标引脚为推挽输出模式: 3. 编写简单测试程序,控制 GPIO 引脚输出高.低电平. LED的电路图 过程: 1.拷贝一个库函 ...
- k8s-部署策略
在Kubernetes中有几种不同的方式发布应用,所以为了让应用在升级期间依然平稳提供服务,选择一个正确的发布策略就非常重要了. 选择正确的部署策略是要依赖于我们的业务需求的,下面我们列出了一些可能会 ...
- Kconfig语法简介
背景: 上篇文章<添加自己的驱动程序到Linux内核树中>简单介绍了在Linux内核配置中添加自己的驱动选项.但是仅靠如此简单的配置有时候不能满足我们的要求. Target :hi3531 ...
- 103 保序回归 isotonic regression
103 保序回归 isotonic regression 2016-03-30 11:25:27 bea_tree 阅读数 6895 版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权 ...
- Task执行多次
项目中,曾经出现过启动时数据库连接数瞬间增大,当时并没有注意该问题. 后期,由于Task任务多次执行,才着手查看这个问题,经排查,由于tomcat中webapp配置多次,导致webapp被扫描多次(配 ...
- Java Web 深入分析(5) Java ClassLoader 工作机制
Classloader 有3个作用 将class加载到JVM中去 审查每个类由谁去加载,是一种父优先的等级加载 把Class字节码统一编译成JVM统一要求的对象格式 ClassLoader的等级加载机 ...
- xcode 更改svn地址
xcode如何更改svn地址: 1在控制台 cd进入到项目路径下 命令提示符下输入 $svn info 查看svn信息 修改svn地址 输入如下命令 $svn switch --relocate ht ...
- optparser模块 与 ZIP爆破(Python)
optparser模块: 为脚本传递命令参数. 初始化: 带 Usage 选项(-h 的显示内容 Usage:): >>> from optparse import OptionPa ...
- 提高前端开发效率的N种方法
一.使用固定的html模板和css公共样式 事先把模板建好,每次需要用的时候直接拿来就行,不再需要为浏览器兼容问题考虑太多时间 这里我整理了一套,希望对大家有帮助:http://www.cnblogs ...
- 一款结合nmap及mascan还有shodan的扫描脚本
github在这里 https://github.com/s0md3v/Silver 很是舒服 Usage Note: Silver scans all TCP ports by default i. ...