select连接查询

简要:

一、union联合查询

二、左右内连接



一、union联合查询

作用: 把2次或多次查询结果合并起来

具体: (表1查询结果) union (表2查询结果)

运行: 先算表1查询结果,再算表2查询结果。再通过union把结果联合起来。

总结:

a、左右查询结果列数一致

b、终于显示结果以第一张表的列名为主

c、左右查询结果的列类型最好也一致。不然就会进行转换。

由低到高。如表1结果A列为整形,表2结果A列为浮点型。则表1在A列的结果转换为浮点型

d、能够是不同表

e、假设不同的语句中取出的行,有全然同样(每一个列的值都同样),那么同样的行将会合并(去重)

案例:

查询 这种结果:

a16,b 21,c 14,d 41

步骤1: union来获取两张表的查询结果

步骤2: 把步骤1的查询结果看成暂时表

 

不足之处: 上述案例中表ta和tb中不存在全然同样的列(即查询结果中全部列的值都一样)

改动下tb表



此时。运行步骤2的sql语句



发现id为a的值总和为5而不是为10.

这是由于假设不同的语句中取出的行,有全然同样(每一个列的值都同样),那么同样的行将会合并(去重)

处理方案: 用union all

 

 

二、连接查询

通常情况下表与表之间是没有什么关系的。可是我们能够通过一个字段,让表与表发生关系。

把表看成集合。

2.1、左连接

语法: select 列1。列2。列N from tableA left join tableB on tableA.列=tableB.列

2.2、右连接

语法: select 列1,列2,列N from tableA right join tableB on tableA.列=tableB.列

2.3、内连接

语法: select 列1,列2,列N from tableA inner join tableB on tableA.列=tableB.列

2.4、左右内连接的差别

create table boy

( name char(3) not null,

flower char(5)

)engine=myisam charset utf8;

create table girl

( name char(3),

flower char(5)

)engine=myisam charset utf8;

insert into boy values('林书豪','玫瑰'),('刘翔','桃花'),('周杰伦','茉莉花'),('犀利哥','荷花'),

('刘德华','狗尾巴花');

insert into girl values('艾薇尔','玫瑰'),('居里夫人','桃花'),('芙蓉姐','茉莉花'),('凤姐','茉莉花'),('林志玲','荷花');

案例一: 依据花,男找女

左连接

以左表为准。去右表找匹配数据,找不到匹配,用NULL补齐。

总结: tableA为N ;tableB为M。则在以tableA为左表的情况下,得到的数据行数至少为N行。

案例二: 依据花,女找男

总结:
左连接和右连接相互转换。

A
在 B的左边  ==》B在A的右边

A left join B  ==》B rightjoin A

怎样记忆:

1、 左右连接能够相互转化

2、 能够把右连接转换为左连接来使用(兼容其他数据版本号)

案例三: 不管男女,查找有伴的人

总结: 内连接inner join 查询左右连接都有的数据。即得到左右连接的交集

思考: 是否能查出左右连接的并集呢?

答: 眼下不能直接获取,眼下的mysql不支持外链接。

但能够用union联合

The quieter you become,the more you are able to hear!

小贝_mysql select连接查询的更多相关文章

  1. 小贝_mysql三种子查询

    mysql三种子查询 简要: 一.三种子查询 二.三种子查询理解模型 一.mysql 三种子查询 where子查询.from子查询.exists子查询 二.理解模型: 2.1.一个好的模型,便于我们去 ...

  2. 小贝_mysql sql语句优化过程

    sql语句优化 一.SQL优化的一般步骤 (1).通过show status命令了解各种SQL的运行频率. (2).定位运行效率较低的SQL语句-(重点select) (3).通过explain分析低 ...

  3. 小贝_mysql建表以及列属性

    mysql建表以及列属性 简要: 一.建表原则 二.具体的列属性说明 一.建表原则 建表: 事实上就是声明列的过程,数据终于是以文件的形式放在硬盘(内存) 列: 不同的列类型占的空间不一样. 选列的原 ...

  4. 小贝_mysql主从复制作用以及案例

    mysql主从复制 简要: 一.mysql用户授权 二.mysql bin-log日志 三.mysql主从复制   一.mysql用户授权 1.命令 2.作用:进行权限控制 3.样例: (备注: 同意 ...

  5. 小贝_mysql优化学习

    mysql优化 简要: 1.数据库设计优化 2.sql语句优化 3.表切割 4.读写分离技术 一.数据库设计优化 1.表设计要符合三范式.当然,有时也须要适当的逆范式 2.什么是三范式 一范式: 具有 ...

  6. 小贝_mysql select5种子句介绍

    mysql select5种子句介绍 简要 一.五种字句 二.具体解释五种字句 一.五种字句 where.group by.having.order by.limit 二.具体解释五种字句 2.1.理 ...

  7. 小贝_mysql 存储过程

    存储过程 简要: 1.什么是存储过程 2.使用存储过程 一.存储过程 概念类似于函数,就是把一段代码封装起来.当要行这段代码的时候,能够通过调用该存储过程来实现.在封装的语句体里面.能够用if/els ...

  8. 小贝_mysql 触发器使用

    触发器 简要 1.触发器基本概念 2.触发器语法及实战样例 3.before和after差别 一.触发器基本概念 1.一触即发 2.作用: 监视某种情况并触发某种操作 3.观察场景 一个电子商城: 商 ...

  9. 小贝_mysql数据库备份与恢复

    mysql数据库备份与恢复 简要:        一.数据库备份        二.数据库恢复 一.数据库备份 1.备份简单说明 : 系统执行中,增量备份与总体备份 例: 每周日总体备份一次,周一到周 ...

随机推荐

  1. Spring事务支持:利用继承简化配置

    因为事务代理的实现类是 TransactionProxyFactoryBean . 事务代理Bean必须注入事务管理器. 大部分情况下,每个事务代理的事务属性大同小异,对于这种情况,Spring提供了 ...

  2. hibernate缓存机制【转】

    一.why(为什么要用Hibernate缓存?) Hibernate是一个持久层框架,经常访问物理数据库. 为了降低应用程序对物理数据源访问的频次,从而提高应用程序的运行性能. 缓存内的数据是对物理数 ...

  3. 利用Python访问Mysql数据库

    首先要明确一点,我们在Python中需要通过第三方库才能访问Mysql. 有这样几种方式:Mysql-python(即MySQLdb).pymysql.mysql-connector.Mysql-py ...

  4. SparkStreaming 编程指南

    摘要:学习SparkStreaming从官网的编程指南开始,由于Python编码修改方便不用打包,这里只整理python代码! 一.概述 Spark Streaming 是 Spark Core AP ...

  5. HDU——1418抱歉(平面欧拉公式)

    抱歉 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submiss ...

  6. LibreOJ2043 - 「CQOI2016」K 远点对

    Portal Description 给出平面上的\(n(n\leq10^5)\)个整点,求在欧几里得距离下第\(k\)远的点对之间的距离. Solution k-d树+堆. 用小根堆维护当前找到的第 ...

  7. bzoj3238 [Ahoi2013]差异 后缀数组+单调栈

    [bzoj3238][Ahoi2013]差异 Description Input 一行,一个字符串S Output 一行,一个整数,表示所求值 Sample Input cacao Sample Ou ...

  8. 详解keepalived配置和使用

    标签:keepalived 原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://lanlian.blog.51cto.com/6790 ...

  9. 【Windows API】OpenClipboard --- 剪切板(转)

    原文转自 http://www.cnblogs.com/wind-net/archive/2012/11/01/2749558.html 剪切板:系统维护的一个全局公共内存区域.每次只允许一个进程对其 ...

  10. 34深入理解C指针之---通过字符串传递函数

    一.通过字符串传递函数 1.定义:可以使用函数名(字符串)调用函数,也可以使用函数指针调用函数,将两者结合 2.特征: 1).在函数声明时使用函数指针 2).调用函数时使用函数名称(字符串) 3).可 ...