MySQL When 语句的使用

介绍

在MySQL中,WHEN语句是一个条件语句,可以用于在CASE表达式中设置条件。当满足条件时,执行相应的逻辑代码。在本文中,我们将探讨WHEN语句的使用方法,并提供一些示例代码来帮助你理解。

语法

下面是WHEN语句的基本语法:

CASE
    WHEN condition_1 THEN
        code_1
    WHEN condition_2 THEN
        code_2
    ...
    ELSE
        default_code
END;

示例

让我们通过一个示例来演示WHEN语句的使用。假设我们有一个学生表(students),其中包含学生的姓名、年龄和成绩。

创建示例表

首先,我们需要创建一个示例表,并插入一些数据以供后续使用。以下是创建学生表的SQL代码:

CREATE TABLE students (
    id INT AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(50),
    age INT,
    score INT
);

INSERT INTO students (name, age, score)
VALUES ('Alice', 18, 90),
       ('Bob', 17, 85),
       ('Charlie', 19, 95),
       ('David', 18, 80),
       ('Eve', 20, 75);

示例代码

现在,让我们使用WHEN语句编写一些示例代码。

示例 1: 根据成绩等级计算学生的评价

假设我们想根据学生的成绩等级来评价他们的表现。我们可以使用WHEN语句来根据不同的成绩范围提供不同的评价。以下是示例代码:

SELECT name, score,
    CASE
        WHEN score >= 90 THEN '优秀'
        WHEN score >= 80 THEN '良好'
        WHEN score >= 70 THEN '中等'
        ELSE '不及格'
    END AS evaluation
FROM students;

上述示例代码将根据学生的成绩范围生成一个评价字段(evaluation)。例如,如果学生的成绩大于等于90,评价字段将为“优秀”。

示例 2: 根据年龄分组统计学生人数

假设我们想根据学生的年龄分组,并统计每个年龄段的学生人数。我们可以使用WHEN语句来设置不同的年龄范围,并对学生进行分组和计数。以下是示例代码:

SELECT
    CASE
        WHEN age < 18 THEN '未成年'
        WHEN age >= 18 AND age < 20 THEN '青年'
        ELSE '成年'
    END AS age_group,
    COUNT(*) AS student_count
FROM students
GROUP BY age_group;

上述示例代码将根据学生的年龄范围生成一个年龄分组字段(age_group),并统计每个分组中的学生人数。

类图

下面是示例代码中使用的类的类图表示:

classDiagram
    class Students {
        +id: int
        +name: string
        +age: int
        +score: int
    }

上述类图显示了一个名为Students的类,它具有idnameagescore属性。

旅行图

下面是示例代码中使用WHEN语句的旅行图表示:

journey
    title 示例代码中的WHEN语句使用方法
    section 创建示例表
    section 示例代码
    section 类图
    section 旅行图

上述旅行图显示了示例代码中使用WHEN语句的流程。它包括创建示例表、示例代码、类图和旅行图等部分。

结论

本文介绍了WHEN语句在MySQL中的使用方法,并提供了一些示例代码来帮助你更好地理解。通过使用WHEN语句,你可以根据不同的条件执行不同的逻辑代码。希望本文对你理解和应用WHEN语句有所帮助。