mysql查询语句 和 多表关联查询 以及 子查询

DB(五):关联查询、子查询、关联子查询、分页查询 包括关联查询内链接、外链接、自查询;子查询在SELECT、WHERE、FROM语句中使用,子查询的执行过程及注意事项;关联子查询EXISTS、NOT EXISTS的执行过程,IN和EXISTS的区别;分页查询。 阅读详情
AI摘要

本文详细介绍了MySQL的查询语句,包括基础查询、where条件、in和between操作、like模糊匹配、空值查询、多条件查询、去重、排序、分组、分页以及多表关联查询(内连接、外连接)和子查询的使用。通过实例解析了各种查询方法,帮助读者深入理解MySQL查询语法。

<div class="article_title">   
     <span class="ico ico_type_Original"></span>


<h1>
    <span class="link_title"><a href="/gaoweizang/article/details/52859449">
    mysql(三):mysql查询语句 和 多表关联查询 以及 子查询            
    </a></span>
</h1>
1.查询一张表:     select * from 表名;

2.查询指定字段:select 字段1,字段2,字段3....from 表名;

3.where条件查询:select 字段1,字段2,字段3 frome 表名 where 条件表达式;
例:select * from t_studect where id=1;
       select * from t_student where age>22;

4.带in关键字查询:select 字段1,字段2 frome 表名 where 字段 [not]in(元素1,元素2);
例:select * from t_student where age in (21,23);
       select * from t_student where age not in (21,23);

5.带between and的范围查询:select 字段1,字段2 frome 表名 where 字段 [not]between 取值1 and 取值2;
例:select * frome t_student where age between 21 and 29;
       select * frome t_student where age not between 21 and 29;

6.带like的模糊查询:select 字段1,字段2... frome 表名 where 字段 [not] like '字符串';
    “%”代表任意字符;
    “_"代表单个字符;
例:select * frome t_student where stuName like '张三'';
       select * frome t_student where stuName like '张三%'';
       select * frome t_student where stuName like '%张三%'';//含有张三的任意字符
       select * frome t_student where stuName like '张三_''

7.空值查询:select 字段1,字段2...frome 表名 where 字段  is[not] null;

8.带and的多条件查询:
select 字段1,字段2...frome 表名 where 条件表达式1 and 条件表达式2 [and 条件表达式n]
例:select * frome t_student where gradeName='一年级' and age=23;

9.带or的多条件查询
select 字段1,字段2...frome 表名 where 条件表达式1 or 条件表达式2 [or 条件表达式n]
例:select * frome t_student where gradeName='一年级' or age=23;//或者,条件只要满足一个

10.distinct去重复查询:select distinct 字段名 from 表名;

11.对查询结果排序order by:select 字段1,字段2...from 表名 order by 属性名 [asc|desc]
例:select * frome t_student order by age desc;//降序,从大到小
       select * frome t_student order by age asc;//升序,asc默认可以不写

12.分组查询group by
group by 属性名 [having 条件表达式][with rollup]
1.单独使用(毫无意义,不能单独使用);

2.与group_concat()函数一起使用;
例:select gradeName,group_concat(stuName) from t_student group by gradeName;


3.与聚合函数一起使用;
例:select gradeName,count(stuName) from t_student group by gradeName;


4.与having一起使用(显示输出的结果);
例:select gradeName,count(stuName) from t_student group by gradeName having count(stuName)>3;

5.与with rollup 一起使用(最后加入一个总和行);
例:select gradeName,group_concat(stuName) from t_student group by gradeName with rollup;

  
13.limit 分页查询:select 字段1,字段2,...from 表名 limit 初始位置,记录数;
例子:select * from t_student limit 0,5;



             多表连接查询

表一:t_book



表二:t_bookType


表三:t_priceLevel



select * from t_book,t_bookType;


1.内连接查询(两张或以上的表连接起来查询需要的数据)
根据表一的bookTypeId查询出所有bookTypeName
select * from t_book,t_bookType where t_book.bookTypeId=t_bookType.id;


查询某几个字段:
select bookNme,author from t_book,t_bookType where t_book.bookTypeId=t_bookType.id;



2.外连接查询(两张或以上的表连接起来查询某张表的信息)

3.左连接查询
select * from t_book left join t_bookType on t_book.bookTypeId=t_bookType.id;
如下图:表一(左边表)t_book的数据全部查出 表二没有的字段用null代替


4.右连接查询
select * from t_book right join t_bookType on t_book.bookTypeId=t_bookType.id;
查出表二(右边表)的所有信息,表一没有的用null代替



5.多条件连接查询
select * from t_book,t_bookType where t_book.bookTypeId=t_bookType.id and t_book.price>70;




子查询
1.带in关键字的子查询(一个查询语句的条件可能落在另一个select语句的查询结果中)
select * from t_book where bookType in(select id from t_bookType);
select * from t_book where bookType not in(select id from t_bookType);

2.带比较运算符的子查询(子查询可以使用比较运算符)
select * from t_book where price>=(select price from t_priceLevel where priceLevel=1);

3.带exists关键字的子查询(加入子查询查询到记录,则进行外层查询,否则,不执行外层查询)
select * from t_book where exists(select * from t_booktype);
select * from t_book where not exists(select * from t_booktype);

4.带any关键字的子查询(any关键字表示满足其中任一条件)
select * from t_book where price>= any(select price from t_priceLevel);

5.带all关键字的子查询(all关键字表示满足所有条件)
select * from t_book where price>= all(select price from t_priceLevel);


合并查询

1.union
使用union关键字是,数据库系统会将所有的查询结果合并到一起,然后去掉相同的记录;
select id from t_book union select id from t_bookType;

2.union all
使用union all,不会去除掉重复的记录;
select id from t_book union all select id from t_bookType;

Mysql关联查询的几种方式(详解) 在关系型数据库中,要进行多表查询,一般都会使用join连接。join连接的本质其实类似与集合的交并操作,Mysql实现关联查询常见的几种方式如下;A表B表。 阅读详情

相关推荐

MySQL数据库多表设计和多表查询详解

一、多表设计 数据库通过表来存储数据,通过表和表之间的关系来存储数据之间的关系。 通过外键字段来维系表和表之间的关系。 而根据表和表之间关系的不同,外键字段设置的方式不同。 a.一对一 对于一对一的关系,可以在任意一边设计外键保存另一方的主键,维系两张表的关系。 b.一对多 对于一对多的关系,需要在多的一方设计外键保存另一方的主键,维系两张表的关系。 c.多对多 对于多对多的关系,需要设计第三方关系表保存两张表之间的对应关系,相当于将一个多对多拆分为两个一对多来进行存储。 二、多表查询 关系型数据库通

张艳霞 844

SQL关联查询详解,SQL JOIN详解

关联查询,也称为多表查询,指两个或更多个表一起完成查询操作。 前提条件:这些一起查询的表之间是有关系的(一对一、一对多),它们之间一定是有关联字段,这个关联字段可能建立了外键,也可能没有建立外键。...

清风 2万+

Jmeter压测报告

账户分析压测报告 一、测试内容 本次测试是针对账户分析进行的压力测试,在账户分析查询接口中,只对用户资产查询接口进行压力测试,其中不包含用户签名校验功能。 二、测试方法 本次采用apache的开源测试工具jmeter,采用本地动态拼装请求数据并通过http协议GET方式发送每日盈亏查询请求。并采用1000个用户账号测试访问情况。...

qq_31108731的博客 6624

《MySQL数据库》关联查询

有的时候,我们要查询的数据,一个简单的查询语句完成不了,并且我们使用的数据,表中不能直观体现出来。自连接是一种特殊的关联查询。在做关联查询时,我们所需要的数据,除了那些满足关联条件的数据外,还有不满足关联条件的数据。from子句用于指定表,如果想在一个子查询的结果里继续查询,则子查询需要写在from子句中,相当于一个表。需求1:查询所有员工的姓名,职位,及其部门编号,部门名称----分析:员工表为驱动表,部门表为从表。关联查询所涉及到的表与表之间都会存在有关联的字段,如员工表的部门编号和部门表的部门编号。

关注我!带你一路 "狂飙" 到底! 5965

快速玩转 Llama2!机器学习 PAI 最佳实践(一)—低代码 Lora 微调及部署

本实践将采用阿里云机器学习平台PAI-快速开始模块针对 Llama-2-7b-chat 进行开发。PAI-快速开始支持基于开源模型的低代码训练、布署和推理全流程,适合想要快速开箱体验预训练模型的开发者。

阿里云云栖号 1765

避坑指南:Zephyr RTOS与nRF Connect SDK环境搭建常见错误及解决方案

本文详细解析了Zephyr RTOS与nRF Connect SDK环境搭建过程中的常见错误及解决方案,涵盖网络问题、代理设置、SEGGER Embedded Studio配置、分支切换等关键环节。针对开发者实际遇到的痛点问题,提供了一系列实用技巧和深度排错方法,帮助高效完成NCS开发环境部署。

weixin_28685287的博客 170

mysql(三):mysql查询语句 和 多表关联查询 以及 子查询

1.查询一张表:     select * from 表名; 2.查询指定字段:select 字段1,字段2,字段3....from 表名; 3.where条件查询:select 字段1,字段2,字段3 frome 表名 where 条件表达式; 例:select * from t_studect where id=1;        sel

逗号的博客 3万+

Tushare使用教程

@Tushare简易教程 Python财经数据接口Tushare 最近在看量化分析有关的东西,然后第一步先了解的就是如何获取股票交易数据。发现大部分教程都是关于Tushare的,于是在这里简单的介绍一下Tushare的用法吧。目前tushare有免费版本和升级的需要付费的Pro版本。大多数教程写的都是免费版本,但是pro版本提供的数据更多,但是由于本人入坑还不深,暂时还是用的免费版本,但是每次使用都收到提示,“本接口即将停止更新,请尽快使用Pro版接口:https://tushare.pro/documen

kuangzhi9124的博客 2万+

mysql一次查询无关联多个表_mysql查询语句 和 多表关联查询 以及 子查询

1.查询一张表: select * from 表名;2.查询指定字段:select 字段1,字段2,字段3....from 表名;3.where条件查询:select字段1,字段2,字段3 frome 表名 where 条件表达式;例:select * from t_studect where id=1;select * from t_student where age>22;4....

weixin_29837797的博客 1204

Cisco Firepower FMCv修改管理Ip方法

Cisco Firepower FMCv修改管理Ip方法

funnycoffee123的博客 1091

AI Agent开发第82课-手把手教你把paddleocr-vl做成mcp使其在DIFY里运行

本文详解如何将国产顶尖多模态 OCR 模型 PaddleOCR-VL 封装为标准 MCP(Model Calling Protocol)服务,并通过自研的 HTTP-based MCP Client 接入 Dify 1.10,实现 AI Agent 在对话中自动识别并调用 OCR 能力。该方案已在某头部保险公司真实业务流程中落地,使用了当前最先进的“Agentic AI 原生”设计思想。

打造全国最全的AI Agent开发知识领域的博客 1624

mysql多表查询语句_mysql查询语句 和 多表关联查询 以及 子查询

1.查询一张表:select * from 表名;2.查询指定字段:select 字段1,字段2,字段3….from 表名;3.where条件查询:select字段1,字段2,字段3 frome表名 where 条件表达式;例:select * from t_studect where id=1;select * from t_student where age>22;4.带in关键字查询:...

weixin_42127835的博客 266

数据分享:中国历年省、市、县行政区划shp(1949~2023年共计75年)

中华人民共和国县级以上行政区沿革》(三册,1949-1983年)“The Atlas of Changes of Administrative Regions of China”;《中华人民共和国行政区划沿革地图集》The yearly publications of “The Administrative Regions”, 1985-2014;每年的出版行政区划简册(1985-2014年)行政区划网:www.xzqh.org。行政区划网:www.xzqh.org。

J_Giser的博客 3685

mysql 子表 关联查询语句_mysql查询语句 和 多表关联查询 以及 子查询

1.查询一张表: select * from 表名;2.查询指定字段:select 字段1,字段2,字段3....from 表名;3.where条件查询:select字段1,字段2,字段3 frome 表名 where 条件表达式;例:select * from t_studect where id=1;select * from t_student where age>22;4....

weixin_32312913的博客 1169

STM32F103 -- LIN从机通讯 -- 程序代码 -- 详细讲解版(2万字长文)

主要代码分为3个文件,usart文件是对GPIO端口和串口Lin模式的初始化,lin_buffer文件是对串口环形缓冲区的编写,lin_driver文件是Lin从机模式驱动代码。通过这三个文件的代码便可实现STM32F103的LIN从机通讯。

晴朗luo的博客 1万+

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

mysql 子表 关联查询语句_mysql查询语句和多表关联查询以及子查询

###单表查询####1.查询一张表:select * from 表名;####2.查询指定字段:select 字段1,字段2,字段3….from 表名;####3.where条件查询:select 字段1,字段2,字段3 frome 表名 where 条件表达式;例:select * from t_studect where id=1;select * from t_student where ...

weixin_42164702的博客 140

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

mysql多行子查询函数_mysql查询语句 和 多表关联查询 以及 子查询

1.查询一张表:select * from 表名;2.查询指定字段:select 字段1,字段2,字段3….from 表名;3.where条件查询:select字段1,字段2,字段3 frome 表名 where 条件表达式;例:select * from t_studect where id=1;select * from t_student where age>22;4.带in关键字查询...

weixin_35857807的博客 269

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

上一篇: git无法pull仓库refusing to merge unrelated histories
下一篇: PHP中的use、命名空间、引入类文件、自动加载类的理解
Dshaw
博客等级 码龄10年 112粉丝 29原创
评论 8
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值