MySQL 数据库基础:常用查询操作详解
掌握 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 查询技巧与实战应用的文章请持续关注本站后续更新!
本站声明
本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。













