Mysql查询数据

1 基本查询语句

MySQL从数据表中查询数据的基本语句为SELECT语句。SELECT语句的基本格式是:

 

 2 单表查询

2.1 查询所有字段

  SELECT * FROM 表名;

 2.2 在SELECT语句中指定所有字段

  SELECT f_id, s_id ,f_name, f_price FROM fruits;

 2.3 查询单个字段

  SELECT 列名FROM 表名;

 2.4 查询多个字段

  SELECT 字段名1,字段名2,…,字段名n FROM 表名;

 2.5 查询指定记录

  SELECT 字段名1,字段名2,…,字段名n
  FROM 表名
  WHERE 查询条件

 

2.6 带IN关键字的查询

IN操作符用来查询满足指定范围内的条件的记录,使用IN操作符,将所有检索条件用括号括起来,检索条件之间用逗号分隔开,只要满足条件范围内的一个值即为匹配项。

  SELECT s_id,f_name, f_price FROM fruits   WHERE s_id IN (101,102);
    SELECT s_id,f_name, f_price FROM fruits   WHERE s_id NOT IN (101,102);

2.7 带BETWEEN AND的范围查询

  SELECT f_name, f_price FROM fruits WHERE f_price BETWEEN 2.00 AND 10.20;

2.8 带LIKE的字符匹配查询

百分号通配符‘%’,匹配任意长度的字符,甚至包括零字符;下划线通配符‘_’,一次只能匹配任意一个字符。

2.9 查询空值

在SELECT语句中使用IS NULL子句,可以查询某字段内容为空记录。

2.10 带AND的多条件查询

  SELECT f_id, f_price, f_name FROM fruits WHERE s_id = '101' AND f_price >=5;

2.11 带OR的多条件查询

  SELECT s_id,f_name, f_price FROM fruits WHERE s_id = 101 OR s_id = 102;

 2.12 查询结果不重复

  SELECT DISTINCT 字段名 FROM 表名;

2.13 对查询结果排序-单列排序

select 字段名 From 表名  order by 字段名;

2.13 对查询结果排序-多列排序

在对多列进行排序的时候,首先排序的第一列必须有相同的列值,才会对第二列进行排序。如果第一列数据中所有值都是唯一的,将不再对第二列进行排序。

select 字段名 From 表名  order by 字段名,字段名;

 2.13 对查询结果排序-指定排序方向

默认情况下,查询数据按字母升序进行排序(A~Z),但数据的排序并不仅限于此,还可以使用ORDER BY对查询结果进行降序排序(Z~A)。

  SELECT f_name, f_price FROM fruits ORDER BY f_price DESC;//降序
  SELECT f_name, f_price FROM fruits ORDER BY f_price ASC;//升序

   SELECT f_name, f_price FROM fruits ORDER BY f_price DESC,f_price1;//降序
   //DESC排序方式只应用到直接位于其前面的字段上

 2.14 分组查询

MySQL中使用GROUP BY关键字对数据进行分组,基本语法形式为:

  [GROUP BY 字段] [HAVING <条件表达式>]

字段值为进行分组时所依据的列名称;“HAVING <条件表达式>”指定满足表达式限定条件的结果将被显示。

2.15 创建分组

GROUP BY关键字通常和集合函数一起使用,比如MAX()、MIN()、COUNT()、SUM()、AVG()。

在MySQL中,可以在GROUP BY子句中使用GROUP_CONCAT()函数,将每个分组中各个字段的值显示出来。

SELECT s_id, GROUP_CONCAT(f_name) AS Names FROM fruits GROUP BY s_id;

 

2.16  使用HAVING过滤分组

GROUP BY可以和HAVING一起限定显示记录所需满足的条件,只有满足条件的分组才会被显示。

  SELECT s_id, GROUP_CONCAT(f_name) AS Names
  FROM fruits
  GROUP BY s_id HAVING COUNT(f_name) > 1;

 

HAVING关键字与WHERE关键字都是用来过滤数据的,两者有什么区别呢?其中重要的一点是,HAVING在数据分组之后进行过滤来选择分组,而WHERE在分组之前来选择记录。另外,WHERE排除的记录不再包括在分组中。

2.17  在GROUP BY子句中使用WITH ROLLUP

使用WITH ROLLUP关键字之后,在所有查询出的分组记录之后增加一条记录,该记录计算查询出的所有记录的总和,即统计记录数量。

 2.18 多字段分组

使用GROUP BY可以对多个字段进行分组,GROUP BY关键字后面跟需要分组的字段,MySQL根据多字段的值来进行层次分组,分组层次从左到右,即先按第1个字段分组,然后在第1个字段值相同的记录中再根据第2个字段的值进行分组,以此类推。

  mysql> SELECT * FROM fruits group by s_id,f_name;

   两个字段是一个组合,是一个分组结果,第一个字段分组完成后,再分组第二个字段,查询出的顺序会发生变化。

2.19 GROUP BY和ORDER BY一起使用

2.20 使用LIMIT限制查询结果的数量

SELECT返回所有匹配的行,有可能是表中所有的行,若仅仅需要返回第一行或者前几行,可使用LIMIT关键字,基本语法格式如下:

  LIMIT [位置偏移量,] 行数

第一个“位置偏移量”参数指示MySQL从哪一行开始显示,是一个可选参数,如果不指定“位置偏移量”,将会从表中的第一条记录开始(第一条记录的位置偏移量是0,第二条记录的位置偏移量是1,以此类推);第二个参数“行数”指示返回的记录条数。

MySQL 8.0中可以使用“LIMIT 4 OFFSET 3”,意思是获取从第5条记录开始后面的3条记录,和“LIMIT 4,3;”返回的结果相同。

3.使用集合函数查询

 ● COUNT(*)计算表中总的行数,不管某列是否有数值或者为空值。

● COUNT(字段名)计算指定列下总的行数,计算时将忽略空值的行。

● SUM()函数在计算时,忽略列值为NULL的行。

● MAX()函数除了用来找出最大的列值或日期值之外,还可以返回任意列中的最大值,包括返回字符类型的最大值。MIN()函数与MAX()函数类似,不仅适用于查找数值类型,也可应用于字符类型。

3.连接查询

连接是关系数据库模型的主要特点。连接查询是关系数据库中最主要的查询,主要包括内连接、外连接等。通过连接运算符可以实现多个表查询。

3.1 内连接查询

内连接(INNER JOIN)使用比较运算符进行表间某(些)列数据的比较操作,并列出这些表中与连接条件相匹配的数据行,组合成新的记录,也就是说,在内连接查询中,只有满足条件的记录才能出现在结果关系中。

3.2 外连接查询

外连接查询将查询多个表中相关联的行,内连接时,返回查询结果集合中仅是符合查询条件和连接条件的行。有时候需要包含没有关联的行中数据,即返回查询结果集合中不仅包含符合连接条件的行,还包括左表(左外连接或左连接)、右表(右外连接或右连接)或两个边接表(全外连接)中的所有数据行。外连接分为左外连接或左连接和右外连接或右连接:

● LEFT JOIN(左连接):返回包括左表中的所有记录和右表中连接字段相等的记录。

● RIGHT JOIN(右连接):返回包括右表中的所有记录和左表中连接字段相等的记录。

左连接的结果包括LEFT OUTER子句中指定的左表的所有行,而不仅仅是连接列所匹配的行。如果左表的某行在右表中没有匹配行,则在相关联的结果行中,右表的所有选择列表列均为空值。

右连接是左连接的反向连接,将返回右表的所有行。如果右表的某行在左表中没有匹配行,左表将返回空值。

3.3 复合条件连接查询

复合条件连接查询是在连接查询的过程中,通过添加过滤条件限制查询的结果,使查询的结果更加准确。

4 子查询

子查询指一个查询语句嵌套在另一个查询语句内部的查询,子查询中常用的操作符有ANY(SOME)、ALL、IN、EXISTS。子查询可以添加到SELECT、UPDATE和DELETE语句中,而且可以进行多层嵌套。子查询中也可以使用比较运算符,如“<”“<=”“>”“>=”和“!=”等。

4.1 ANY(SOME)

ANY和SOME关键字是同义词,表示满足其中任一条件,它们允许创建一个表达式对子查询的返回值列表进行比较,只要满足内层子查询中的任何一个比较条件,就返回一个结果作为外层查询的条件。

4.2 带ALL关键字的子查询

ALL关键字与ANY和SOME不同,使用ALL时需要同时满足所有内层查询的条件。例如,修改前面的例子,用ALL关键字替换ANY

 4.3 带EXISTS关键字的子查询

EXISTS关键字后面的参数是一个任意的子查询,系统对子查询进行运算以判断它是否返回行,如果至少返回一行,那么EXISTS的结果为true,此时外层查询语句将进行查询;如果子查询没有返回任何行,那么EXISTS返回的结果是false,此时外层语句将不进行查询。

EXISTS关键字可以和条件表达式一起使用。

 

 EXISTS和NOT EXISTS的结果只取决于是否会返回行,而不取决于这些行的内容,所以这个子查询输入列表通常是无关紧要的。

4.4 带IN关键字的子查询

IN关键字进行子查询时,内层查询语句仅仅返回一个数据列,这个数据列里的值将提供给外层查询语句进行比较操作。SELECT语句中可以使用NOT IN关键字,其作用与IN正好相反。

 

 

4.5 带比较运算符的子查询 

 子查询时还可以使用其他的比较运算符,如“<”“<=”“=”“>=”和“!=”等。

5  合并查询结果

 利用UNION关键字,可以给出多条SELECT语句,并将它们的结果组合成单个结果集。合并时,两个表对应的列数和数据类型必须相同。各个SELECT语句之间使用UNION或UNION ALL关键字分隔。UNION不使用关键字ALL,执行的时候删除重复的记录,所有返回的行都是唯一的;使用关键字ALL的作用是不删除重复行也不对结果进行自动排序。基本语法格式如下:

  SELECT column,... FROM table1
  UNION [ALL]
  SELECT column,... FROM table2

  先显示完第一个查询再显示第二个查询

 6 为表和字段取别名

6.1 为表取别名

当表名字很长或者执行一些特殊查询时,为了方便操作或者需要多次使用相同的表时,可以为表指定别名,用这个别名替代表原来的名称。为表取别名的基本语法格式为:

  表名 [AS] 表别名

 在为表取别名时,要保证不能与数据库中其他表的名称冲突。

 6.2 为字段取别名

在有些情况下,显示的列的名称会很长或者名称不够直观,MySQL可以指定列别名,替换字段或表达式。为字段取别名的基本语法格式为:

  列名 [AS] 列别名

 

 7 使用正则表达式查询

MySQL中使用REGEXP关键字指定正则表达式的字符匹配模式。

 字符‘^’匹配以特定字符或者字符串开头的文本。

 

8  MySQL 8.0的新特性1 GROUP BY不再隐式排序

MySQL对GROUP BY字段不再隐式排序。如果确实需要排序,必须加上ORDER BY子句。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/356929.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Ajax入门与使用

目录 ◆ AJAX 概念和 axios 使用 什么是 AJAX&#xff1f; 怎么发送 AJAX 请求&#xff1f; 如何使用axios axios 函数的基本结构 axios 函数的使用场景 1 没有参数的情况 2 使用params参数传参的情况 3 使用data参数来处理请求体的数据 4 上传图片等二进制的情况…

C数据类型

目录 1. 数据类型分类 2. 整数类型 3. 浮点类型 4. void 类型 5. 类型转换 1. 数据类型分类 在 C 语言中&#xff0c;数据类型指的是用于声明不同类型的变量或函数的一个广泛的系统。变量的类型决定了变量存储占用的空间&#xff0c;以及如何解释存储的位模式。 C 中…

格外空间以设计带动凯迪仕品牌价值增长 | 揽获6项国际设计大奖

Kaadas凯迪仕专注于智能锁领域&#xff0c;作为一家集产品研发、制造、品牌、全球销售、安装、售后于一体的全产业链公司&#xff0c;致力于服务全球每一个家庭&#xff0c;以更优质的产品&#xff0c;为全球众多家庭带去高品质生活体验。基于新消费时代背景&#xff0c;传统空…

联想懂的通信×实在智能:共同探索智连融合AI创新发展路径

近日&#xff0c;联想集团副总裁/联想懂的通信CEO王帅、CFO周利军、COO&CPO邢海洋、CGO赵晨、CTO边毅等领导一行莅临杭州实在智能科技有限公司开展研讨座谈。 实在智能创始人&CEO孙林君、联合创始人&COO高扬、联合创始人&CMO张俊九、销售VP&运营商事业线负…

成都直播产业园核心优势全面解读,入驻天府锋巢直播产业基地都有哪些好处?

一文讲清&#xff01;成都直播产业园核心优势全面解读 企业入驻天府锋巢直播产业基地能获得哪些好处&#xff1f; 锋巢资讯&#xff5e;又来了&#xff5e;&#xff5e;&#xff5e; 今天&#xff0c;将为您全面解读成都产业园重点特色产业服务&#xff08;上&#xff09; 什…

vit细粒度图像分类(五)TransFC学习笔记

1.摘要 细粒度图像具有不同子类间差异小、相同子类内差异大的特点。现有网络模型在处理过程中存在特征提取能力不足、特征表示冗余和归纳偏置能力弱等问题&#xff0c;因此提出一种改进的 Transformer图像分类模型。 首先&#xff0c;利用外部注意力取代原 Transformer模型中的…

Java之Idea中创建Web项目

一、新建动态web项目 1、新建项目 2、选择创建动态web项目 3、项目命名 4、编辑index.jsp 二、配置Tomcat 1、新增tomcat服务器配置 2、选择服务器类型 3、配置服务器参数 4、部署项目 5、完成配置 6、启动运行 7、访问web项目 在浏览器地址栏输入&#xff1a; http://local…

RSTP的P/A机制

如图所示根桥S1和S2之间新添加了一条链路,在当前状态下S2的另外几个端口p2是Alternate端口,p3是指定端口且处于Forwarding状态,p4是边缘端口。新链路连接成功后,P/A机制协商过程如下。 1.P0和P1两个端口马上都先成为指定端口发送RS TBPDU。 2.S2的P1口收到更优的RST BPD…

动手学深度学习(一)深度学习介绍2

目录 二、起源 三、深度学习的成功案例&#xff1a; 四、特点&#xff1a; 五、小结&#xff1a; 二、起源 为了解决各种各样的机器学习问题&#xff0c;深度学习提供了强大的工具。 虽然许多深度学习方法都是最近才有重大突破&#xff0c;但使用数据和神经网络编程的核心思…

幻兽帕鲁服务器出租,腾讯云PK阿里云怎么收费?

幻兽帕鲁服务器价格多少钱&#xff1f;4核16G服务器Palworld官方推荐配置&#xff0c;阿里云4核16G服务器32元1个月、96元3个月&#xff0c;腾讯云换手帕服务器服务器4核16G14M带宽66元一个月、277元3个月&#xff0c;8核32G22M配置115元1个月、345元3个月&#xff0c;16核64G3…

Life is Strange 奇异人生汉化指南

奇异人生汉化指南 引言&#xff1a;在搜索引擎上看了许多的攻略&#xff0c;都无法得到指向性明确的安装步骤&#xff0c;其中最令人不解的分别为汉化包与汉化包的安装地址&#xff0c;以下会以汉化包获取与汉化包安装地址两个维度来确保汉化的正确&#xff0c;以及在最终附上…

第十八讲_HarmonyOS应用开发实战(实现电商首页)

HarmonyOS应用开发实战&#xff08;实现电商首页&#xff09; 1. 项目涉及知识点罗列2. 项目目录结构介绍3. 最终的效果图4. 部分源码展示 1. 项目涉及知识点罗列 掌握HUAWEI DevEco Studio开发工具掌握创建HarmonyOS应用工程掌握ArkUI自定义组件掌握Entry、Component、Builde…

排序【数据结构】

文章目录 一、 稳定性二、排序1. 插入排序(1) 直接插入排序(2) 希尔排序 2. 选择排序(1) 直接选择排序(2) 堆排序 3. 交换排序(1) 冒泡排序(2) 快速排序① 普通版快排② 关于优化快排③ 快速排序的非递归方式 4. 归并排序5. 计数排序 三、 总结 一、 稳定性 在计算机科学中&am…

给刚上小学的侄女准备新年礼物,有什么让小朋友喜欢的玩具推荐?

给刚上小学的侄女准备新年礼物&#xff0c;我觉得也是有很多选择的。因为现在的市场上款式太多了&#xff0c;选择自己心意的适合小侄女的都是可以的。但是如果非要选益智的或是智能高科技的&#xff0c;对孩子来说既能玩耍又能在玩的同时学习到知识&#xff0c;能够开拓孩子眼…

用httpd服务搭建公司公用的资源下载服务器

最新产品有些新发布的项目版本下载资源。过往是存在git上面的。但由于版本号、资源文件过大、资源分类等因素。很不方便。因此&#xff0c;想到以前到官网下载第三方jar包时&#xff0c;直接打开Linux目录的方法。查了下&#xff0c;用httpd可以作到。 效果如下图&#xff1a; …

人事经理HR快速提升个人能力,依据法律法规搞定企业劳动纠纷

一、教程描述 入职当月社保尚无法缴纳&#xff0c;发生工伤怎么办&#xff1f;拿不出离职证明的员工&#xff0c;HR到底能不能要&#xff1f;“不能胜任工作”能否炒人不用赔钱&#xff1f;如何运用协商解除劳动合同&#xff0c;化解相关不稳定因素造成的风险&#xff1f;本套…

Spring Cloud+SkyWalking全链路监控部署及使用分享

先了解 SkyWalking 极简入门 | Apache SkyWalking 版本&#xff1a;apache-skywalking-apm-9.7.0.tar.gz OAP服务和UI服务 apache-skywalking-java-agent-9.1.0.tgz JAVA-AGENT服务 环境&#xff1a;linux 项目&#xff1a;spring cloud 记录下碰到的问题&#xff1a; 1、s…

保障气膜建筑稳定性的关键因素与方法

近年来&#xff0c;气膜建筑因其轻便、柔韧、环保等特点在建筑领域备受瞩目。然而&#xff0c;作为一种依赖气体支撑的结构&#xff0c;如何确保气膜建筑的稳定性成为一个重要的问题。本文将探讨保障气膜建筑稳定性的关键因素与方法&#xff0c;从气压差维持、材料选择、锚固系…

【Javaweb程序设计】【C00164】基于SSM的飞机订票系统(论文+PPT)

基于SSM的飞机订票系统&#xff08;论文PPT&#xff09; 项目简介项目获取开发环境项目技术运行截图 项目包运行、免费远程调试 项目简介 这是一个基于ssm的飞机订票系统 本系统分为前台用户模块和后台管理员模块。 前台用户模块&#xff1a;当游客打开系统的网址后&#xff0…

产品经理必备资料:从入门到精通,助您提升专业技能

​ 你是否曾经感到自己在产品开发过程中缺乏足够的知识和技能&#xff1f;你是否曾经花费大量时间在网上搜索各种资料&#xff0c;却依然无法满足自己的需求&#xff1f;现在&#xff0c;我们为你提供了一份全面的产品经理资料&#xff0c;让你在产品开发道路上更加顺畅&#x…