MySQL 基础查询语句参考手册

发布于:2025-03-30 ⋅ 阅读:(127) ⋅ 点赞:(0)

一、基本查询操作

  1. 从表中选取特定列

    sql

    -- 从 employees 表中选取 last_name 列
    SELECT last_name FROM employees;
    
    -- 从 employees 表中选取 last_name、salary、email 列
    SELECT last_name, salary, email FROM employees;
    
  2. 获取表的全部列信息

    sql

    -- 从 jobs 表中获取所有列的信息
    SELECT * FROM jobs;
    
  3. 查询常量、表达式以及函数结果

    sql

    -- 查询数字常量 100
    SELECT 100;
    
    -- 查询字符串常量 'join'
    SELECT 'join';
    
    -- 计算表达式 100 * 8 的值
    SELECT 100 * 8;
    
    -- 调用 VERSION() 函数获取 MySQL 版本号
    SELECT VERSION();
    
二、查询结果的优化处理
  1. 为列或结果设置别名

    sql

    -- 方式一:使用 AS 关键字
    SELECT 100 AS 计算结果;
    
    -- 方式二:省略 AS 关键字
    SELECT 100 计算结果;
    
  2. 去除查询结果中的重复值

    sql

    -- 从 employees 表中选取不重复的 department_id 列
    SELECT DISTINCT department_id FROM employees;
    
  3. 进行字符串拼接操作

    sql

    -- 使用 CONCAT 函数拼接字符串 'a' 和 'b'
    SELECT CONCAT('a', 'b') AS 拼接结果;
    
三、条件查询功能
  1. 条件运算符的运用

    sql

    -- 查找 salary 列值大于等于 10000 的员工记录
    SELECT * FROM employees WHERE salary >= 10000;
    
    -- 查找 department_id 列值不等于 90 的员工的 last_name 和 department_id
    SELECT last_name, department_id 
    FROM employees 
    WHERE department_id != 90;
    
    -- 查找 salary 列值在 10000 到 20000 之间的员工记录
    SELECT last_name, salary, commission_pct 
    FROM employees 
    WHERE salary BETWEEN 10000 AND 20000;
    
  2. 模糊查询的实现

    sql

    -- 查找 last_name 列值包含字母 'a' 的员工记录(% 代表任意多个字符)
    SELECT * FROM employees WHERE last_name LIKE '%a%';
    
    -- 查找 last_name 列值为 5 个字符且第三个字符为 'e'、第五个字符为 'a' 的员工记录(_ 代表单个字符)
    SELECT * FROM employees WHERE last_name LIKE '__e_a%';
    
  3. 处理 NULL 值的查询

    sql

    -- 查找 commission_pct 列值为 NULL 的员工记录
    SELECT * FROM employees WHERE commission_pct IS NULL;
    
    -- 查找 commission_pct 列值不为 NULL 的员工记录
    SELECT * FROM employees WHERE commission_pct IS NOT NULL;
    
四、运算符与逻辑操作符
运算符类型 运算符列表 说明
比较运算符 =><>=<=!= 用于比较两个值的大小关系
逻辑运算符 AND/&&OR/` NOT/!` 用于组合多个查询条件
模糊匹配符 LIKE 结合 % 或 _ 进行模式匹配
范围运算符 BETWEEN ... AND ... 用于指定一个值的范围
集合运算符 IN 用于判断值是否在指定的集合中
五、注意要点
  1. 运算符的优先级

    • 比较运算符的优先级高于逻辑运算符。
    • 可以使用括号 () 来明确查询条件的执行顺序。
  2. 性能方面的考量

    • 在使用 LIKE 进行模糊查询时,避免以 % 开头,因为这可能会导致全表扫描,影响查询性能。
    • 对于大数据量的去重操作,DISTINCT 可能会使查询性能下降,需要谨慎使用。
  3. 转义字符的使用

    • 当需要匹配 % 或 _ 本身时,需要使用转义字符 \

    sql

    -- 查找 last_name 列值包含 '%' 的员工记录
    SELECT * FROM employees WHERE last_name LIKE '%\%';
    
附录:示例表结构
  1. employees 表

    列名 数据类型 说明
    employee_id INT 员工编号,主键
    last_name VARCHAR(50) 员工姓氏
    salary DECIMAL(10,2) 员工工资
    email VARCHAR(100) 员工邮箱
    department_id INT 员工所在部门编号
    commission_pct DECIMAL(4,2) 员工奖金比例(可能为 NULL)
  2. departments 表

    列名 数据类型 说明
    department_id INT 部门编号,主键
    department_name VARCHAR(50) 部门名称
    manager_id INT 部门经理编号
  3. jobs 表

    列名 数据类型 说明
    job_id INT 职位编号,主键
    job_title VARCHAR(50) 职位名称
    min_salary DECIMAL(10,2) 该职位的最低工资
    max_salary DECIMAL(10,2) 该职位的最高工资

网站公告

今日签到

点亮在社区的每一天
去签到