一个项目中肯定会有多张数据表,而数据表之间会存在各种各样的关系。这时我们需要的数据,可能不会直接通过一张表全部获取到,这时就需要同时查询多张数据表,得到最后想要的数据。

下面以具体的实例来进行相关知识概念的梳理。

首先创建两张表并插入相关的数据:

1 create tableA(2 A_ID int primary keyauto_increment,3 A_NAME varchar(20) not null

4 );5 insert into A values(1,'苹果');6 insert into A values(2,'橘子');7 insert into A values(3,'香蕉');8

9 create tableB(10 A_ID int primary keyauto_increment,11 B_PRICE double

12 );13 insert into B values(1,2.30);14 insert into B values(2,3.50);15 insert into B values(4,null);

View Code

1.内连接查询:查询的结果为两表的公共部分

语法:

①select   列名1,列名2,......from table1,table2 where table1.列名 = table2.列名;

实例:查询出每个水果的价格     SELECT * FROM A,B WHERE A.A_ID=B.A_ID;

②select 列名1,列名2,.......from table1 inner join table2 on 条件

实例:查询出每个水果的价格    SELECT * FROM A INNER JOIN B ON A.A_ID=B.A_ID;

2.外链接查询:外链接查询分为左外连接,右外连接,全连接

1)左外连接:左表数据不动,右边表的数据往左表上去添加,不管是否找到,都将显示左边表中全部记录。

实例:查询出每个水果的价格(不管能否查到水果对应的价格,都要把水果显示出来)

SELECT * FROM A LEFT OUTER JOIN B ON A.A_ID=B.A_ID;

2)右外连接:用右边表去左边表查询对应记录,不管是否找到,右边表全部记录都将显示。

实例:查询每个水果的价格   SELECT * FROM A RIGHT OUTER JOIN  B ON A.A_ID=B.A_ID;

3)全连接:左外连接和右外连接的结果合并,其实就是左外链接和右外连接之和,其中不去除重复的使用union all,去除重复的使用union;

①SELECT * FROM A LEFT OUTER JOIN B ON A.A_ID=B.A_ID

UNION ALL

SELECT * FROM A RIGHT OUTER JOIN B ON A.A_ID=B.A_ID;

②SELECT * FROM A LEFT OUTER JOIN B ON A.A_ID=B.A_ID

UNION

SELECT * FROM A RIGHT OUTER JOIN B ON A.A_ID=B.A_ID;

mysql 全表连接_MySQL学习—多表查询(内连接,外链接,全连接)相关推荐

  1. mysql怎么创建表视频教程_mySQL学习入门教程——2.创建表

    二.创建表 一.创建数据表的SQL语句模型(弱类型) CREATE TABLE [IF NOT EXISTS] 表名称( 字段名1 列的类型[属性][索引], 字段名2 列的类型[属性][索引], - ...

  2. mysql行级安全_MySQL学习笔记(五):MySQL表级锁和行级锁

    一:概述 相对其他数据库而言,MySQL的锁机制比较简单,其最显著的特点是不同的存储引擎支持不同的锁机制.比如,MyISAM和MEMORY存储引擎采用的是表级锁(table-level locking ...

  3. mysql多表删除_MySQL中多表删除方法

    如果您是才接触MySQL数据库的新人,那么MySQL中多表删除是您一定需要掌握的,下面就将为详细介绍MySQL中多表删除的方法,供您参考,希望对你学习掌握MySQL中多表删除能有所帮助. 1.从MyS ...

  4. mysql 不锁表备份_Mysql不锁表备份之Xtrabackup的备份与恢复

    一.Xtrabackup介绍 MySQL冷备.热备.mysqldump都无法实现对数据库进行增量备份.如果数据量较大我们每天进行完整备份不仅耗时且影响性能.而Percona-Xtrabackup就是为 ...

  5. 怎么修改mysql的表名称_mysql怎么修改表名?

    本篇文章将和大家讲述如何快速修改mysql表名,有同样需要的朋友学习一下吧,希望你看后能有所帮助. mysql修改表名的方法: 具体步骤:打开cmd->输入"mysql -u root ...

  6. mysql 多表联查_MySQL的多表联查

    今天是周二,我们一起来研究下MySQL的多表联查啊.或许你也知道,表之间的关系有:1对1.1对多.多对多.然后...... 1. 嵌套查询:一个查询的结果是另外sql查询的条件 如:查询stu表中年龄 ...

  7. 如何用mysql创建股票数据库_mysql数据库创建表

    Mysql错误代码大全 1016错误:文件无法打开,使用后台修复或者使用phpmyadmin进行修复. 1044错误:数据库用户权限不足,请联系空间商解决 1045错误:数据库服务器/数据库用户名/数 ...

  8. MySQL授权修改表结构_MySQL创建修改表结构

    一.数据库的概述 1.什么是数据库 DB,DataBase 数据库:依照某种数据模型进行组织并存放到存储器的数据集合 DBMS,DataBase Management System 数据库管理系统:用 ...

  9. mysql inner join 效率_mysql的大小表前后顺序对inner join的效率有影响吗?

    Aititi 集合连接 表格连接的join算法 attilax总结 艾提拉总结 常见的join算法 - CSDN博客.html Nexted-loop join中小表驱动大表的原因分析 原创 2017 ...

最新文章

  1. python requests 报错 Connection aborted ConnectionResetError RemoteDisconnected 解决方法
  2. Groovy的本地安装和Eclipse插件的配置
  3. Java包装类和基本数据类型的对照
  4. [js] 请使用js实现一个秒表计时器的程序
  5. python-访问者模式
  6. 正在锁定计算机 win7转圈圈打不开,Win7网络连接图标一直转圈的原因和解决方法...
  7. mongodb php 删除,MongoDB / PHP:从数组中删除元素
  8. WebView起步1
  9. 太沉重了:中国获全球“人道主义摄影奖”的照片!组图
  10. 诗与远方:无题(九十一)
  11. LeetCode题库7:反转整数——JavaScript解答
  12. Fibonacci in the Pocket 模拟
  13. 苹果修复老旧设备中的两个 iOS 0day
  14. MySQL必知必会(二)
  15. 阅读分布式锁文章总结
  16. [滑模控制器浅述] (1) 二阶系统的简单滑模控制器设计
  17. Java打印直角三角形
  18. python进行文本分类_python实现文本分类
  19. 永善县黄华镇大永高速通车了
  20. 截取某个字符串之前的字符

热门文章

  1. C# BackgroundWorker 的使用、封装
  2. 解决ubuntukylin 13.10安装wine时无法解决软件包依赖问题
  3. Spring DI[依赖注入]
  4. Apache Storm 官方文档 —— 源码组织结构
  5. SQL SERVER 2008清理日志
  6. [实战演练]腾讯2013年校招软件开发类笔试题目(选择题部分)
  7. 广播,多播(二)(Broadcasting, Multicasting)
  8. hdu 1227(二维dp)
  9. ThingsBoard 小结
  10. AUC、Precision、Recall、F-measure、Accuracy