侧边栏壁纸
博主头像
colo

欲买桂花同载酒

  • 累计撰写 1824 篇文章
  • 累计收到 0 条评论

查询特定姓氏的员工信息

2025-12-12 / 0 评论 / 2 阅读

题目

查询特定姓氏的员工信息

信息

  • 类型:问答
  • 难度:⭐

考点

SELECT基本查询,WHERE条件过滤,LIKE模糊查询

快速回答

使用SELECT语句选择特定列,通过WHERE子句配合LIKE操作符实现模糊查询:

  • SELECT first_name, last_name, department FROM employees
  • WHERE last_name LIKE '张%'
  • 通配符%表示匹配任意字符序列
## 解析

原理说明

该题目考察MySQL基础查询能力:
1. SELECT:指定需要返回的列(避免使用SELECT *)
2. WHERE:过滤不符合条件的记录
3. LIKE:配合通配符实现模式匹配,'张%'表示以"张"开头

代码示例

-- 创建测试表
CREATE TABLE employees (
  id INT PRIMARY KEY,
  first_name VARCHAR(50),
  last_name VARCHAR(50),
  department VARCHAR(50)
);

-- 插入测试数据
INSERT INTO employees VALUES 
(1, '三', '张三', '技术部'),
(2, '小华', '李华', '销售部'),
(3, '明', '张明', '人事部');

-- 解决方案
SELECT first_name, last_name, department 
FROM employees 
WHERE last_name LIKE '张%';

执行结果

first_namelast_namedepartment
张三技术部
张明人事部

最佳实践

  • 💡 明确选择列:避免SELECT *,减少不必要的数据传输
  • 💡 通配符位置LIKE '张%'(前缀匹配)可能使用索引,而LIKE '%张'(后缀匹配)会导致全表扫描
  • 💡 大小写敏感:MySQL默认不区分大小写,但依赖字符集(如utf8_general_ci)

常见错误

  • ❌ 忘记引号:WHERE last_name = 张%(正确应加单引号)
  • ❌ 通配符错误:LIKE '张_'_仅匹配单个字符)
  • ❌ 性能陷阱:LIKE '%张%'在大型表中效率极低

扩展知识

  • 📌 通配符类型
    - %:匹配0-N个任意字符
    - _:匹配单个任意字符
  • 📌 索引优化:对last_name字段建立索引可加速前缀匹配查询
  • 📌 ESCAPE转义:查询含%本身时使用LIKE '%\%%' ESCAPE '\'