MySQL-SQL基础-查询1
- #子查询-某些情况下,当进行查询的时候,需要的条件是另外一个select语句的结果,这个时候就要用到子查询。用于子查询的关键字主要包括:
- in、not in、=、!=、exists、not exists等等。
- #从emp表中查询出所有部门在dept表中的所有记录
- mysql> select * from dept;
- +--------+----------+
- | deptno | deptname |
- +--------+----------+
- | 1 | tech |
- | 2 | sale |
- | 3 | hr |
- | 4 | sl |
- +--------+----------+
- 4 rows in set (0.01 sec)
- mysql> select * from emp;
- +-------+------------+------------+---------+--------+------+
- | ename | birth | hirdate | sal | deptno | age1 |
- +-------+------------+------------+---------+--------+------+
- | zzx1 | 2000-01-01 | 2000-01-01 | 2000.00 | 1 | 21 |
- | zzx1 | 2002-03-09 | 2009-04-03 | 2001.00 | 3 | 22 |
- | ttx2 | 2023-04-10 | 2010-03-04 | 4000.00 | 4 | 23 |
- | ssss | 2019-01-01 | 2018-01-01 | 5000.00 | 2 | 24 |
- +-------+------------+------------+---------+--------+------+
- 4 rows in set (0.00 sec)
- mysql> select * from emp where deptno in(select deptno from dept);
- +-------+------------+------------+---------+--------+------+
- | ename | birth | hirdate | sal | deptno | age1 |
- +-------+------------+------------+---------+--------+------+
- | zzx1 | 2000-01-01 | 2000-01-01 | 2000.00 | 1 | 21 |
- | ssss | 2019-01-01 | 2018-01-01 | 5000.00 | 2 | 24 |
- | zzx1 | 2002-03-09 | 2009-04-03 | 2001.00 | 3 | 22 |
- | ttx2 | 2023-04-10 | 2010-03-04 | 4000.00 | 4 | 23 |
- +-------+------------+------------+---------+--------+------+
- 4 rows in set (0.00 sec)
- #如果子查询记录数唯一,还可以用=代替in
- mysql> select * from emp where deptno=(select deptno from dept limit 1);
- +-------+------------+------------+---------+--------+------+
- | ename | birth | hirdate | sal | deptno | age1 |
- +-------+------------+------------+---------+--------+------+
- | zzx1 | 2000-01-01 | 2000-01-01 | 2000.00 | 1 | 21 |
- +-------+------------+------------+---------+--------+------+
- 1 row in set (0.00 sec)
- # 某些情况下,子查询可转化为表连接
- mysql> select * from emp where deptno in(select deptno from dept);
- +-------+------------+------------+---------+--------+------+
- | ename | birth | hirdate | sal | deptno | age1 |
- +-------+------------+------------+---------+--------+------+
- | zzx1 | 2000-01-01 | 2000-01-01 | 2000.00 | 1 | 21 |
- | ssss | 2019-01-01 | 2018-01-01 | 5000.00 | 2 | 24 |
- | zzx1 | 2002-03-09 | 2009-04-03 | 2001.00 | 3 | 22 |
- | ttx2 | 2023-04-10 | 2010-03-04 | 4000.00 | 4 | 23 |
- +-------+------------+------------+---------+--------+------+
- 4 rows in set (0.00 sec)
- #转换为表连接后
- mysql> select emp.* from emp,dept where emp.deptno=dept.deptno;
- +-------+------------+------------+---------+--------+------+
- | ename | birth | hirdate | sal | deptno | age1 |
- +-------+------------+------------+---------+--------+------+
- | zzx1 | 2000-01-01 | 2000-01-01 | 2000.00 | 1 | 21 |
- | ssss | 2019-01-01 | 2018-01-01 | 5000.00 | 2 | 24 |
- | zzx1 | 2002-03-09 | 2009-04-03 | 2001.00 | 3 | 22 |
- | ttx2 | 2023-04-10 | 2010-03-04 | 4000.00 | 4 | 23 |
- +-------+------------+------------+---------+--------+------+
- 4 rows in set (0.00 sec)
- #union和union all的主要区别是union all是把结果集直接合并在一起
- union是将union all后的结果在进行一次distinct,去除重复记录后的结果。
- mysql> select deptno from emp union all select deptno from dept;
- +--------+
- | deptno |
- +--------+
- | 1 |
- | 3 |
- | 4 |
- | 2 |
- | 1 |
- | 2 |
- | 3 |
- | 4 |
- +--------+
- 8 rows in set (0.00 sec)
- mysql> select deptno from emp union select deptno from dept;
- +--------+
- | deptno |
- +--------+
- | 1 |
- | 3 |
- | 4 |
- | 2 |
- +--------+
- 4 rows in set (0.00 sec)
MySQL-SQL基础-查询1的更多相关文章
- 2.Mysql SQL基础
2.Mysql SQL基础2.1 SQL简介 SQL(Structure Query Language)是结构化查询语言.2.2 SQL使用入门 2.2.1 SQL分类 SQL分为DDL.DML(DQ ...
- python 3 mysql sql逻辑查询语句执行顺序
python 3 mysql sql逻辑查询语句执行顺序 一 .SELECT语句关键字的定义顺序 SELECT DISTINCT <select_list> FROM <left_t ...
- SQL基础--查询之三--嵌套查询
SQL基础--查询之三--嵌套查询
- SQL基础--查询之五--查询语句一般格式
SQL基础--查询之五--查询语句一般格式
- SQL基础--查询之四--集合查询
SQL基础--查询之四--集合查询
- SQL基础--查询之一--单表查询
SQL基础--查询之一--单表查询
- SQL基础--查询之二--连接查询
SQL基础--查询之二--连接查询
- mysql SQL 逻辑查询语句和执行顺序
关键字的执行优先级(重点) fromwheregroup byhavingselectdistinctorder bylimit 先创建两个表 CREATE TABLE table1 ( custom ...
- MySQL学习(三) SQL基础查询
其实在数据库最经常用的当属查询操作 基本语法 SELECT [ALL | DISTINCT | DISTINCTROW ] 字段列表 AS 字段别名 [FROM 表名 WHERE 条件表示式 GROU ...
- sql基础查询
2.1 指定使用中的资料库 一个资料库伺服器可以建立许多需要的资料库,所以在你执行任何资料库的操作前,通常要先指定使用的资料库.下列是指定资料库的指令: 如果你使用「MySQL Workbench」这 ...
随机推荐
- 记一次Hvv中遇到的API接口泄露而引起的一系列漏洞
引言 最近朋友跟我一起把之前废弃的公众号做起来了,更名为鹿鸣安全团队,后面陆续会更新个人笔记,有趣的渗透经历,内网渗透相关话题等,欢迎大家关注 前言 Hvv中的一个很有趣的漏洞挖掘过程,从一个简单的A ...
- Python基础之创建文件夹与删除文件夹。
参考链接:https://blog.csdn.net/weixin_43826242/article/details/87101436 创建目录结构 # 创建文件目录结构 def create_fol ...
- 第十六篇 -- SuperIO学习
一.SuperIO 这次主要研究SuperIO读取以及控制风扇转速的问题. 参考文章:https://huchanghui123.github.io/Linux/Linux-Superio-CPU-F ...
- 模式识别课程大作业 Shopee 商品图像检索
大作业项目简介 在如今的信息科技时代, 带有拍照功能的移动设备如手机.相机等得到了极大的普及和流行, 各种各样的图片和视频可以随时随地获得, 并借助互联网快速传播, 这种趋势使得网络上的数字图片和视频 ...
- Mac使用Charles抓取ios手机APP中的https请求
1.配置Http代理 Port为监听端口号,默认为8888,勾选Enable transparent HTTP proxying,接着勾选SOCKS proxy,可以监听Socks请求 2.安装Cha ...
- 剑指 Offer 30. 包含min函数的栈
剑指 Offer 30. 包含min函数的栈 定义栈的数据结构,请在该类型中实现一个能够得到栈的最小元素的 min 函数在该栈中,调用 min.push 及 pop 的时间复杂度都是 O(1). 示例 ...
- 什么是RSA
一.RSA引入: RSA是什么,嗯,这是一个好问题,有没有兴趣啊 二.RSA的解释: RSA是一种加密方式,它是现代密码学的代表(什么是现代密码学,这个吗,我感觉就是我们所使用的密码的加密的方式之一可 ...
- 程序员被老板要求两个月做个APP,要不比京东差,网友:做一个快捷方式,直接链到京东
隔行如隔山,这句话说得一点都没错.做一个程序员,很多人都会羡慕,也有很多人会望而却步. 作为一个外行人,你别看程序员每天坐在电脑前敲敲键盘打打代码,以为很简单,其实啊也只有程序员自己明白,任何一个看似 ...
- .NET Core/.NET5/.NET6 开源项目汇总13:模板引擎
系列目录 [已更新最新开发文章,点击查看详细] 开源项目是众多组织与个人分享的组件或项目,作者付出的心血我们是无法体会的,所以首先大家要心存感激.尊重.请严格遵守每个项目的开源协议后再使用.尊 ...
- 面试官:MySQL 有哪些锁??
大家好,我是小林. 这次,来说说 MySQL 的锁,主要是 Q&A 的形式,看起来会比较轻松. 不多 BB 了,发车! 在 MySQL 里,根据加锁的范围,可以分为全局锁.表级锁和行锁三类. ...