MySQL 数据库基础:常用查询操作详解

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

掌握 MySQL 数据库的查询能力是数据处理的核心。本文基于经典的员工(emp)与部门(dept)数据集,系统讲解 SQL SELECT 语句的基础应用。内容涵盖从全表扫描到指定列查询、字段别名定义、列数值运算,以及利用 WHERE 子句实现的条件过滤,包括范围、集合、空值判断和字符串模糊匹配,帮助读者建立清晰的 SQL 查询逻辑。

准备环境:测试数据集

为了直观展示查询效果,以下使用标准的 SCOTT 示例库中的三张表作为操作对象:

  • dept 表(部门信息):包含部门编号、名称及所在地。
  • emp 表(员工信息):包含员工号、姓名、职位、薪资、奖金及所属部门。
  • salgrade 表(薪资等级):用于薪资区间划分。

基础查询:选择列

在 MySQL 中,最基本的操作是使用 SELECT 语句获取数据。虽然可以使用 * 选取所有列,但在实际开发中,建议明确指定所需的列名以提高查询效率并减少网络传输开销。

第 1 步:执行简单查询

目的:从表中提取单列或多列数据。
入口/动作:编写 SELECT 语句。

  • 查询所有列:select * from dept;。适用于预览表结构或数据量极小的场景。
  • 查询单列:select DNAME from dept;。仅返回部门名称。
  • 查询多列:select DNAME , LOC from dept;。同时返回部门名称和地点,列之间用逗号分隔。

第 2 步:为列设置别名

目的:优化输出结果的列标题,使其更具可读性或符合业务需求。
动作:在列名后直接跟随新名称,或使用 AS 关键字。

-- 使用 AS 关键字(推荐,语义清晰)
mysql> select DNAME as NAME from dept;

-- 省略 AS 关键字(同样有效)
mysql> select DNAME NAME from dept;

注意:在 SQL 标准中,字符串常量统一使用单引号('),例如 'MANAGER'。

数据处理:列间运算

SELECT 语句支持对列进行数学运算,结果将作为新列显示在输出中。常用于计算派生值,如年薪等。

第 3 步:执行列运算

动作:在 SELECT 列表中直接使用运算符。
示例:查询员工的月薪并计算年薪。

mysql> select ename,sal*12 from emp;

此操作不会修改数据库原数据,仅在查询结果集中生成新列,列名为表达式本身(如 sal*12)。

精准筛选:条件查询 (WHERE)

当需要过滤不符合要求的数据时,使用 WHERE 子句。以下是常见的条件判断类型:

第 4 步:数值范围与空值判断

目的:筛选特定数值区间或处理缺失值(NULL)。
动作:使用 =、BETWEEN...AND、IS NULL 等。

  • 大于等于:查询工资 >= 3000 的员工。
    select empno,ename from emp where sal >= 3000;
  • 闭区间范围:查询 2000 到 3000 之间的工资(含边界)。
    select empno,ename from emp where sal between 2000 and 3000;
  • 判断空值重点:判断字段为空必须使用 IS NULL,不能使用 = NULL。
    select empno,ename from emp where comm is null;

第 5 步:多条件组合

目的:满足多个筛选规则。
动作:使用逻辑运算符 AND 或 OR。

-- 查询职位为 MANAGER 且工资 >= 2500 的员工
mysql> select * from emp where JOB = 'MANAGER' and SAL >= 2500;

第 6 步:集合成员查询

目的:判断某列的值是否在指定的列表中。
动作:使用 IN 关键字,配合括号内的列表。

-- 查询岗位为 MANAGER 或 SALESMAN 的员工
mysql> select empno,ename,job from emp where job in ('MANAGER','SALESMAN');

模式匹配:模糊查询 (LIKE)

当不知道确切的关键字,或部分信息已知时,使用 LIKE 结合通配符进行字符串匹配。
通配符说明:% 代表任意长度字符串,_ 代表单个字符。

第 7 步:应用 LIKE 语法

  • 包含特定字符:名字中包含字母 'o'。
    select ename from emp where ename like '%o%';
  • 以某字符结尾:名字以 'T' 结尾。
    select ename from emp where ename like '%T';
  • 以某字符开头:名字以 'K' 开头。
    select ename from emp where ename like 'K%';
  • 指定位数匹配:
    - 第二个字母是 'A':使用单个下划线 _。
    select ename from emp where ename like '_A%';
    - 第三个字母是 'A':使用两个下划线 __。
    select ename from emp where ename like '__A%';

以上就是 MySQL 数据库基础查询操作的详细内容,更多关于 MySQL 查询技巧与实战应用的文章请持续关注本站后续更新!

相关标签:

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表