MYSQL学习笔记 (三)JOIN用法
数据库的操作分开增删改查,其中查询操作基本占系统的90%,大家所说的优化SQL语句基本是优化查询语句。接下来将学习JOIN的用法,JOIN包括:INNER JOIN(内连接)、LEFT JOIN(左外连接)、RIGHT JOIN(右外连接)、FULL JOIN(全外连接)、CROSS JOIN(交叉连接)。在说明之前,先创建user、schoolMap、school三个表以便实验需要。
1、INNER JOIN
1)、INNER JOIN返回两个表中联结字段相等的行,即两个表中联结字段都存在并且相等。
2)、INNER 连接二个数据表的语法:
SELECT * FROM 表A INNER JOIN 表B ON 表A.字段 = 表B.字段;
3)、示例:
4)、INNER JOIN 连接三个数据表的用法:
SELECT * FROM (表1 INNER JOIN 表2 ON 表1.字段号=表2.字段号) INNER JOIN 表3 ON 表1.字段号=表3.字段号
连接多个表以此类推
5)、INNER JOIN使用的时候若不加ON条件等价于FULL JOIN不不加ON条件 、CROSS JOIN
6、INNER INTO 后面的查询的条件加在ON后面和WHERE效果是一样的
2、LEFT JOIN(左外连接)
1)、LEFT JOIN返回包括左表中的所有记录和右表中联结字段相等的记录。
2)、LEFT JOIN连接二个数据表的语法:
SELECT * FROM 表A LEFT JOIN 表B ON 表A.字段 = 表B.字段;
3)、LEFT JOIN示例:
4)、LEFT JOIN 连接三个数据表的用法:
SELECT * FROM (表1 LEFT JOIN 表2 ON 表1.字段号=表2.字段号) LEFT JOIN 表3 ON 表1.字段号=表3.字段号
连接多个表以此类推
3、RIGHT JOIN(右外连接)
1)、RIGHT JOIN返回包括右表中的所有记录和左边表中联结字段相等的记录。
2)、RIGHT JOIN连接二个数据表的语法:
SELECT * FROM 表A RIGHT JOIN 表B ON 表A.字段 = 表B.字段;
3)、RIGHT JOIN示例:
4)、RIGHT JOIN 连接三个数据表的用法:
SELECT * FROM (表1 RIGHT JOIN 表2 ON 表1.字段号=表2.字段号) RIGHT JOIN 表3 ON 表1.字段号=表3.字段号
连接多个表以此类推
4、FULL JOIN
MYSQL 不支持FULL JOIN 通过LEFT JOIN 与 RIGHT JOIN 来实现
用法:
select * from A left join B on A.id = B.id (where 条件)
union
select * from A right join B on A.id = B.id (where条件);
MYSQL学习笔记 (三)JOIN用法的更多相关文章
- MySql学习笔记三
MySql学习笔记三 4.DML(数据操作语言) 插入:insert 修改:update 删除:delete 4.1.插入语句 语法: insert into 表名 (列名1,列名2,...) val ...
- MYSQL学习笔记三:日期和时间函数
MYSQL学习笔记三:日期和时间函数 1. 获取当前日期的函数和获取当前时间的函数 /*获取当前日期的函数和获取当前时间的函数.将日期以'YYYY-MM-DD'或者'YYYYMMDD'格式返回 */ ...
- mysql学习笔记三 —— 数据恢复与备份
要点: 1.存储引擎2.导入导出3.备份与恢复 查看当前数据库中的所有表use db1:show tables: 1.存储引擎 不同的发动机(引擎)适用的汽车类型不一样. 存储和处理的不同方式.不同的 ...
- MySQL学习笔记三:库和表的管理
1.MySQL数据库服务配置好后,系统会有4个默认的数据库. information_schema:虚拟对象,其对象都保存在内存中 performance_schema:服务器性能指标库 mysql: ...
- mysql基本数据类型(mysql学习笔记三)
Mysql数据类型 小数: 浮点:小数位可以变化 Float单精度默认精度6位左右 Double 双精度默认精度16位左右 支持,控制数值范围 Type(M,D) M表示所有数值位数(不包括小数点和符 ...
- MySQL学习笔记(三)—索引
一.概述 1.基本概念 在大型数据库中,一张表中要容纳几万.几十万,甚至几百万的的数据,而当这些表与其他表连接后,所得到的新的数据数目更是要大大超出原来的表.当用户检索这么大量的数据时,经 ...
- MySQL学习笔记(三):常用函数
一:字符串函数 需要注意的几个细节: 1.cancat中有一个字符串为null,则结果为null. 2.left(str,x) 和 right(str,x)中x为null,则不返回任何字符串,不是nu ...
- mysql学习笔记(三)
-- 主键冲突(duplicate key) ,'xujian','anhui'); ,'xiewei','anhui'); ,'luyang','anhui');-- 主键冲突了 -- 可以选择性的 ...
- MySql学习笔记(三) —— 聚集函数的使用
1.AVG() 求平均数 select avg(prod_price) as avg_price from products; --返回商品价格的平均值 ; --返回生产商id为1003的商品价格平均 ...
- Mysql学习笔记(三)对表数据的增删改查。
正文内容. 这一部分是最简单的,也是最麻烦的.简单是因为其实只包括增删该插四个部分.大体上看,增加数据.删除数据.修改数据.查询数据都不麻烦啊,我们日常都是常用的.这个谁不会呢?以前在培训机构学mys ...
随机推荐
- nginx配置不当导致的目录遍历下载漏洞-“百度杯”CTF比赛 2017 二月场
题目:http://98fe42cede6c4f1c9ec3f55c0f542d06b680d580b5bf41d4.game.ichunqiu.com/login.php 题目内容: 网站要上线了, ...
- 69.Spartan-6的SelectIO资源
2.1.6 SelectIO资源 Spartan-6有丰富的I/O资源,包括SelectIO和RocketIO. Spartan-6每个I/O片(Tile)包含两个IOB.两个ILOGIC2.两个OL ...
- Tomcat: Connector中HTTP与AJP差别与整合
apache tomcat 整合(ajp proxy, http proxy) 1.软件: apache: httpd-2.2.17-win32-x86-openssl-0.9.8o.msi tomc ...
- mysql一个字符问题
顺便记录一下在使用mysql过程中碰到的一些问题: 有时候使用脚本迁移数据时会碰到乱码的问题,即使将表字符集设置成utf8也无济于事,这个时候在执行sql之前加一句set names utf8即可.
- Java显式锁学习总结之三:AbstractQueuedSynchronizer的实现原理
概述 上一篇我们讲了AQS的使用,这一篇讲AQS的内部实现原理. 我们前面介绍了,AQS使用一个int变量state表示同步状态,使用一个隐式的FIFO同步队列(隐式队列就是并没有声明这样一个队列,只 ...
- WP主题模板制作修改教程
WP主题模板制作修改教程 实际上,当我们打开某个主题的文件夹时,看到的并不止这两个文件,而是更多.但一般来说,在一个完整的 WP 主题文件夹中都应该包含下列文件(也称为模板文件):页面 模板文件 用途 ...
- Python全栈开发之3、数据类型set补充、深浅拷贝与函数
转载请注明出处http://www.cnblogs.com/Wxtrkbc/p/5466082.html 一.基本数据类型补充 set是一个无序而且不重复的集合,有些类似于数学中的集合,也可以求交集, ...
- lr_get_attrib_string的使用
loadrunner controller 传递参数的一个方法: lr_get_attrib_string lang = lr_get_attrib_string("lang&quo ...
- Redis实战(一)
一.准备 Redis 是一个开源的使用ANSI C 语言编写.支持网络.可基于内存亦可持久化的日志型.Key-Value 数据库.Redis的出现,很大程度补偿了memcached这类key/valu ...
- PHP 中如何正确统计中文字数
PHP 中如何正确统计中文字数?这个是困扰我很久的问题,PHP 中有很多函数可以计算字符串的长度,比如下面的例子,分别使用了 strlen,mb_strlen,mb_strwidth 这个三个函数去测 ...