展开菜单
首页 精品内容 本月促销 装机必备 Windows PDF教程 macOS软件 IOS软件 Android AI 专题
全部分类

当前位置:

首页 > 编程开发 > MySQL中有哪些数据查询语句

MySQL中有哪些数据查询语句

一、基本概念(查询语句)①基本语句1、“select*from表名;”,—可查询表中全部数据;2、“select字段名from表名;”,—可查询表中指定字段的数据;3、“selectdistinct字段名from表名;”,—可对表中数据进行去重查询。4、“select字段名from表名where查询条件;”,—可根据条件查询表中指定字段的数据;②条件查询1)比较运算符:>,=,18;selectid,name,genderfromstudentswherea

本文目录

      一、基本概念(查询语句)

      ①基本语句

      1、“select * from 表名;”,—可查询表中全部数据;
      2、“select 字段名 from 表名;”,—可查询表中指定字段的数据;
      3、“select distinct 字段名 from 表名;”,—可对表中数据进行去重查询。
      4、“select 字段名 from 表名 where 查询条件;”,—可根据条件查询表中指定字段的数据;

      ②条件查询

      1)比较运算符:>, <, >=, <=, =, !=, <>

      查询大于18岁的信息

      select * from students where age>18;
      select id, name,gender from students where age>18;

      查询小于18岁的信息

      select * from students where age<18;

      查询年龄为18岁的所有学生的名字

      select * from students where age=18;

      2)逻辑运算符:and, or, not

      –18到28之间的学生信息

      select * from students where age>18_and age<28:

      –18岁以上的女性

      select * from students where age>18 and gender="女";
      select * from students where age>18 and gender=2;

      –18以上或者身高查过180(包含)以上

      select * from students where age>18 or height>=180;

      不在18岁以上的女性这个范围内的信息

      select * from students where not (age>18 and gender=2);

      年龄不是小于或者等于18并且是女性

      select * from students where (not age<=18) and gender=2;

      3)模糊查询:like, rlike

      % 替换1个或者多个
      _ 替换1个
      查询姓名中 以“小”开始的名字

      select name from students where name="小";
      select name from students where name like"小%";

      查询姓名中有“小”所有的名字

      select name from students whece name like "%小%";

      查询有2个字的名字

      select name from students where name like "__";

      查询有3个字的名字

      select name from students where name like "__";

      查询至少有2个字的名字 select name from

      students where name like "__%";

      rlike正则
      查询以周开始的姓名

      select name from students where name rlike "^周.*";

      查询以周开始、伦结尾的姓名

      select name from students where name rlike "^周.*伦$";

      4)范围查询:in,not in,between…and,not between…and

      查询年龄为18、34的姓名

      select name, age from students where age=18 or age=34;
      select name,age from students where age in (18,34);

      not in不非连续的范围之内
      年龄不是 18、34岁之间的信息

      select name,age from students where age not in (18,34);

      between … and …表示在一个连续的范围内
      查询年龄在18到34之间的的信息

      select name,age from students where age between 18 and 34;

      not between … and …表示不在一个连续的范围内
      查询年龄不在在18到34之间的的信息

      select * from students where age not between 18 and 34;

      空判断

      判空 is null
      查询身高为空的信息

      select *from students where height is null/NULL/Null;

      判非空is not null

      select * from students where height is not null;

      排序:order_by

      –查询年龄在18到34岁之间的男性,按照年龄从小到大排序

      select * from students where (age between 18 and 34) and gender=1; 
      select * from students where (age between 18 and 34) and gender=1 order by age; 
      select * from students where (age between 18 and 34) and gender=1 order by age asc;

      查询年龄在18到34岁之间的女性,身高从高到矮排序

      select * from students where (age between18 and 34) and gender=2 order by height desc;

      order by多个字段
      查询年龄在18到34岁之间的女性,身高从高到矮排序,如果身高相同的情况下按照年龄从小到大排序

      select * from students where (age between 18 and 34) and gender=2 order by height desc,age asc;

      查询年龄在18到34岁之间的女性,身高从高到矮排序,如果身高相同的情况下按照年龄从小到大排序,如果年龄也相同那么按照id从大到小排序

      select * from students where (age between 18 and 34) and gender=2 order by height desc,age asc, id desc;

      按照年龄从小到大、身高从高到矮的排序

      select * from students order by age asc,height desc;

      分组:group_by, group_concat():查询内容, having

      where :是对整个数据表信息的判断;
      having:是对于分组后的数据进行判断
      –group by
      按照性别分组,查询所有的性别

      select gender from students group by gender;

      –计算每种性别中的人数

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

      where是在group by 前面
      –计算男性的人数

      select count(*) from students where gender='男';

      –group_concat(…)
      查询同种性别中的姓名

      select gender,group_concat(name) from students group by gender;

      having :having是在group by后面
      查询平均年龄超过30岁的性别,以及姓名

      select gender ,avg(age) from students group by gender having avg(age) > 30;

      查询每种性别中的人数多于2个的信息

      select gender,count(*) from students group by gender having count(*) > 2;

      – 查询每组性别的平均年龄

      select gender,avg(age) from students group by gender;

      分页: limit

      limit start,count   (start:表示从哪─个开始;count:表示数量)
      即limit(第N页-1)*每个的个数,每页的个数;
      limit在使用的时候,要放在最后面.

      限制查询出来的数据个数

      select *from students where gender=1 limit 2;

      查询前5个数据

      select* from students limit 0,5;

      查询id6-10(包含)的书序

      select * from students limit 5,5;

      每页显示2个,第1个页面

      select * from students limit 0,2;

      每页显示2个,第2个页面

      select * from students limit 2,2;

      每页显示2个,第3个页面

      select * from students limit 4,2;

      每页显示2个,第4个页面

      select * from students limit 6,2;

      每页显示2个,显示第6页的信息,按照年龄从小到大排序

      select * from students order by age asc limit 10,2;

      – 如果重新排序了,那么会显示第一页

      select * from students where gender=2 order by height des limit 0,2;

      5)聚合函数:count(), max(), min(), sum(), avg(), round()

      聚合函数
      -总数-- count
      -查询男性有多少人,女性有多少人

      select count(*) from students where gender=1;
      select count(*) as 男性人数 from students where gender=1;
      select count(*) as 女性人数 from students where gender=2;

      -最大值-最小值
      – max --min
      一查询最大的年龄

      select max (age) from students;

      –查询女性的最高身高

      select max (height) from students where gender=2;

      -求和
      –sum
      -计算所有人的年龄总和

      select sum ( age) from students;

      –平均值
      – avg
      –计算平均年龄

      select avg(age) from students;

      –计算平均年龄

      select sum ( age) / count(* ) from students;

      –四舍五入round ( 123.23 ,_1)保留1位小数
      –计算所有人的平均年龄,保留2位小数

      select round (sum(age)/count(*),2) from students; select round ( sum(age)/count(*),3) from students ;

      –计算男性的平均身高保留2位小数

      select round(avg (height),2) from students where gender=1; select name,round(avg(height),2) from students where gender=1;

      6)连接查询 :inner join, left join, right join

      inner join
      select … from 表 A inner join表B;

      select * from students inner join classes;

      查询有能够对应班级的学生以及班级信息

      select * from students inner join classes on students.cls_id=classes.id;

      按照要求显示姓名、班级

      select students.*, classes.name from students inner join classes on students.cls_id=classes.id;
      select students.name,classes.name from students inner join classes on students.cls_id=classes.id;

      给数据表起名字

      select s.name,c.name from students as s inner join classes as c on s.cls_id=c.id;

      查询有能够对应班级的学生以及班级信息,显示学生的所有信息,只显示班级名称

      select s.*,c.name from students as s inner join classes as c on s.cls_id=c.id;

      在以上的查询中,将班级姓名显示在第1列

      select c.name,s.* from students as s inner join classes as c on s.cls_id=c.id;

      查询有能够对应班级的学生以及班级信息,按照班级进行排序
      select c.xxx s.xxx from student as s inner join clssses as c on … order by …;

      select c.name,s.* from students as s inner join classes as c on s.cls_id=c.id order by c.name;

      当时同一个班级的时候,按照学生的id进行从小到大排序

      select c.name,s.* from students as s inner join classes as c on s.cls_id=c.id order by c.name,s.id;

      left join
      查询每位学生对应的班级信息

      select * from students as s left join classes as c on s.cls_id=c.id;

      查询没有对应班级信息的学生
      – select … from xxx as s left join xxx as c on… where …
      – select … from xxx as s left join xxx as c on… . … having …

      select * from students as s left join classes as c on s.cls_id=c.id having c.id is null;
      select * from students as s left join classes as c on s.cls_id=c.id where c.id is null;

      left join是按照左边的表为基准和右边的表进行查询,查到就显示,查不到就显示为null

      补充

      查询所有字段:select * from 表名; 
      查询指定字段:select 列1,列2,... from 表名; 
      使用 as 给字段起别名: select 字段 as 名字.... from 表名; 
      查询某个表的某个字段:select 表名.字段 .... from表名; 
      可以通过 as 给表起别名: select 别名.字段 .... from 表名 as 别名; 
      消除重复行: distinct 字段

      注意:WHERE子句中是不能用聚集函数作为条件表达式的!

      二、总结

      1、普通查询

      (1)命令:select * from <表名>;

      (2)命令:select <要查询的字段> from <表名>;

      2、去重查询(distinct)

      命令:select distinct <要查询的字段> from <表名>

      3、排序查询(order by)

      升序:asc

      降序:desc

      降序排列命令:select <要查询的字段名> from <表名> order by <要查询的字段名> desc

      不加desc一般默认为升序排列

      4、分组查询(group by)

      命令:select <按什么分的组>, Sum(score) from <表名> group by <按什么分的组>

      假设现在又有一个学生成绩表(result)。要求查询一个学生的总成绩。我们根据学号将他们分为了不同的组。

      命令:

      select id, Sum(score) 
      from result 
      group by id;

      现在有两个表学生表(stu)和成绩表(result)。

      5.等值查询

      当连接运算符为“=”时,为等值连接查询。

      现在要查询年龄小于20岁学生的不及格成绩。

      select stu.id,score 
      from stu,result 
      where stu.id = result.id and age < 20 and score < 60;

      等值查询效率太低

      6.外连接查询

      ①语法

      select f1,f2,f3,....
      from table1 left/right outer join table2
      on 条件;

      ②左外连接查询,例如

      select a.id,score
      from
        (select id,age from stu where age < 20) a (过滤左表信息)
      left join
        (select id, score from result where score < 60) b (过滤右表信息)
      on a.id = b.id;

      左外连接就是左表过滤的结果必须全部存在。如果存在左表中过滤出来的数据,右表没有匹配上,这样的话右表就会出现NULL;

      ③右外连接查询,例如

      select a.id,score
      from
        (select id,age from stu where age < 20) a (过滤左表信息)
      right join
        (select id, score from result where score < 60) b (过滤右表信息)
      on a.id = b.id;

      右外连接就是左表过滤的结果必须全部存在

      7.内连接查询

      ①语法

      select f1,f2,f3,....
      from table1 inter join table2
      on 条件;

      ②例如

      select a.id,score
      from
        (select id,age from stu where age < 20) a (过滤左表信息)
      inner join
        (select id, score from result where score < 60) b (过滤右表信息)
      on a.id = b.id;

      8.合并查询

      在图书表(t_book)和图书类别表(t_bookType)中

      ①.union

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

      select id 
      from t_book  
       union 
      select id 
      from t_bookType;

      ②.union all

      使用union all,不会去除掉重复的记录;

      select id 
      from t_book  
       union all 
      select id 
      from t_bookType;
      本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系bd@zhengruan.com
      作者最新文章
      编程开发 MySQL
      相关文章 更多
      精品专题 更多
      装机必备

      正软商城装机必备专区,精选办公、浏览器、安全防护、影音播放、压缩解压、设计创作和系统工具等电脑常用正版软件,帮助用户快速完成新电脑软件配置。

      Windows

      正软商城Windows软件专区,汇集适用于Windows电脑的办公、设计、安全防护、影音播放、开发工具和系统优化软件,提供软件介绍、系统要求、正版授权及购买下载服务。

      PDF教程

      正软商城PDF教程频道提供PDF编辑、转换、合并、拆分、压缩及格式处理方法,同时介绍常用PDF软件和工具的使用技巧。

      macOS软件

      正软商城macOS软件专区,精选适用于Mac电脑的办公、设计、影音、效率、开发和系统工具,提供软件功能介绍、macOS兼容版本、正版授权及购买下载服务。

      IOS软件

      正软商城iOS软件专区,精选适用于iPhone和iPad的办公、学习、影音、设计、效率及AI应用,提供功能介绍、适用设备、系统要求和正版获取方式等信息。

      AI

      正软商城AI软件专区,汇集AI写作、AI绘画、AI视频、AI办公、AI编程、AI翻译、智能客服和数据分析等人工智能工具,提供功能介绍、适用平台、收费方式及正版购买信息。

      Mac软件 更多
      IntelliJ IDEA macOS版
      IntelliJ IDEA macOS版

      IntelliJ IDEA 是 JetBrains 推出的专业集成开发环境,重点服务于 Java、Kotlin 与 JVM 项目开发。软件集成代码补全、静态检查、重构、调试、测试、版本控制及构建工具,并可借助插件扩展语言和框架支持。

      PyCharm macOS版
      PyCharm macOS版

      JetBrains PyCharm 是面向 Python 开发者的集成开发环境,提供智能补全、代码检查、重构、调试、测试、版本控制及虚拟环境管理功能。Mac 版兼容 Intel 与 Apple 芯片,核心功能可免费使用。

      WebStorm macOS版
      WebStorm macOS版

      JetBrains WebStorm 是面向 JavaScript、TypeScript 和现代 Web 技术的专业集成开发环境,可智能理解项目结构,提供代码补全、重构、错误检查、运行调试、测试及 Git 工具。

      After Effects macOS版
      After Effects macOS版

      Adobe After Effects 是面向动态图形、影视特效与视频合成的专业创作软件。它提供关键帧动画、遮罩抠像、运动跟踪、三维空间、文字动画和表达式等工具,并可与 Premiere Pro、Photoshop、Illustrator

      Audition macOS版
      Audition macOS版

      Adobe Audition 是面向播客、影视后期、音乐制作及内容创作者的专业音频工作站,提供波形精修、多轨录制与混音、频谱编辑、降噪修复、响度匹配和效果处理工具,并可与 Adobe Premiere 协同完成视频声音制作。

      Bridge macOS版
      Bridge macOS版

      Adobe Bridge 是面向摄影师、设计师及内容团队的免费数字资产管理工具,可集中预览照片、视频和 Adobe 项目文件,并利用评级、标签、关键词、元数据、筛选与收藏集完成分类检索。它还支持批量重命名、格式导出、相机导入及 Camera

      Illustrator macOS版
      Illustrator macOS版

      Adobe Illustrator 是 Adobe 推出的专业矢量图形设计软件,适合在 Mac 上制作标志、图标、插画、包装、信息图及印刷版面。它以路径和锚点构建可无损缩放的图形,并提供钢笔、形状、文字、图像描摹、渐变、画板及生成式功能。

      InDesign macOS版
      InDesign macOS版

      Adobe InDesign 是面向印刷品与数字出版物的专业版面设计软件,可在 Mac 上制作书籍、杂志、宣传册、海报、报告及交互式文档。它提供精细的文字样式、网格、母版、长文档管理和印前输出能力。

      Lightroom Classic macOS版
      Lightroom Classic macOS版

      Adobe Lightroom Classic 是面向桌面摄影工作流的照片管理与后期处理软件,可将原始照片保存在本地硬盘,通过目录、关键词、评分和收藏夹高效整理图库,并提供 RAW 冲印、蒙版、镜头校正、批量同步及多格式导出等功能。

      Media Encoder macOS版
      Media Encoder macOS版

      Adobe Media Encoder 是 Adobe 推出的专业音视频编码与转码工具,可通过队列、预设和监视文件夹批量完成格式转换、代理文件创建及多平台成片输出,并与 Premiere Pro、After Effects 等软件紧密协作。

      Photoshop macOS版
      Photoshop macOS版

      Adobe Photoshop 是面向摄影师、设计师和内容创作者的专业图像处理软件,提供图层、蒙版、选区、修复、调色、文字排版、智能对象及生成式编辑等能力。Mac 版支持 Intel 与 Apple Silicon 处理器。

      Premiere Pro macOS版
      Premiere Pro macOS版

      Adobe Premiere Pro 是面向专业视频制作的非线性剪辑软件,提供多轨时间线、调色、音频处理、字幕、代理工作流和多格式输出能力,并可与 After Effects、Audition、Photoshop 及 Frame.io 协同

      WINDOWS 更多
      IntelliJ IDEA Windows版
      IntelliJ IDEA Windows版

      JetBrains IntelliJ IDEA 是以 Java、Kotlin 和 JVM 项目为核心的专业集成开发环境,提供智能补全、代码检查、安全重构、调试、测试、版本控制及构建工具集成。统一发行版的核心功能可免费用于商业和非商业项目,

      PhpStorm Windows版
      PhpStorm Windows版

      PhpStorm 是 JetBrains 面向 PHP 与现代 Web 开发打造的专业集成开发环境,提供代码补全、静态检查、重构、调试、测试、数据库、版本控制及前端语言支持。Windows 用户可直接下载安装程序,

      PyCharm Windows版
      PyCharm Windows版

      PyCharm 是 JetBrains 推出的 Python 集成开发环境,提供智能代码补全、错误检查、重构、调试、测试、Git、终端及 Jupyter Notebook 支持。统一版安装后可体验 30 天 Pro 功能,

      WebStorm Windows版
      WebStorm Windows版

      WebStorm 是 JetBrains 面向 JavaScript、TypeScript 和现代 Web 技术打造的集成开发环境。它提供项目级代码分析、智能补全、安全重构、导航搜索,并集成调试、测试、终端、Git 与常用前端工具,

      Photoshop Windows版
      Photoshop Windows版

      Adobe Photoshop 是面向摄影师、设计师和内容创作者的专业图像处理工具,可在 Windows 上完成照片修饰、选区抠图、图层合成、文字排版、绘画及生成式编辑。软件采用订阅授权,由 Creative Cloud 管理安装、更新与许

      InDesign Windows版
      InDesign Windows版

      Adobe InDesign 是面向印刷与数字出版的专业页面排版工具,可制作书籍、杂志、宣传册、海报、交互式 PDF 和电子书。它提供精细的文字样式、多页面管理、印前检查及多格式输出能力,并能与 Photoshop、Illustrator

      Illustrator Windows版
      Illustrator Windows版

      Adobe Illustrator 是用于绘制矢量图形、插画、图标、徽标和版式的专业设计工具。它以路径和锚点为核心,作品放大后仍能保持清晰,并提供画板、文字、渐变、图像描摹及精确变换等功能,适合品牌视觉、印刷物料、数字界面和商业插画创作。

      Bridge Windows版
      Bridge Windows版

      Adobe Bridge 是 Adobe 推出的创意资产管理工具,可集中预览、分类和查找照片、视频、PDF及多种设计文件,并支持元数据、关键词、评级、批量重命名和格式导出。它可与 Photoshop、Illustrator 等应用衔接,

      Lightroom Classic Windows版
      Lightroom Classic Windows版

      Adobe Lightroom Classic 是面向 Windows 桌面摄影工作流的照片管理与无损编辑工具,可通过目录集中整理大型图库,并完成 RAW 显影、局部蒙版、批量调整、打印和多格式导出。它强调本地文件管理与精细控制,

      Acrobat Pro Windows版
      Acrobat Pro Windows版

      Adobe Acrobat Pro 是面向专业 PDF 工作的综合解决方案,可在 Windows 中创建、编辑、转换、比较、整理和保护文档,并支持表单、电子签名、扫描件文字识别及敏感信息永久遮盖。订阅还包含网页、移动服务和云端协作能力,

      After Effects Windows版
      After Effects Windows版

      Adobe After Effects 是面向动态图形、动画与影视视觉特效制作的专业工具,可完成关键帧动画、图层合成、遮罩跟踪、抠像、文字动画和二维三维元素整合。Windows 版通过 Adobe Creative Cloud 安装及更新,

      Media Encoder Windows版
      Media Encoder Windows版

      Adobe Media Encoder 是 Adobe 面向视频与音频制作流程提供的专业编码和转码工具,可批量处理媒体文件、创建代理、套用输出预设并监控文件夹自动执行任务。它与 Premiere、After Effects、Audition