AI编程助手
AI免费问答

MySQL怎样执行简单查询语句 SELECT查询的10个入门示例

蓮花仙者   2025-08-14 16:59   578浏览 原创

  1. 使用select 列名 from 表名可查询指定列,select * from 表名可查询所有列;2. 通过where子句可按等于、范围、like模糊匹配等条件筛选数据;3. 使用and、or可组合多条件查询;4. 用order by可对结果排序,默认升序,desc为降序;5. 用limit可限制返回数量,实现分页如limit 10, 20表示跳过前10条取20条;6. 聚合函数count、sum、avg可统计数量、求和与平均值;7. 使用distinct可去除重复记录,获取唯一值。这些基础操作构成了mysql查询的核心,掌握后可高效检索与分析数据。

MySQL怎样执行简单查询语句 SELECT查询的10个入门示例

MySQL里执行SELECT查询,其实就是跟数据库说:“把这些数据给我看看。” 它用的是

SELECT
关键字,后面接着你要看哪些列,然后
FROM
指定是从哪张表里找。很简单,但却是你和数据库打交道最频繁、也最核心的方式之一。

解决方案

要执行MySQL的SELECT查询,最基本的语法是:

SELECT 列名1, 列名2, ...
FROM 表名;

或者,如果你想查看表里的所有列,可以用星号(

*
)作为通配符:

SELECT *
FROM 表名;

这句命令,你可以在MySQL的命令行客户端(比如你用

mysql -u 用户名 -p
登录后)直接输入,敲回车,然后记得以分号
;
结尾,再回车执行。当然,现在更多人会选择图形化界面工具,比如Navicat、DataGrip、DBeaver或者phpMyAdmin,在它们的查询窗口里输入SQL语句,然后点击执行按钮就行了。这些工具通常还会帮你高亮语法,提示错误,方便很多。

实际操作中,你可能还需要先选择一个数据库,用

USE 数据库名;
命令,确保你正在对正确的数据库进行操作。

MySQL SELECT基础:如何精准选取特定列或查看所有数据?

我们聊SELECT查询,最开始接触的,往往就是怎么把一张表里的东西“捞”出来。这就像你走进一个图书馆,想找几本书,或者直接想看看这个阅览室里都有什么书。

示例1:查看一张表里的所有数据 这是最直接的,也是最常用的入门操作。当你对一张表结构不熟悉,或者想快速预览所有内容时,

SELECT *
就派上用场了。

-- 假设我们有一个用户表叫 'users'
SELECT *
FROM users;

这条语句会返回

users
表里所有的列和所有的行。当然,如果表里数据量特别大,比如几十万上百万行,直接
SELECT *
可能就不太明智了,不仅慢,还可能把你的客户端或者数据库服务器搞得有点卡。这时候你就需要考虑加点限制了。

示例2:只查看表中的特定几列数据 很多时候,我们并不需要表里所有的信息。比如,我只关心用户的姓名和邮箱,用户的年龄、住址这些我暂时不需要。这时候,你就可以明确指定要查询的列名。

-- 只想看用户的姓名和邮箱
SELECT name, email
FROM users;

这样做的好处很明显:查询效率更高,因为数据库不需要传输那么多不必要的数据;结果集更简洁,方便你快速定位到你关心的信息。这是个好习惯,在实际开发中非常推荐。

条件查询利器WHERE:高效筛选所需数据,入门操作详解

光是能看所有数据或者部分列,这还远远不够。数据库里最强大的地方在于它的筛选能力。想象一下,你有一堆数据,但你只想找出符合特定条件的那些,这时候

WHERE
子句就登场了,它就是你的数据筛选过滤器。

示例3:根据单一条件筛选数据(等于) 这是最常见的筛选方式,比如你想找出某个特定ID的用户,或者某个状态的订单。

-- 找出ID为1001的用户
SELECT *
FROM users
WHERE id = 1001;

示例4:根据数值范围筛选数据(大于、小于、大于等于、小于等于) 如果你想找价格高于某个值的商品,或者年龄小于某个值的用户,这些比较运算符就很有用。

-- 找出价格高于500的商品
SELECT name, price
FROM products
WHERE price > 500;

-- 找出库存少于10件的商品
SELECT name, stock
FROM products
WHERE stock <p><strong>示例5:模糊匹配查询(LIKE)</strong>
有时候你只记得部分信息,比如你想找名字里包含“手机”的商品,或者邮箱里有特定域名的用户。<pre class="brush:php;toolbar:false">LIKE
操作符配合通配符(
%
代表任意数量字符,
_
代表单个字符)就能帮你实现模糊查询。

-- 找出名字中包含“手机”的商品
SELECT name, price
FROM products
WHERE name LIKE '%手机%';

-- 找出邮箱以“@example.com”结尾的用户
SELECT name, email
FROM users
WHERE email LIKE '%@example.com';

示例6:多条件组合查询(AND, OR) 如果你需要同时满足多个条件,或者满足其中任意一个条件,

AND
OR
就派上用场了。

-- 找出价格在100到200之间,并且库存大于0的商品
SELECT name, price, stock
FROM products
WHERE price BETWEEN 100 AND 200 AND stock > 0;

-- 找出城市是“北京”或“上海”的用户
SELECT name, city
FROM users
WHERE city = '北京' OR city = '上海';

这里

BETWEEN
操作符其实是
>= AND <=
的简写,用起来更简洁。

结果排序与分页:ORDER BY和LIMIT助你掌控数据展现

查询出来的数据,很多时候我们需要它按照一定的顺序排列,或者只看其中一部分。

ORDER BY
LIMIT
就是干这个的。

示例7:按特定列排序查询结果(ORDER BY) 你想让结果按照价格从低到高排列,或者按照创建时间从新到旧排列,

ORDER BY
就能帮你实现。默认是升序(ASC),你可以明确指定降序(DESC)。

-- 按照商品价格从低到高排序
SELECT name, price
FROM products
ORDER BY price ASC;

-- 按照用户注册时间从新到旧排序
SELECT name, register_date
FROM users
ORDER BY register_date DESC;

你甚至可以指定多个排序条件,比如先按城市排序,城市相同的再按年龄排序。

示例8:限制查询结果的数量(LIMIT) 这个非常有用,尤其是在处理大量数据时,你可能只想看前几条,或者做分页展示。

-- 只显示最贵的5件商品
SELECT name, price
FROM products
ORDER BY price DESC
LIMIT 5;

-- 从第10条记录开始,显示接下来的20条记录(常用于分页:LIMIT offset, count)
SELECT name, email
FROM users
LIMIT 10, 20; -- 意思是跳过前10条,取从第11条开始的20条

数据统计概览:COUNT、SUM、AVG等聚合函数入门应用

数据库不仅能帮你查数据,还能帮你做一些基本的统计分析,这就是聚合函数的作用。它们对一组值执行计算,然后返回一个单一的值。

示例9:统计记录数量(COUNT) 想知道表里总共有多少用户?或者有多少件商品?

COUNT()
函数可以帮你。

-- 统计用户表里有多少条记录
SELECT COUNT(*)
FROM users;

-- 统计价格高于100的商品有多少件
SELECT COUNT(*)
FROM products
WHERE price > 100;

示例10:计算总和与平均值(SUM, AVG) 如果你想知道所有商品的销售总额,或者某个分类商品的平均价格,

SUM()
AVG()
就派上用场了。

-- 计算所有商品的库存总和
SELECT SUM(stock)
FROM products;

-- 计算电子产品分类的平均价格
SELECT AVG(price)
FROM products
WHERE category = '电子产品';

去重与唯一性:如何使用DISTINCT获取不重复的记录?

有时候,你查询出来的结果可能包含重复的值,但你只想要那些不重复的、唯一的记录。

DISTINCT
关键字就是为此而生的。

示例11:获取不重复的城市列表 假设你的用户表里有很多用户,来自不同的城市,但你只想知道都有哪些城市被记录了,每个城市只显示一次。

-- 获取用户表中所有不重复的城市名称
SELECT DISTINCT city
FROM users;

DISTINCT
可以用在单个列上,也可以用在多个列的组合上。如果用在多个列上,它会确保这几列的组合是唯一的。

这些例子,基本涵盖了SELECT查询最常用、最基础的入门操作。掌握了它们,你就能开始在MySQL里自由地探索和筛选数据了。当然,MySQL的查询能力远不止这些,还有联表查询(JOIN)、分组查询(GROUP BY)等等更高级的玩法,但那是后话了。先把这些基础的玩转,你会发现数据库操作其实挺有意思的。

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。