总结分享MySQL中常用的15个查询子句(快来收藏)


mysql中如何进行查询?下面本篇文章给大家总结分享15个mysql中常用的查询子句,值得收藏,希望对大家有所帮助!

总结分享MySQL中常用的15个查询子句(快来收藏)

对于数据分析,MySQL多采用查询,如数据的排序、分组、去重、汇总、字符串匹配等。如果查询的数据涉及多个表,则需要连接这些表。本文将谈谈MySQL中常用的查询子句,共15个。【相关推荐:mysql视频教程】

*1、 *排序:order by

排序是通过顺序实现的,例如,从stuinfo表中查询数据并按年龄排序。sql语句是:

select * from stuinfo order by age;

查询结果:

1.png

可以看到,查询结果是按照年龄进行升序排列的,如果要实现降序排列,只需要在后面加上desc即可,sql语句为:

select * from stuinfo order by age desc;

查询结果:

2.png

此时的查询结果按照年龄降序排列。

以上是针对数值型数据排序,如果是字符串,也可以用order by进行排序,例如,按照姓名排序,sql语句为:

select * from stuinfo order by stuname;

查询结果:

3.png

从上面可以看到,字符串排序其实是按照首字母进行升序排列,当然还可以对日期进行排序,请自行思考。

*2、 *分组:group by

分组通过group by子句实现,例如,按照性别分组,sql语句为。

select gender,count(*) from stuinfo group by gender;

查询结果:

4.png

以上sql语句按照性别分组,并给出每组的人数,按照其他字段分组也是类似的。

*3、 *去重:distinct

去重是数据处理中常见的操作,通过distinct子句实现,例如查询学员所在的所有城市,这就需要去重,因为有些学员在同一个城市。

sql语句为:

select distinct city from stuinfo;

查询结果:

5.png

可以看到,去重就是在去重字段前加上distinct即可。

*4、 *空值:is null/is not null

空值就是判断某个字段为空或者不为空的记录,例如,查询城市为空的记录,sql语句为:

select * from stuinfo where city is null;

查询结果:

6.png

可以看到,查询为空的记录其实就是where条件后跟is null。

反过来,如果查询城市不为空的记录,跟上is not null即可,sql语句为:

select * from stuinfo where city is not null;

查询结果:

7.png

*5、 *汇总:计数、最值、求和、均值

汇总其实就是计数、求最大值/最小值、求和、求均值等。

最常用的统计表中有多少记录,通过count实现,sql语句为:

select count(*) from stuinfo;

8.png

查询表中某个字段的最大值/最小值,通过max/min实现,例如查询最大年龄,sql语句为:

select max(age) from stuinfo;

查询结果:

9.png

接下来的一个问题:查询年龄最大的学员的姓名,sql语句怎么写?

这是一个条件查询,条件就是年龄要等于最大的年龄,按照这个思路,写出sql语句:

select stuname,age from stuinfo where age=(select max(age) from stuinfo);

查询结果:

10.png

从上面可以看到,其实是把最大的年龄查询出来作为条件,再查询对应的姓名和年龄。

留个思考题: 如何查询年龄最小的学员姓名?

求和,用sum即可,一定是对数值型数据求和,跟count类似,这样不做演示。

最后是均值,用*g,例如,查询所有学员的平均年龄,sql语句为:

select *g(age) from stuinfo;

查询结果:

11.png

*6、 *别名:as

别名,就是as,意为用作,例如,查询出年龄的最大值、最小值和均值,sql语句为:

select max(age),min(age),*g(age) from stuinfo;

查询结果:

12.png

这样显示字段名不太好看,我们可以用as起一个别名,sql语句为:

select max(age) as age_max,min(age) as age_min,*g(age) as age_*g from stuinfo;

查询结果:

13.png

*7、 *表的连接

当要查询的记录涉及两个或者两个以上的表时,就需要表的连接。

表的连接有三种:内连接、左连接和右连接。

(1)内连接:inner join

内连接相当于两个表的交集,如下图所示。

14.png

例如,有两个表:学员信息表和成绩表,有一个共同的列:学号。

15.png

现在想查询出每个学员的姓名和成绩,查询结果如下图所示。

16.png

以上查询结果中的姓名需要从第一个表中提取,成绩需要从第二个表中提取,这叫表的连接

因为学号是共同的列,所以根据学号连接,以上的这种连接方式是获取两个表中学号相同的记录,叫作内连接

具体的sql语句为:

select sname,score fromtb1 inner join tb2 on tb1.sid=tb2.sid;

查询结果:

17.png

需要注意的是,连接条件用on。

(2)左连接:left join

左连接是以左表为基准,去匹配右表中的记录,如果右表中没有对应匹配记录则为空。

左连接用集合中的文氏图表示如下。

18.png

SONIFY.io SONIFY.io

设计和开发音频优先的产品和数据驱动的解决方案

SONIFY.io 83 查看详情 SONIFY.io

还是用以上提到的学员信息表和成绩表,左连接的示意图如下。

19.png

左连接的sql语句为:

select sname,score fromtb1 left join tb2 on tb1.sid=tb2.sid;

查询结果:

20.png

(3)右连接:right join

右连接是以右表为基准,去匹配左表中的记录,如果左表中没有对应匹配记录则为空。

右连接用集合中的文氏图表示如下。

21.png

还是用以上提到的学员信息表和成绩表,右连接的示意图如下。

22.png

右连接的sql语句为:

select sname,score fromtb1 right join tb2 on tb1.sid=tb2.sid;

查询结果:

23.png

*8、 *字符串匹配:like

有时候在字符串查找时,需要查找符合某个匹配模式的字符串。

例如,在表stuinfo中,查找城市中含有字符串‘an’的记录,sql语句为:

select * from stuinfo where city like '%an%';

注意:匹配模式中的%表示匹配任意长度的任意字符串。

*9、 *集合:in

查找属于某个集合的记录用in。

例如,查找城市为北京或者天津的记录,sql语句为:

select * from stuinfo where city in('Beijing','Tianjin');

查询结果:

24.png

*10、 *条件语句:h*ing

这里说的条件语句是h*ing,跟where类似,但是一般和统计函数连用。

比如,查找平均年龄小于25岁的城市,sql语句为:

select city from stuinfo group by city h*ing *g(age)<25;

查询结果:

25.png

以上sql语句先按照城市分组,再跟条件语句h*ing。

*11、 *区间查找:between and

between and用于查找符合某个区间(包含两个边界的值)的记录。

例如,查找年龄介于20到30岁之间的记录,sql语句为:

select * from stuinfo h*ing age between 20 and 30;

查询结果:

26.png

*12、 *联结:union

联结,也叫联合,用于连接两个查询的结果,并且去重。

例如,两个表中都有学号,用sql语句分别从这两个表中查询出学号,然后联结。

select sid from tb1unionselect sid from tb2;

查询结果:

27.png

以上sql语句相当于将两个select语句的查询结果用union合并,并且是去重合并。

如果不想去重,用union all即可,sql如下。

select sid from tb1union allselect sid from tb2;

查询结果:

28.png

*13、 *日期格式化:date_format

在SQL中,对于日期时间的处理也是很常见的问题。

例如,按照年份、月份或者日期等对数据进行分组汇总,就需要从日期时间中提取年份、月份及日期等。

举个例子,获取每个学员的出生年份,sql语句为:

select date_format(birthdate,'%Y') as birth_year from stuinfo;

查询结果:

29.png

获取出生月份也是如此,只是参数用'%m',sql语句为:

select date_format(birthdate,'%m') as birth_year from stuinfo;

查询结果:

30.png

获取到年份、月份后,就可以按照年份、月份进行分组查询统计了。

*14、 *条件分支:case语句

条件分支是数据统计中的一个很重要的应用,在MySQL中用case语句表达条件分支,case语句有以下两种用法。

用法一:

例如,根据学员所处的城市,将记录标记为一线城市及其他,sql语句为:

select distinct city,
  case city
    when 'Beijing' then '一线城市'
    when 'Shanghai' then '一线城市'
    else '其他' end as city_level
from stuinfo;

查询结果:

31.png

从上面看到,case后面跟的是要判断的字段,when后跟的是不同的情况,then则是不同情况对应的类别,最后的else表示其他情况。

整个case语句相当于给原来的表增加一个字段:city_level,然后我们可以根据这个字段进行分组查询。

用法二:

例如,根据学员的年龄进行分层,青年、中年及其他,sql语句为:

select stuname,age,
  case when age<30 then '青年'
      when age>=30 and age<35 then '中年'
      else '其他' end as age_level
from stuinfo;

查询结果:

32.png

从上面可以看到,case后面跟的是条件when,即年龄满足什么条件时,将其划分到对应的类别,最后的else表示其他情况。

整个case语句相当于给原来的表增加一个字段:age_level,然后我们可以根据这个字段进行分组查询。

*15、 *变量

最后,谈谈MySQL中的变量,当然,MySQL中的变量有好几种类型,这里只说用户变量,像@var这种。

例如,我们希望根据学员的年龄计算出每个人到35岁还有几年,这里可以定义一个变量并赋值为35,然后利用这个变量减去年龄就得到结果。

首先,定义变量var,sql语句为:

set @var:=35;

接着,使用这个变量,sql语句为:

select @var-age as age_gap from stuinfo;

查询结果:

33.png

当然,关于变量还有很多更复杂的用法,多用于计算连续登陆天数这种问题或者存储过程中。

更多编程相关知识,请访问:编程视频!!

以上就是总结分享MySQL中常用的15个查询子句(快来收藏)的详细内容,更多请关注其它相关文章!


# 可以用  # 在哪可以学seo优化  # 青浦区推广营销方案公司  # 店铺seo优化推广引流  # 永城附近网站推广店  # 平桥区网站网络推广团队  # 自酿啤酒网站建设  # 宁夏抖音seo矩阵公司  # 北海网站建设生产  # 辽宁珠宝行业网站推广  # 白酒新品推广营销思路  # MySQL  # 升序  # 均值  # 快来  # 为空  # 的是  # 可以看到  # 镜像  # 子句  # 查询结果  # 查询子句 


相关栏目: 【 Google疑问12 】 【 Facebook疑问10 】 【 优化推广96088 】 【 技术知识133117 】 【 IDC资讯59369 】 【 网络运营7196 】 【 IT资讯61894


相关推荐: 猫眼电影app如何筛选支持退改签的影院_猫眼电影退改签影院筛选方法  PHP页面重载时变量值不重置的实现方法  C++中std::thread和std::async的区别_C++并发编程与线程与异步任务比较  Lar*el怎么实现全文搜索_Lar*el Scout集成Algolia教程  PSD转AI文件的简单方法  如何在CSS中使用过渡制作按钮边框渐变_border-color transition实现  OPPO A3 WiFi频繁断开怎么办 OPPO A3网络优化技巧  CSS过渡与滚动滚动事件结合应用_scroll与transition动画  VS Code源代码管理(SCM)视图的进阶使用技巧  vivo云服务一直提示空间不足怎么办 怎么办vivo云服务老是提示空间不足  PDF文件去水印平台入口 PDF水印删除网址  Golang如何操作指针参数_Go pointer参数传递规则  可米酷漫画在线阅读入口_ 可米酷漫画官网直达链接  《顺丰同城骑士》查看我的技能方法  《一起考教师》账号注销方法  顺丰速运官网查询入口 顺丰物流查询官网入口链接  顺丰官方查单号入口 顺丰快递单号查询官网入口  win11如何诊断DirectX问题 Win11运行dxdiag工具排查显卡故障【排错】  汽水音乐网页端访问 汽水音乐官方网页直达  《火花chat》搜索好友方法  如何在vscode中关闭it环境  Coolpad5890 ROM刷机包  漫蛙官网(首页入口)_漫蛙漫画稳定访问教程分享  win11如何运行chkdsk命令 Win11检查和修复磁盘逻辑错误教程【修复】  《oppo商城》维修服务位置  研招网官方网站招生平台入口_中国研究生招生信息网官网登录  苹果SE如何开启单手模式_苹果SE单手操作功能  AngularJS动态内容中DOM元素查找的时序问题及$timeout解决方案  Go语言中方法与接收器:指针和值类型的调用机制详解  XPath动态元素定位:如何精准选择文本内容变化的元素  C++如何实现单例模式_C++线程安全的单例模式写法  极兔快递官网查询入口手机版 手机极兔快递登录查询入口官方  蛙漫2(台版)正版官网 2025免费网页版分享  Google Drive API服务器端访问指南:服务账户认证详解  我的世界官方网址入口 我的世界游戏主页直达入口  Teambition网盘如何共享文件  附近酒吧怎么找?  Lar*el Eloquent中通过Join查询关联数据表:解决多行子查询问题  多闪电脑版下载_多闪PC端模拟器使用  Win10锁屏时间怎么设置 Win10调整自动锁屏时间方法  口腔诊所管理软件推荐  mysql中外键约束如何使用_mysql FOREIGN KEY操作  如何在CSS中使用absolute实现登录弹窗居中_transform translate结合  php如何实现多域名共享session_php存储session到redis与跨域读取配置  QQ邮箱PC端登录页面_QQ邮箱网页版登录界面  研招网官方网站正版登录网址_中国研究生招生信息网官网首页  《磁力猫》最好用的磁官网  大众点评了却看不到是怎么回事  基于 Flink 和 Kafka 实现高效流处理:连续查询与时间窗口  酷狗音乐多音轨设置教程 

 2021-12-20

了解您产品搜索量及市场趋势,制定营销计划

同行竞争及网站分析保障您的广告效果

点击免费数据支持

提交您的需求,1小时内享受我们的专业解答。

运城市盐湖区信雨科技有限公司


运城市盐湖区信雨科技有限公司

运城市盐湖区信雨科技有限公司是一家深耕海外推广领域十年的专业服务商,作为谷歌推广与Facebook广告全球合作伙伴,聚焦外贸企业出海痛点,以数字化营销为核心,提供一站式海外营销解决方案。公司凭借十年行业沉淀与平台官方资源加持,打破传统外贸获客壁垒,助力企业高效开拓全球市场,成为中小企业出海的可靠合作伙伴。

 8156699

 13765294890

 8156699@qq.com

Notice

We and selected third parties use cookies or similar technologies for technical purposes and, with your consent, for other purposes as specified in the cookie policy.
You can consent to the use of such technologies by closing this notice, by interacting with any link or button outside of this notice or by continuing to browse otherwise.