MySQL 是工作中很普遍的需要用到的,所以必须掌握,而 之前我们一直说的都是怎么存.

你只会存不会取有个屁用.所以希望大家在如何查询读取数据这方面多下点功夫.

这篇和上一篇都是干货,我也是第一次学.反正我就是这样理解,这样一遍一遍写,一遍一遍看的才慢慢有点感觉的.

目前还整理的很乱,先将就看,等以后想起来了我会再进一步整理.

简单查询 : 单表查询和多表查询
distinct : 去重

单表的唯一查询用 distinct

group by : 分组

多表的唯一查询用 group by

select * from depariment,employee;

这个就叫做笛卡尔积.

把所有记录全都拼接一遍

查询两张表.把两张表拼接到一张表,依次排开.

两张表的所有记录都拼接了一次(若不理解,可以实际操作看一下).

这种方式无意义.

select * from employee,department where employee.dep_id = department.id; 干的是连表的活.

上面这是提取俩个表相同的部分.但是 but 不同的部分没留下对不对

下面就要用的很神奇的东西

******inner join 内连接:按照 on 的条件,只取两张表相同的部分,链接成一张虚拟的表.

select * from employee inner join department onemployee.dep_id = department.id;

翻译 : 我先查 employee, 在此基础上继续查 department,  on后面是条件.

select * from employee left join department onemployee.dep_id = department.id;

上面就是左链接

翻译 : 在按照 on 条件,取到两张表共同的基础上,保留左表的记录.

select * from employee rightjoin department onemployee.dep_id = department.id;

翻译 : 保留右表

上面就是右链接

下面说的是,要把左右表各自不一样的全拿出来,称为 : 全链接union

select * from employee left join department onemployee.dep_id = department.id

union

select * from employee rightjoin department onemployee.dep_id = department.id;

子查询:

in 是因为可能有多个

查询人数只有1人的部门名:

select name from department where id in ( select dep_id from employee group by dep_id having count(id) = 1 );

MySQL查询(进阶)(每个标点都是重点)的更多相关文章

  1. mysql 查询语句的执行顺序(重重点)

    一 SELECT语句关键字的定义顺序 SELECT DISTINCT <select_list> FROM <left_table> <join_type> JOI ...

  2. MySql查询进阶

    1.1 as关键字 用于 给显示结果中字段 或者 表 起别名 select 别名.字段名 from 表名 as 别名 where 条件语句 # 对字段起别名 select id as '编号', na ...

  3. 【mysql】 mybatis实现 主从表 left join 1:n 一对多 分页查询 主表从表都有查询条件 【mybatis】count 统计+JSON查询

    mybatis实现 主从表 left join  1:n 一对多 分页查询   主表从表都有查询条件+count 需求: ======================================= ...

  4. MYSQL(进阶篇)——一篇文章带你深入掌握MYSQL

    MYSQL(进阶篇)--一篇文章带你深入掌握MYSQL 我们在上篇文章中已经学习了MYSQL的基本语法和概念 在这篇文章中我们将讲解底层结构和一些新的语法帮助你更好的运用MYSQL 温馨提醒:该文章大 ...

  5. MySQL查询原理及其慢查询优化案例分享(转)

    MySQL凭借着出色的性能.低廉的成本.丰富的资源,已经成为绝大多数互联网公司的首选关系型数据库.虽然性能出色,但所谓“好马配好鞍”,如何能够更 好的使用它,已经成为开发工程师的必修课,我们经常会从职 ...

  6. MySQL第二讲 一一一一 MySQL语句进阶

    通过命令来备份数据库: 通过数据库软件里面的,mysqldump模块来操作,如下: mysqldump -u root db1 > db1.sql -p; //没有-d就是备份的时候:数据表结构 ...

  7. Swoole 实战:MySQL 查询器的实现(协程连接池版)

    目录 需求分析 使用示例 模块设计 UML 类图 入口 事务 连接池 连接 查询器的组装 总结 需求分析 本篇我们将通过 Swoole 实现一个自带连接池的 MySQL 查询器: 支持通过链式调用构造 ...

  8. MySQL 不同隔离级别,都使用了什么锁?

    大家好,我是树哥. 在上篇文章,我们聊了「MySQL 啥时候会用表锁,啥时候用行锁」这个问题.在文章中,我们还留了一个问题,即:如果查询或更新时的数据特别多,是否从行锁会升级为表锁?此外,还有朋友留言 ...

  9. Mysql 查询练习

    Mysql 查询练习 ---创建班级表 create table class( cid int auto_increment primary key, caption ) )engine=innodb ...

随机推荐

  1. ACM HDU Bone Collector 01背包

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2602 这是做的第一道01背包的题目.题目的大意是有n个物品,体积为v的背包.不断的放入物品,当然物品有 ...

  2. mysql--二进制日志(bin-log)三种格式介绍及分析

    一.Mysql binlog日志有三种格式,分别为ROW.Statement以及MiXED.Row LevelBinary Log会记录成[每一行数据被修改的形式],然后在Slave端再对相同的数据进 ...

  3. 【Flink】流-表概念

    title: Flink流-表概念 date: 2017-12-12 14:48:16 categories: technique tags: Flink Flink Streaming Dynami ...

  4. Hibernate框架进阶(下篇)之查询

    导读 Hibernate进阶篇分为上中下三篇,本文为最后一篇,主要内容是Hibernate框架的查询,主要包括hql语句查询,criteria查询以及查询策略的选择. 知识框架 Hibernate查询 ...

  5. 班级博客客户端Beta阶段发布说明

    班级博客客户端Beta阶段发布说明 NewTeam 2017/12/18 项目 博客园班级博客Android客户端 目录 发布方式和发布地址 新功能 修复的缺陷 对运行环境的要求 安装方法 已知的问题 ...

  6. Python3 词汇助手 有道翻译助手 有道导出文件格式转换

    根据有道翻译软件的功能,结合实际用途,基于Python3.6写了一个有道翻译助手软件. 测试文件及源代码已上传至:https://github.com/MMMMMichael/Translation- ...

  7. HTML5经常使用知识

    今日做项目.涉及到native和H5页面的交互 1.document.readyState document.readyState:推断文档是否载入完毕. firefox不支持. 这个属性是仅仅读的, ...

  8. UVA 540(队列)

    Description  Team Queue  Queues and Priority Queues are data structures which are known to most comp ...

  9. 2014/08/23——OJ及相关站点打开速度非常慢,训练计划login直接error!

    问题: 这个问题存在已经将近一个星期了.刚開始时发现OJ及相关的站点有时候打开有点慢,那时候也没在意,后来时快时慢的越来越频繁:今天早上直接一直都打开非常慢(无论什么时候.这样的情况);训练计划和做题 ...

  10. TCP传输中序号与确认序号的交互

    本实验通过SSH远程登录server,然后使用Wireshark抓包分析. 开头的三次握手已经省略.关于序号的交互过程.须要记住一点:TCP首部中的确认序号表示已成功收到字节,但还不包括确认序号所指的 ...