表数据

#简单的商品表

create table goods(

goods_id tinyint unsigned auto_increment primary key,

goods_name varchar(30) not null,

goods_price float(6,2) not null,

brand_id tinyint unsigned not null

);

insert into goods values (null, '百事可乐汽水2L', 7, 3),

(null, '可口可乐汽水2L', 6, 4),

(null, '百事可乐汽水330ml', 63, 3),

(null, '康师傅茉莉蜜茶1L', 77, 2),

(null, '柒牌T桖x马', 88, 5),

(null, '康师傅红烧牛肉面L', 47, 2),

(null, 'iphone 6s plush', 2637, 1),

(null, '乐视超级手机m2', 1000, 6),

(null, 'iphone X', 5207, 1),

(null, '乐视超薄手机', 17, 6),

(null, '可口可乐柠檬味汽水', 5, 4),

(null, '三星手机盖乐世', 2341, 99);

#品牌表

create table brand (

brand_id tinyint unsigned auto_increment primary key,

brand_name varchar(10) not null

);

insert into brand values(null, '苹果'),

(null, '康师傅'),

(null, '百事可乐'),

(null, '可口可乐'),

(null, '柒牌'),

(null, '乐视');

联合查询, 关键字: union all | distinct

将多个查询结果进行纵向上的拼接,

select *|字段列表  from 表名

union [all | distinct]  #默认值:distinct

select *|字段列表   from 表名;

应用场景1:

找出最便宜的苹果手机和最贵的百事可乐

(select * from goods where brand_id=1 order by  goods_price asc limit 1)

union all

(select * from goods where brand_id=3 order by  goods_price  desc limit 1);

应用场景2:

存储手机用户的信息?

首先,可以根据不同的市区放在不同的表中

然后,如果此时需要查询某个省内的所有潜在的vip客户(月消费在300元以上的),此时,可以分别查询各个市区的数据,然后再进行拼接(使用union查询语句)

连接查询——交叉连接 ,关键字: cross join

从一张表中的第一条记录开始连接另外一张表中的所有记录,并且保存所有的记录,其中也包括两张表的所有字段,也就是两张表做笛卡尔积!

连接查询——内连接, 关键字: inner join

内连接要区分左表和右表,出现在join关键字左边的就是左表,反之就是右表!

数据在左表中存在,同时在右表又对应的匹配的结果才会保存,如果没有匹配上,我们就认为该数据没有意义,也就不会被保存!

连接查询——外连接

左外连接, 关键字: left outer join, outer可以省略

同样是拿左表的每一条记录按照on后面的条件去匹配右表,如果匹配成功,那么就保存两个表的所有的记录,如果匹配失败,只保留左表的记录,而右表的记录全部为NULL,此时

右外连接, 关键字: right join

同样是拿左表的每一条记录按照on后面的条件去匹配右表,如果匹配成功,那么就保存两个表的所有的记录,如果匹配失败,只保留右表的记录,而左表的记录全部为NULL,此时

连接查询——自然连接, 关键字: natural join

这里的“自然”,是指两个或多个表进行连接查询的时候,系统会自动的去匹配连接条件,而不需要人为的指定!也就是没有on关键字了!和内外连接没什么区别!!!

自然内连接会自动删除字段名相同的一列(只保留一列),并且放在最前面!

自然内连接  关键字: natural join

自然连接其实和内外连接没有什么本质的区别,只是自然连接中的连接条件由系统自动匹配罢了!只有匹配的才会保存

自然左外连接  关键字: natural left join

自然连接其实和内外连接没有什么本质的区别,只是自然连接中的连接条件由系统自动匹配罢了!如果匹配成功,那么就保存两个表的所有的记录,如果匹配失败,只保留左表的记录,而右表的记录全部为NULL

自然右外连接  关键字: natural right join

自然连接其实和内外连接没有什么本质的区别,只是自然连接中的连接条件由系统自动匹配罢了!如果匹配成功,那么就保存两个表的所有的记录,如果匹配失败,只保留右表的记录,而左表表的记录全部为NUL

mysql怎么避免联合查询_mysql-联合查询,连接查询相关推荐

  1. mysql 多表中间表查询_mysql多表连接查询

    新建两张表: 表1:student  截图如下: 表2:course  截图如下: (此时这样建表只是为了演示连接SQL语句,当然实际开发中我们不会这样建表,实际开发中这两个表会有自己不同的主键.) ...

  2. MySQL之DQL(数据查询语言)- 表连接查询

    目录 一.简介 1.1.男生表 1.2.女生表 二.左连接查询(左外连接) 三.右连接查询(右外连接) 四.内连接查询 五.全连接查询 五.自连接查询 六.子查询 七.伪表查询 学习计划: 一.简介 ...

  3. server多笔记录拼接字符串 sql_第四章、SQL Server数据库查询大全(单表查询、多表连接查询、嵌套查询、关联子查询、拼sql字符串的查询、交叉查询)...

    4.1.查询的类型 declare @value as int set @value = 50 select  'age:'as age,2008 years,@valueas va --这种查询时跟 ...

  4. mysql的联合索引_mysql联合索引

    联合索引 概念 联合索引又叫复合索引,即一个覆盖表中两列或者以上的索引,例如: index_name(column a,column b) 1 创建方式 执行alter table语句时创建 alte ...

  5. mysql关联表分页查询_MySQL一对多分页查询-主表关联表条件查询问题

    文章目录 1 摘要 2 情景复现 2.1 数据模型 2.2 核心代码 2.3 测试数据 2.4 拓展一点 1 摘要 分页查询是后台项目中最常见的一种操作,在一对多(one to many)的关系表中, ...

  6. mysql如何链表查询_mysql怎样两表查询?

    mysql两表查询的方法:1.使用"select 字段列表 from 表1,表2 [where 条件]"进行查询:2.使用"SELECT 字段列表 FROM 表1 关键字 ...

  7. mysql怎样两表查询_mysql怎样两表查询?

    mysql两表查询的方法:1.使用"select 字段列表 from 表1,表2 [where 条件]"进行查询:2.使用"SELECT 字段列表 FROM 表1 关键字 ...

  8. mysql多类型查询_MYSQL中的多类型查询及高级查询操作

    离散查询 select * from car where price=30 or price=40 or price=50 or price=60; select * from car where p ...

  9. mysql教程多表查询_mysql重点,表查询操作和多表查询

    表单查询 1. 完整的查询语句语法 select distinct(* or 字段名 or 四则运算 )from 表名 where 条件 group by 条件 having 条件 order by ...

  10. mysql 新建子查询_Mysql创建SQL子查询ALIAS

    通常这些被称为视图.例如: CREATE VIEW vMyLongQuery AS SELECT a, b, c FROM (LONG QUERY) X WHERE ... 然后可以像这样引用: SE ...

最新文章

  1. Google148亿元收购Fitbit,抢占苹果、三星可穿戴设备市场地盘
  2. 用计算机写作ppt文库,[百度文库.ppt
  3. VC++ 2010 MFC新特性学习 - 增强与Windows Shell的集成
  4. 硬件加速会使电脑黑屏吗?
  5. 音视频技术开发周刊 | 204
  6. NOS跨分区灾备设计与实现
  7. 一键部署VS插件:让.NET开发者更幸福
  8. 智能停车O2O 独角兽初现:“ETCP停车”获5000万美金A轮融资
  9. linux文件句柄,【LINUX】使用lsof处理文件恢复、句柄以及空间释放问题
  10. oracle19c监听服务启动失败,Oracle19c安装(有失败成功记录)
  11. 177. Nth Highest Salary
  12. 设计模式 里氏替换原则
  13. sql2008安装时提示参数不能为空_PHP命令行脚本接收传入参数的三种方式
  14. python能做什么-大家都在学的 Python,可以用来干什么?
  15. Oracle 11g RAC 修改IP
  16. vsftpd+mysql使用
  17. Echarts世界国家中英文对照
  18. python实现热力图_基于 Folium 的 Python 热力图实现
  19. SAP Exchange Rate 外币汇率的设置
  20. 关于数学建模的个人见解(实验室专用)

热门文章

  1. css3价格斜切_HTML5+CSS3价格表翻转切换动画
  2. Kubernetes之yaml文件
  3. hadoop概念介绍
  4. pycharm无法安装第三方的包(AttributeError: module 'pip' has no attribute 'main')
  5. Javascript的数组对象
  6. html获取url后面的参数_Golang Gin 实战(四)| URL查询参数的获取和原理分析
  7. Docker简单实践(一)
  8. c语言学习-将一个2*3的矩阵转置为3*2的矩阵
  9. python实现绘制信号序列语谱图
  10. OpenShift 4 - DevSecOps (2) - 修复 RHACS 发现的安全隐患