MySQL基础:数据查询与常用运算符实战

Leo
Leo
发布时间:2026-10-15| 5人浏览过
原创

掌握 MySQL 基础数据查询与运算符是数据库操作的入门关键。本文通过实际代码示例,系统介绍如何使用 SELECT 进行列筛选、别名定义与去重查询;详细解析 WHERE 子句中各类比较运算符、范围限制、模糊匹配(LIKE)及 NULL 值处理的正确语法;并演示 least 和 greatest 函数的数值比较特性,帮助读者快速构建规范的 SQL 查询逻辑。

基本查询操作

在关系型数据库中,数据查询不仅仅是获取已存储的信息,更重要的是根据业务需求对数据进行筛选、重组并以特定形式展示。以下是 MySQL 中最基础的查询语法结构:

第1步:全表与指定列查询

目的:掌握获取表内数据的基本方式。

入口:SQL 客户端或脚本编辑器。

动作:使用 SELECT 关键字。

  • 查询所有商品(字段):若需获取表中所有列的数据,可使用通配符 *。select * from 表名;
  • 查询指定某列/多列:仅获取需要的信息,减少网络传输开销。格式为逗号分隔列名。select 列名1, 列名2 from 表名;

第2步:设置表别名与列别名

目的:优化结果集的显示名称或在复杂查询中简写表名。

参数:自定义字符串作为别名。

操作:

  • 表别名:select * from 表名 as 别名; (注:当涉及单张表时通常省略 as,但在多表连接时必须使用)。
  • 列别名:select 列名1 as 新别名, 列名2 as 新别名 from 表名;。这有助于在返回结果中对数据进行更直观的命名。

第3步:数据去重与表达式运算

目的:消除冗余数据或即时计算字段值。

操作:

  • 去除重复值:使用 DISTINCT 关键字。select distinct 列名 from 表名;。注意:DISTINCT 作用于其后的整行记录(若有多列则视为组合),对于存在主键的表通常无法去重。
  • 表达式运算查询:可以直接在查询中对数值列进行加减乘除计算,不会修改原表数据,仅在内存中生成结果。select 列名, (列名 + 10) as 计算后字段 from 表名;。

数据过滤与常用运算符

确定表结构后,往往只需要满足特定条件的数据。此时需要使用 WHERE 子句配合各种运算符进行精准过滤。以下以常见的“商品信息表”为例演示:

第4步:算术运算符(价格调整示例)

目的**>:查看计算后的新数据状态。

动作:结合 SELECT 与运算符。

实例:假设需要将商品价格上调 10%。

select pname, price*1.1 as new_price from 商品表;

第5步:精确条件与范围过滤

目的:筛选符合特定标签或数值区间的记录。

操作:

  • 等于查询:查询商品名为“海尔洗衣机”的记录。select * from 商品表 where pname = '海尔洗衣机';
  • BETWEEN 运算符:查询价格在 100 到 200 之间的商品(包含边界值)。select * from 商品表 where price between 100 and 200;。这等价于 price >= 100 and price <= 200。

第6步:集合匹配与通配符模糊查询

目的:处理多值匹配与非精确的文本搜索。

参数:`IN` 列表或 `LIKE` 模式串。

操作:

  • IN 运算符:当需要匹配多个离散值时使用,括号内的值只要满足一个即可(相当于 OR 的关系)。例如查询价格是 200 或 800 的商品:select * from 商品表 where price in (200, 800);
  • LIKE 运算符(通配符):
    - % 代表零个或多个任意字符。
    - _ 代表单个任意字符。
    示例 1:查询名称中包含“裤”字的所有商品:select * from 商品表 where pname like '%裤%';
    示例 2:查询名称以“海”字开头的商品:select * from 商品表 where pname like '海%';
    示例 3:查询第二个字为“寇”的所有商品:select * from 商品表 where pname like '_寇%';

第7步:NULL 值的特殊处理

目的:正确处理未赋值或缺失数据的列。

注意:在标准 SQL 中,NULL 不等于任何值,包括它自己。因此不能使用 = NULL 或 <> NULL。

操作:

  • 判断非空:查询 id 字段不为空的记录。select * from 表名 where 列名 is not NULL;
  • 判断为空:对应的语法为 where 列名 is NULL。

第8步:数值比较函数 least/greatest

目的:快速获取一组数值中的最小值或最大值。

参数:至少两个数值或字段参数。

核心规则:如果传入的参数中包含 NULL,MySQL 的这两个函数通常会直接返回 NULL(除非使用 IFNULL 等预处理),因为它们遵循三值逻辑。

实例演示:

(1) Least (求最小值):

-- 正常情况
select least(5, 10, 20);
-- 赋予别名便于理解
select least(5, 10, 20) as small_number;
-- 包含 NULL 的情况,结果为 NULL
select least(5, NULL, 20); 

(2) Greatest (求最大值):

-- 正常情况
select greatest(10, 30, 20) as big_number;
-- 包含 NULL 的情况,结果为 NULL
select greatest(10, NULL, 20) as big_number;

总结

以上是关于 MySQL 基本查询和运算符的详细内容,更多关于 MySQL 基本查询和运算符的资料请关注本站其它相关文章!

相关标签:

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。