MySQL数据库查询数据

article/2025/10/4 17:43:57

查询数据
数据库管理系统的一个最重要的功能就是数据查询,数据查询不应只是简单查询数据库中存储的数据,还应该根据需要对数据进行筛选,以及确定数据以什么样的格式显示。MySQL提供了功能强大、灵活的语句来实现这些操作。

基本查询语句
mysql从数据表中查询数据的基本语句为select语句
select语句的基本格式是
select{|字段列表}[from <表1>,<表2>……][where 表达式][group by][having][order by…][limit …]
{
|}包含星号通配符选择字段列表,表示查询的字段,其中字段列至少包含一个字段名称,如 果要查询多个字段,多个字段之间用逗号隔开,最后一个字段后不要加逗号。
FROM,…:表1和表2表示查询数据的来源,可以是单个或多个。
WHERE子句是可选项,如果选择该项,将限定查询必须满足的查询条件。
GROUP BY,该子句告诉MySQL按什么样的顺序显示查询出来的数据,可以进行的排序有:升序 (asc)、降序(desc)。
[limit],该子句告诉mysql每次显示查询出来的数据条款。

单表查询
单表查询是指从一张表数据中查询所需的数据。主要有:查询所有字段、查询指定字段、查询指定记录、查询空值、多条件的查询、对查询结果进行排序等方式。

查询所有字段
在select语句中使用星号()通配符查询所有字段。 select查询记录最简单的形式是从一个表中检索所有记录,实现的方法是使用星号()通配符指定查找所有列的名称。
语法:select * from 表名
在这里插入图片描述

查询指定字段
语法:select 字段名 from 表名;
在这里插入图片描述

查询多个字段
使用select声明,可以获取多个字段下的数据,只需要在关键字select后面指定要查询的字 段的名称,不同字段名称之间用逗号分隔,最后一个字段后面不需要加逗号
语法:select 字段1,字段2,字段3,……, from 表名
在这里插入图片描述

查询指定记录
数据库中包含大量的数据,根据特殊要求可能只需要查询表中的指定数据,相当于对数据的过滤。在select语句 中,通过where子句可以对数据进行过滤。
语法:select 字段1,字段2……, from 表名 where查询条件
在这里插入图片描述
在这里插入图片描述

带in关键字的查询
in操作符用来查询满足指定范围内的条件的记录,使用IN操作符,将所有检索条件用括号括起来,检索条件之 间用逗号分隔开,只要满足条件范围内的一个值即为匹配项。
语法:select 字段1,字段2,……, from 表名 where 查询字段 in(查询1,查询2……)

在这里插入图片描述

带between and的范围查询
Between and用来查询某个范围内的值,该操作符需要两个参数,即范围的开始值和结束值,如果字段值满足指定的范围查询条件,则这些记录被返回。
语法:select 字段1,字段2,……, from 表名 where 查询字段 between 值1 and 值2
在这里插入图片描述

带like的字符匹配查询
通配符是一种在SQL的where条件子句中拥有特殊意思的字符,SQL语句中支持多种通配符,可以和like一起使用的通配符有‘%’和‘_’。
百分号(%)通配符,匹配任意长度的字符,甚至包括零字符
语法:select 字段1,字段2,……, from 表名 where 查询字段 like ‘字符%’
在这里插入图片描述

下划线(__)通配符,一次只能匹配任意一个字符
语法:select 字段1,字段2,……, from 表名 where 查询字段 like ‘_字符’

在这里插入图片描述

查询空值
数据表创建的时候,设计者可以指定某列中是否可以包含空值(NULL)。空值不同于0,也不同于空字符串。空值一般表示数据未知、不适用或将在以后添加数据。在select语句中使用IS NULL子句,可以查询某字段内容为空的记录。
语法:select 字段1,字段2,……, from 表名 where 查询字段 is null
在这里插入图片描述

带and的多条件查询
使用select查询时,可以增加查询的限制条件,这样可以使查询的结果更加精确。MySQL在where子句中使用and操作符限定只有满足所有查询条件的记录才会被返回。可以使用and连接两个甚至多个查询条件,多个条件表达式之间用and分开。
语法:select 字段1,字段2,……, from 表名 where 查询字段1 = 字符1 and 查询字段2 条件 字符2
在这里插入图片描述

带or的多条件查询
与and相反,在where声明中使用or操作符,表示只需要满足其中一个条件的记录即可返回。or也可以连接两个甚至多个查询条件,多个条件表达式之间用or分开。
语法:select 字段1,字段2,……, from 表名 where 查询字段1 = 字符1 or 查询字段2 = 字符2

在这里插入图片描述

查询结果不重复
查询的结果没有重复值,重复数据只显示一个值。
语法:select distinct 字段 from 表名
在这里插入图片描述

对查询结果排序
单列排序
以小值来排序,如果第一列一致则查询第二列继续以小值来排序一直往后推
语法:select 字段 from 表名 order by 字段(与前面字段一制)
在这里插入图片描述

多列排序
在多列进行排序的时候,首先排序的第一列必须有相同的列值,才会对第二列进行排序。如果第一列数据中所有值都是唯一的,将不再对第二列进行排序。
语法:select 字段1,字段2,……, from 表名 order by 字段1,字段2,……
在这里插入图片描述

指定排序方向

默认情况下,查询数据按字母升序进行排序(从A~Z),但数据的排序并不仅限于此,还可以使用order by对查询结果进行降序排序(从Z~A),这可以通过关键字DESC实现。Desc为降序而asc为升序默认为asc
语法:select 字段1,字段2,……, from 表名 order by 字段1,字段2,…… desc
在这里插入图片描述

分组查询
分组插叙是对数据按照某个或多个字段进行分组,MySQL中使用group by关键字对数据进行分组,基本语法形式为:group by 字段 1、创建分组
Group by 关键字通常和集合函数一起使用,例如:MAX()、MIN()、COUNT()、SUM()、AVG()。 根据s_id对fruits表中的数据进行分组
语法:select 字段,count() as 别名 from 表名 group by 字段
在这里插入图片描述

把分组中的数据显示出来
语法:select 字段,group_concat(查询的字段) as 别名 from 表名 group by 字段
在这里插入图片描述

使用having过滤分组 根据s_id对fruits表中的数据进行分组,查询大于1的分组
语法:select 字段,group_concat(查询的字段) as 别名 from 表名 group by 字段 having count(查询的字段) > 1
在这里插入图片描述

在group by 子句中使用with rollup 使用with rollup关键字之后,在所有查询出的分组记录之后增加一条记录,该记录计算查询出的所有记录的总和,即统计记录数量。
语法:select 字段,count() as 别名 from 表名 group by 字段 with rollup
在这里插入图片描述

多字段分组使用group by可以对多个字段进行分组,group by关键字后面跟需要分组的字段,MySQL根据 多字段的值来进行层次分组,分组层次从左到右,即先按第1个字段分组,然后在第1个字段值相同的记录中, 再根据第2个字段的值进行分组,以此类推。
语法:select * from 表名 group by 字段1,字段2,……
在这里插入图片描述

group by和order by一起使用 某些情况下需要对分组进行排序,查询大于100的订单号和总价订单价格
语法:select 字段1,sum(字段2字段3) as 别名 from 表名 group by 字段 1 having sum(字段2字段3) >= 100

在这里插入图片描述

使用limit限制查询结果的数量 select返回所有匹配的行,有可能是表中所有的行,如仅仅需要返回第一行或者前几行,使用limit关键字,
语法:select * from 表名 limit 行数
在这里插入图片描述

使用聚合函数查询
在这里插入图片描述

Count()函数
Count()函数统计数据表中包含的记录行的总数,或者根据查询结果返回列中包含的数据行数。 Count(*)计算表中总的函数,不管某列有数列或者为空值 Count(字段名)计算指定列下总的行数,计算时将忽略空值的行
语法1:select count(查询的字段) as 别名 from 表名(as别名可写可不写)
语法2:select 字段,count(查询的字段)from 表名 group by 字段
在这里插入图片描述

Sum()函数
sum()是一个求总和的函数,返回指定列值得总和。sum()函数在计算时,忽略列值为NULL的行。
语法1:select sum(查询的字段) as 别名 from 表名 where 字段 = 字段中想要求和的数据
语法2:select 字段,sum(查询的字段) as 别名 from 表名 group by 字段1
在这里插入图片描述

Avg函数
avg()函数通过计算返回的行数和每一行数据的和,求得指定列数据的平均值。
语法1:select avg(查询的字段) as 别名 from 表名 where 字段 = 字段中想要求平均值的数据
语法2:select 字段,avg(查询的字段) as 别名 from 表名 group by 字段
在这里插入图片描述

Max()函数
max()返回指定列中的最大值
语法1:select max(查询的字段) as 别名 from 表名
语法2:select 字段,max(查询的字段) as 别名 from 表名 group by 字段
在这里插入图片描述

Min()函数
min()返回查询列中的最小值
语法1:select min(查询的字段) as 别名· from 表名
语法2:select 字段,min(查询的字段) as 别名 from 表名 group by 字段
在这里插入图片描述

连接查询
连接是关系数据库模型的主要特点。连接查询是关系数据库中最主要的查询,主要包括内连接、外连接。通过连接运算符可以实现多个表查询。在关系数据库管理系统中,表建立时各数据之间的关系不必确定,常把一个实体的所有信息存放在一个表中。当查询数据时,通过连接操作查询出存放在多个表中的不同实体的信息。当两个或多个表现中存在相同意义的字段时,便可以通过这些字段对不同的表进行连接查询。

内连接查询
内连接(inner join)使用比较运算符进行表间某些列数据的比较操作,并列出这些表中与连接条件相匹配的数据行,组合成新纪录,也就是说,在内连接查询中,只有满足条件的记录才能出现在结果关系中。
语法:select 表名.字段1,字段2,…… from 表名1,表名2 where 表名1.字段1 = 表名2.字段1
在这里插入图片描述

如果在一个连接查询中,涉及的两个表都是同一个表,这种查询称为自连接查询。自连接是一种特殊的内连接,它是指相互连接的表在物理上为同一张表,但可以在逻辑上分为两张表。
语法:select f.字段,f.字段 from 表名 as 别名1,表名 as 别名2 where
在这里插入图片描述

外连接查询
外连接查询将将查询多个表中相关联的行,内连接时,返回查询结果集合中的仅是符合查询条件和连接条件的行。但有时候需要包含没有关联的行中数据,即返回查询结果集合中的不仅包含符合连接条件的行,而且还包含左表(左外连接或左连接)、右表(右外连接或右连接)或两个连接表(全外连接)中的所有数据行。外连接分为左外连接或左连接和右外连接或右连接。
左连接
Left join(左连接):返回包括左表中的所有记录和右表中连接字段相等的记录。左边有右边没有的为空,右边有左边没有的不显示
语法:select 表名1.字段1,表名2.字段2,…… from 表名1 left outer join 表名2 on 表名1.字段1 = 表名2.字段1
在这里插入图片描述

右连接
Right join(右连接):返回包括右表中的所有记录和左表中连接字段相等的记录。右边有左边没有的为空,左边有右边没有的不显示
语法:select 表名1.字段1,表名2.字段2,……from 表名1 right outer join 表名2 on 表名1.字段1 = 表名2.字段1
在这里插入图片描述

复合条件连接查询
复合条件连接查询是在连接查询的过程中,通过添加过滤条件,限制查询的结果,使查询的结果更加准确。
语法:select 表名1.字段1,表名2.字段2,…… from 表名1 inner join 表名2 on 表名1.字段1 = 表名2.字段1 and 表名1.字段1 = 字段中查询的内容
在这里插入图片描述

子查询
子查询指一个查询语句嵌套在另一个查询语句内部的查询,这个特性从mysql4.1开始引入。在select子句中先计算子查询,子查询结果作为外层另一个查询的过滤条件,查询可以基于一个表或者多个表。子查询中常用的操作符有any(some)、all、in、exists。子查询可以添加到select、update和delete语句中,而且可以进行多层嵌套。子查询中也可以使用比较运算符,如“<”,“<=”,“>”,“>=”和“!=”等。
带any、some关键字的子查询
any和some关键字是同义词,表示满足其中任一条件,它们允许创建一个表达式对子查询的返回值列进行比较,只要满足内层子查询中的任何一个比较条件,就返回一个结果作为外层查询的条件。
语法:select 字段 from 表名 where 字段 运算符 关键字 ()
在这里插入图片描述

带all关键字的子查询
all关键字与any和some不同,使用all时需要同时满足所有内层查询的条件。
语法:select 字段 from 表名 where 字段 运算符 all ()
在这里插入图片描述

带exists关键字的子查询
exists关键字后面的参数是一个任意的子查询,系统对子查询进行运算以判断它是否返回行,如果至少返回一行,那么exists的结果为true,此时外层查询语句将进行查询;如果子查询没有返回任何行,那么exists返回的结果是false,此时外层语句将不进行查询。只要()内成立就成立
语法:select * from 表名 where exists ()
在这里插入图片描述

in关键字的子查询
in关键字进行子查询时,内层查询语句仅仅返回一个数据列,这个数据列里的值将提供给外层查询语句进行比较操作。
语法:select 字段 from 表名 where 字段 in ()
在这里插入图片描述

带比较运算符的子查询
语法:select 字段1,字段2 from 表名 where 字段1 运算符()
在这里插入图片描述

合并查询结果
利用union关键字,可以给出多条select语句,并将它们的结果组合成单个结果集。合并时,两个表对应的列数和数据类型必须相同。各个select语句之间使用union或union all关键字分隔。union不使用关键字all,执行的时候删除重复的记录,所有返回的行都是唯一的;使用关键字all的作用是不删除重复行也不对结果进行自动排序。
语法1:select 字段1,字段2 from 表名 where 字段需要执行的操作 union all select 字段1,字段2 from 表名 where 字段需要执行的操作
语法2:select 字段1,字段2 from 表名 where 字段需要执行的操作 union select 字段1,字段2 from 表名 where 字段需要执行的操作
在这里插入图片描述

为表和字段取别名
取别名使用关键字as为查询结果中的某一列指定一个特别 的名字。可以为字段或者表分别取别名,在查询时,使用别名替代指定的内容。
为表取别名
语法:select * from 表名 as 别名 where 需要执行的操作
在这里插入图片描述

为字段取别名
语法:select f1.字段 as 别名 from 表名 as 别名 where 需要执行的操作

在这里插入图片描述

使用正则表达式
正则表达式通常被用来检索或替换那些符合某个模式的文本内容,根据指定的匹配模式匹配文本中符合要求的特殊字符串。例如从一个文本文件中提取电话号码,查找一篇文章中重复的单词或者替换用户输入的某些敏感词语等等,这些地方都可以使用正则表达式。正则表达式强大且灵活,可以应用于非常复杂的查询。mysql中使用regexp关键字指定正则表达式的字符匹配模式。
在这里插入图片描述
在这里插入图片描述

查询以特定字符或字符串开头的记录
语法:select * from 表名 where 字段 regexp ‘^需要查询的开头字母‘
在这里插入图片描述

查询以特定字符或字符串的记录
语法:select * from fruits where 字段 regexp ‘需要查询的结尾字母$‘
在这里插入图片描述

用符合‘.’来代替字符串中的任意一个字符
语法:select * from 表名 where 字段 regexp ‘需要查询字母.需要查询的字母‘(只要有查询的两个字母就都能查询到)
在这里插入图片描述

使用“”来匹配多个字符
语法:selelct * from 表名 where 字段 regexp ‘^需要查询的字母
’(只要有查询的字母就可以查到)
在这里插入图片描述

使用“+”来匹配多个字符
语法:select * from 表名 where 字段 regexp ‘^需要查询的字母+’ 只要有查询的字母就可以查到)
在这里插入图片描述

匹配指定字符串
语法:select * from 表名 where 字段 regexp ‘需要查询的字母|需要查询的字母’(只要有其中一个便可查询出来)
在这里插入图片描述

匹配指定字符中的任意一个
语法:select * from 表名 where 字段 regexp ‘[需要查询的字母数字]’(只要标志字母或数字查询到一个便可查询出来)
在这里插入图片描述

匹配指定字符以外的字符
语法:select * from 表名 where 字段 regexp ‘[^数据1-数据2数据3-数据4]’
在这里插入图片描述

使用{n,}或者{n,m}来指定字符串连续出现的次数
语法:select * from 表名 where 字段 regexp ‘查询的字母{出现几次}’
在这里插入图片描述


http://chatgpt.dhexx.cn/article/cxd4h33b.shtml

相关文章

数据库查询语句-详细篇

今天来梳理一下数据库的一些查询语句&#xff0c;做软件/移动端/电脑端&#xff0c;开发程序时必然离不开数据库的设计以及查询&#xff1b; 一&#xff1a;具体的代码如下展示&#xff1a; 1.查询数据库指定表的所有信息 select * from uploadimagecode;2.查询当前数据表部…

数据库的查询操作

数据库的查询操作 1 DQL_基础查询 本案例使用到SQL语句的代码如下&#xff1a; USE db1; -- 使用数据库 CREATE TABLE student ( id int, -- 编号 name varchar(20), -- 姓名 age int, -- 年龄 sex varchar(5), -- 性别 address varchar(100), -- 地址 math int, -- 数学 …

数据库-简单查询

数据库的操作无外乎是增删改查&#xff0c;那么其中的查询是我们作为测试&#xff0c;用得最多的&#xff0c;那查询应该怎么做呢&#xff0c;我们来讲解一下。 1、介绍一下我们举例的表结构 表一&#xff1a; 学生表&#xff1a;&#xff08;学号&#xff0c;姓名&#xff0…

数据库常见的查询

目录 一、查询的完全限定写法 二、条件查询 三、模糊查询 四、范围查询 1&#xff09;关键字&#xff1a;between and 2&#xff09;关键字&#xff1a;in 3&#xff09;关键字&#xff1a;is null或者、is not null和<>null和!null 五、case when 1&#xff09…

查询数据(数据库)——简单查询

目录 1&#xff0e;最简单的查询 &#xff08;1&#xff09;查询指定列 &#xff08;2&#xff09;查询所有列 &#xff08;3&#xff09;查询计算列 &#xff08;4&#xff09;为列起别名 &#xff08;5&#xff09;使用DISTINCT关键字消除重复元组 2&#xff0e;查询满…

数据库之数据的查询

1 目的 1、理解SQL的特点&#xff1b; 2、掌握SELECT命令的使用&#xff1b; 3、掌握单表查询、连接查询、嵌套查询和集合查询&#xff1b; 4、掌握INSERT、UPDATE和DELETE命令的使用&#xff1b; 5、掌握将SQL命令嵌入到C#或其他高级语言&#xff1b; 2 要点 1、单表查询、…

【MySQL】数据库的基本查询

前言 上篇已经讲过数据库与表相关的一些相关的操作了&#xff0c;如果你对这部分依旧不太熟悉建议先去看看 传送门&#xff1a;【MySQL】逻辑库与数据表相关操作. 这篇就来说一下数据库中表的基本查询&#xff0c;看见是基本查询&#xff0c;就知道肯定有高级查询&#xff0…

SQL数据库的查询操作大全(select)

目录&#xff1a; 1、数据库的连接、创建 2、对字段的操作&#xff1a;&#xff08;alter table&#xff09; 3、对数据的操作&#xff08;插入、修改、删除&#xff09; 4、数据查询&#xff08;select&#xff09; 5、多表查询&#xff08;join on&#xff09; 6、约束…

JDK、Tomcat安装步骤

JDK安装 JDK下载地址 1.JDK安装 &#xff08;1&#xff09;运行Tomcat时需要先安装JDK&#xff0c;下载x64 installer &#xff08;2&#xff09;选择安装路径 &#xff08;3&#xff09;安装完成 2.配置环境变量 &#xff08;1&#xff09;“我的电脑”右键→属性→高级系…

Tomcat安装教程

1、下载 Tomcat。 你可以从 Apache Tomcat 官网&#xff08;Apache Tomcat - Welcome!&#xff09;上下载最新版本的 Tomcat。解压下载的压缩包。将下载的压缩包解压到指定的目录&#xff0c;例如 C:\Tomcat。 2、配置环境变量。 在 Windows 中&#xff0c;打开控制面板&…

详细到落泪的Tomcat安装教程....

前言 我个人是很少写基础软件的安装的&#xff0c;直到有一天诸葛铁头因为Tomcat安装的问题找到我… 诸葛铁头&#xff0c;原名诸葛铁蛋&#xff0c;因人比较头铁&#xff0c;故取名铁头。在诸葛体铁头建议下、以及征求了她的同意后&#xff0c;写了这篇文章。 虽然这篇文章…

Tomcat安装配置

Tomcat 是一个免费的开放源代码的 Web应用服务器&#xff0c;属于轻量级应用服务器&#xff0c;在中小型系统和并发访问用户不是很多的场合下被普遍使用&#xff0c;是开发和调试 JSP程序的首选。 1. Tomcat下载 1&#xff09;进入Tomcat官网&#xff0c;选择下载所需的Tomca…

Tomcat安装教程(windows)

1. 下载Tomcat 首先确定你Windows系统是64位&#xff0c;还是32位(现在大部分是64位)及JDK版本&#xff08;Tomcat在 JDK1.8 环境下能够正常运行&#xff09; 下载地址&#xff1a;Tomcat官网. 2. 安装Tomcat 解压压缩包&#xff0c;放在想要放在的盘符(最好不要是C盘&#…

Apache Tomcat安装配置

Tomcat是由Apache软件基金会下属的Jakarta项目开发的一个Servlet容器。Tomcat 技术先进、性能稳定&#xff0c;而且免费&#xff0c;因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可&#xff0c;成为目前比较流行的Web 应用服务器。 Tomcat安装方法 1、下载Tomcat后&a…

Tomcat安装配置及IDEA配置方法【亲测有效】

Tomcat安装配置及IDEA配置 1.下载Tomcat2.配置Tomcat环境变量3.安装Tomcat4.启动Tomcat5.测试Tomcat6.IDEA配置Tomcat 1.下载Tomcat Tomcat9官网下载地址 选择自己需要的版本&#xff0c;一般选择Windows 64位压缩包版本&#xff1a; 下载完后安装解压即可&#xff0c;解压后…

Eclipse、Tomcat安装配置及部署教程

想用Tomcat作为服务器&#xff0c;必须分以下两步。首先要配置好JDK的环境变量&#xff0c;再去下载Tomcat的压缩包。 下载、安装JDK&#xff0c;并且配置好环境变量 1、打开浏览器&#xff0c;输入JDK搜索&#xff0c;根据搜索结果下载安装包安装应用 2、先接受协议&#x…

Tomcat安装及运行

Tomcat 操作 Tomcat 安装 1、解压压缩文件 【注意】不要有中文路径 2、效果如下 Tomcat 运行 1、移动到tomcat安装路径下&#xff0c;双击进入 2、进入bin目录 3、双击 startup.bat 启动 Tomcat 【注意】区别于 startup.sh &#xff0c;此脚本用于 Linux 下 Tomcat 的启动&a…

Tomcat的安装与配置

Tomcat的安装与配置 一、准备与安装 1.在下载安装tomcat之前请确保计算机上已有java环境&#xff0c;可以通过键盘WindowsR&#xff0c;输入cmd&#xff0c;输入java -version来确定JDK版本&#xff0c;我使用的是JDK1.8 2.进入Tomcat官网&#xff0c;选择与JDK版本相匹配的…

Mac电脑tomcat安装部署

1、tomcat官网下载点击 下载zip到本地&#xff0c;解压即可安装&#xff0c;如下图。 2、命令行启动tomcat&#xff0c;用如下命令 Mac启动、关闭tomcat 。 1.打开终端进入tomcat的bin目录 ~ cd /Users/xxx/Documents/Java/apache-tomcat-9.0.34/bin 2.开启tomcat sudo sh st…

Tomcat 安装教程【附图文说明】

Apache Tomcat下载、安装、配置图文教程自我心得 一、Tomcat下载 Tomcat官网&#xff1a;Tomcat官方网址&#xff0c;可以在此处下载Tomcat。点击左侧Download下的对应版本。 注意有zip和exe两种格式的&#xff0c;zip是免安装版的&#xff0c;exe是安装版。同时观察自己的电…