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
的类,它具有id
、name
、age
和score
属性。
旅行图
下面是示例代码中使用WHEN
语句的旅行图表示:
journey
title 示例代码中的WHEN语句使用方法
section 创建示例表
section 示例代码
section 类图
section 旅行图
上述旅行图显示了示例代码中使用WHEN
语句的流程。它包括创建示例表、示例代码、类图和旅行图等部分。
结论
本文介绍了WHEN
语句在MySQL中的使用方法,并提供了一些示例代码来帮助你更好地理解。通过使用WHEN
语句,你可以根据不同的条件执行不同的逻辑代码。希望本文对你理解和应用WHEN
语句有所帮助。