数据库的操作分开增删改查,其中查询操作基本占系统的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用法的更多相关文章

  1. MySql学习笔记三

    MySql学习笔记三 4.DML(数据操作语言) 插入:insert 修改:update 删除:delete 4.1.插入语句 语法: insert into 表名 (列名1,列名2,...) val ...

  2. MYSQL学习笔记三:日期和时间函数

    MYSQL学习笔记三:日期和时间函数 1. 获取当前日期的函数和获取当前时间的函数 /*获取当前日期的函数和获取当前时间的函数.将日期以'YYYY-MM-DD'或者'YYYYMMDD'格式返回 */ ...

  3. mysql学习笔记三 —— 数据恢复与备份

    要点: 1.存储引擎2.导入导出3.备份与恢复 查看当前数据库中的所有表use db1:show tables: 1.存储引擎 不同的发动机(引擎)适用的汽车类型不一样. 存储和处理的不同方式.不同的 ...

  4. MySQL学习笔记三:库和表的管理

    1.MySQL数据库服务配置好后,系统会有4个默认的数据库. information_schema:虚拟对象,其对象都保存在内存中 performance_schema:服务器性能指标库 mysql: ...

  5. mysql基本数据类型(mysql学习笔记三)

    Mysql数据类型 小数: 浮点:小数位可以变化 Float单精度默认精度6位左右 Double 双精度默认精度16位左右 支持,控制数值范围 Type(M,D) M表示所有数值位数(不包括小数点和符 ...

  6. MySQL学习笔记(三)—索引

    一.概述 1.基本概念       在大型数据库中,一张表中要容纳几万.几十万,甚至几百万的的数据,而当这些表与其他表连接后,所得到的新的数据数目更是要大大超出原来的表.当用户检索这么大量的数据时,经 ...

  7. MySQL学习笔记(三):常用函数

    一:字符串函数 需要注意的几个细节: 1.cancat中有一个字符串为null,则结果为null. 2.left(str,x) 和 right(str,x)中x为null,则不返回任何字符串,不是nu ...

  8. mysql学习笔记(三)

    -- 主键冲突(duplicate key) ,'xujian','anhui'); ,'xiewei','anhui'); ,'luyang','anhui');-- 主键冲突了 -- 可以选择性的 ...

  9. MySql学习笔记(三) —— 聚集函数的使用

    1.AVG() 求平均数 select avg(prod_price) as avg_price from products; --返回商品价格的平均值 ; --返回生产商id为1003的商品价格平均 ...

  10. Mysql学习笔记(三)对表数据的增删改查。

    正文内容. 这一部分是最简单的,也是最麻烦的.简单是因为其实只包括增删该插四个部分.大体上看,增加数据.删除数据.修改数据.查询数据都不麻烦啊,我们日常都是常用的.这个谁不会呢?以前在培训机构学mys ...

随机推荐

  1. 75.VS2013和opencv3.1.0开发环境配置

    首先要做的就是 开发环境配置,具体过程如下: Step 1:OpenCV环境变量配置 我的电脑--->属性--->高级系统设置--->高级--->环境变量--->系统变量 ...

  2. SQLite3 安装、基本操作

    1. 安装SQLite3 sudo apt-get install sqlite3 2. 安装Sqlite3编译需要的工具包 如果,你需要的话可以安装该工具包.只是为了体验一把,可以不安装.该项是可选 ...

  3. Ubuntu每次开机后提示:检测到系统程序出现问题的解决方法

    首先,错误报告存放位置: cd /var/crash/ ls //可以查看错误报告 1 2 sudo rm /var/crash/* //删除该目录下的所有文件 1 但是,这只是删除掉的是错误报告,如 ...

  4. zookeeper客户端连接报错

    [root@zoo1 zookeeper-3.4.10]# bin/zkCli.sh -server 172.16.1.10:2181 2017-10-27 00:37:59,326 [myid:] ...

  5. mysql 操作时间戳

    1.将long显示成时间 SELECT FROM_UNIXTIME(1249488000, '%Y%m%d' ) 2.日期格式化成时间戳 SELECT UNIX_TIMESTAMP('2016-05- ...

  6. 翻译:MLAPP(2.1节 概率概述)

    笔者:尝试翻译MLAPP(Machine Learning: a Probabilistic Perspective)一书,供机器学习的学者参考,如有错误理解之处请指出,不胜感激!(如需转载,请联系本 ...

  7. Centos bash: make: command not found

    一般出现这个bash: make: command not found提示,是因为安装系统的时候使用的是最小化mini安装,系统没有安装make.vim等常用命令,直接yum安装下即可: yum -y ...

  8. lr_get_attrib_string的使用

    loadrunner controller 传递参数的一个方法: lr_get_attrib_string lang  =    lr_get_attrib_string("lang&quo ...

  9. 关于node的path模块

    const path=require('path'); //basename('绝对路径','截取的后缀') 返回文件的扩展名 let a=path.basename('C:\\temp\\myfil ...

  10. SPOJ GSS3-Can you answer these queries III-分治+线段树区间合并

    Can you answer these queries III SPOJ - GSS3 这道题和洛谷的小白逛公园一样的题目. 传送门: 洛谷 P4513 小白逛公园-区间最大子段和-分治+线段树区间 ...