#建一个人员表,一个省份表
create table people(
id int primary key auto_increment,
name varchar(5),
age smallint(1),
sex char(3),
province_id int(5)
);create table province(
id int primary key auto_increment,
pro_name char(5)
);insert into province values(null,"四川省"),(null,"云南省"),(null,"贵州省"),(null,"湖南省");insert into people values
(null,"王老五",18,'男',1),
(null,"张翠花",19,'女',2),
(null,"史珍香",22,'女',1),
(null,"关阴",20,'女',3),
(null,"朱逸群",20,'男',2),
(null,"杨伟",23,'男',3),
(null,"蔡坤",25,'男',4),
(null,"吴凡",27,'男',null)#1.查询用户所有信息以及所在省份名称
select * from people,province
#出现了笛卡尔积现象,只有people.province_id=province.id能够匹配
#数据才是我们想要的。
#解决:加一个people.province=province.id 条件#一、内连接:用左表去匹配右表,查询满足条件的数据#(1)隐式内连接 select 查询表 from 左表,右表 where 关联条件
select peo.*,pro.pro_name from people peo ,province pro where peo.province_id=pro.id;#(2)显示内连接 select 查询列表 from 左表[inner] join 右表
on 关联条件 [where 其他条件]
select p1.*,p2.pro_name from people p1
inner join province p2
on p1.province_id=p2.id;#二、外连接#(1)左连接:保证左表的记录全部显示,哪怕不满足匹配条件
#格式: select 查询列表 from 左表 left[outer] join 右表 on 关联条件 [where 其他条件]
select p1.*,p2.pro_name from people p1
left join province p2
on p1.province_id=p2.id;#(2)右连接:保证右表的记录全部显示,左表记录显示为空
#格式: select 查询列表 from 左表 right[outer] join 右表 on 关联条件 [where 其他条件]
select p1.*,p2.pro_name from people p1
right join province p2
on p1.province_id=p2.id;#一对多 一个永和对应多个角色(用户,管理员)用户表 用户-权限中间表(id,user_id,role_id) 权限表#三表查询 user2 role user_role#查询张三对应的权限名称
#显示内连接方法
select u.name,r.role_name from user2 u
#连接中间表
inner join user_role ur
on u.id=ur.user_id
#连接权限表
inner join role r
on ur.role_id = r.id
where u.name="李四";#隐式内连接方法
select u.name,r.role_name from user2 u,user_role ur,role r
where u.id=ur.user_id
and ur.role_id=r.id
and u.name="李四";

MySQL——多表查询(笔记6)相关推荐

  1. Mysql多表查询笔记

    2019独角兽企业重金招聘Python工程师标准>>> MySQL连接的种类,JOIN左边(前边)的表是左边,右边(后边)的是右表 逗号:做笛卡尔集连接 INNER JOIN: 如果 ...

  2. java mysql 多表查询_解析Mysql多表查询的实现

    查询是数据库的核心,下面就为您介绍Mysql多表查询时如何实现的,如果您在Mysql多表查询方面遇到过问题,不妨一看. Mysql多表查询: CREATE TABLE IF NOT EXISTS co ...

  3. mysql多表查询详解_MySQL多表查询详解上

    时光在不经意间,总是过得出奇的快.小暑已过,进入中暑,太阳更加热烈的绽放着ta的光芒,...在外面被太阳照顾的人们啊,你们都是勤劳与可爱的人啊.在房子里已各种姿势看我这篇这章的你,既然点了进来,那就由 ...

  4. mysql教程多表查询_解析Mysql多表查询的实现

    查询是数据库的核心,下面就为您介绍Mysql多表查询时如何实现的,如果您在Mysql多表查询方面遇到过问题,不妨一看. Mysql多表查询: CREATE TABLE IF NOT EXISTS co ...

  5. 零基础带你学习MySQL—多表查询笛卡尔集(二十)

    零基础带你学习MySQL-多表查询笛卡尔集(二十) 一.多表查询 多表查询:就是指基于两个和两个以上的表的查询,在实际应用中,单个表并不能满足你的需求,我们经常需要在很多个表之间查询数据 二.笛卡尔集 ...

  6. mysql 大表查询慢_mysql大表查询慢怎么优化?

    mysql大表查询慢的优化方法:1.合理建立索引,通常查询利用到索引比不用索引更快:2.对关键字段建立水平分区,比如时间字段,若查询条件往往通过时间范围来进行查询,能提升不少性能:3.建立粗粒度数据表 ...

  7. mysql锁表查询和解锁操作

    mysql锁表查询和解锁操作 1.在做数据库操作时,有时会因为自己的粗心或者程序设计上的缺陷导致锁表,在mysql中查看锁表和解锁的步骤如下: //1.查看当前数据库锁表的情况SELECT * FRO ...

  8. Mysql 多表查询详解

    Mysql 多表查询详解 一.前言  二.示例 三.注意事项 一.前言  上篇讲到Mysql中关键字执行的顺序,只涉及了一张表:实际应用大部分情况下,查询语句都会涉及到多张表格 : 1.1 多表连接有 ...

  9. Mysql多表查询效率的研究(一)

    Mysql多表查询效率的研究(一) 本文探究了mysql InnoDB引擎在多表查询的应用场景下,使用子表.内连接和左联接运行速度的差别,并且比较了索引使用与否对查询效率的影响. 第一部分简略地概括了 ...

  10. cmd操作MySQL 多表查询(日记 day 4)

    cmd操作MySQL 多表查询 今天记录一下学习多表查询的一些操作,也算是练习记录了. 通过练习排错,来避免知识的盲区和解决心中的一些疑惑 其中的数据.题目是参照b站大刘老师的,我觉得讲的很精炼 有兴 ...

最新文章

  1. ios实例开发精品源码文章推荐
  2. Springboot微服务开发教程系列:开发入门
  3. 矩阵的变换。包括缩放、平移、错切
  4. MaxCompute Console 实用小命令
  5. SpringCloud学习笔记008---杂七杂八002_spring 注解@Value详解_@Value(quot;#{}quot;)与@Value(quot;${}quot;)的区别
  6. uctf-杂项题目分析
  7. 光流(一)--综述概览
  8. HCIE-Security Day14:防火墙双机热备实验(二)防火墙直路部署,上下行连接路由器
  9. 帆软填报Execl表格不定行导入
  10. 解决windows 下 mysql命令行导入备份文件 查询时乱码的问题
  11. cocostudio
  12. 2021年5月CCAA注册审核员考试认证通用基础真题
  13. 《Netty权威指南》笔记 —— 第十二、十三、十四章
  14. Spring中FrameMaker中文乱码
  15. 能消除眼部疲劳的电脑桌面设置方法
  16. 【RESTful】REST 与 RESTful 理解与实践
  17. 低功耗、高性能智能开发主板MED3568
  18. ZOJ 3886 Nico Number(筛素数+Love(线)Live(段)树)
  19. EasyPR--开发详解(9)文字定位
  20. H5调用本地相册/相机上传图片

热门文章

  1. MySQL 实现排名(分组排名)
  2. 东方梦符祭 N2无尽40波通关
  3. 只用 6 分钟,让你弄明白什么是 API 及 API 管理
  4. 使用 Mathpix Snipping 和 MathType 快速输入公式
  5. PythonChallenge Mission 10
  6. Python音频信号分析
  7. ThoughtWorks面试失败
  8. TeeChart WPF DLL消除水印
  9. 如何对待别人的赞美和批评?
  10. java keypress_jquery 键盘事件 keypress() keydown() keyup()用法总结