Computer >> 컴퓨터 >  >> 프로그래밍 >> MySQL

MySQL CASE 문으로 학생 성적 결과에 대한 사용자 정의 메시지 설정하기

개요

학생의 점수에 따라 맞춤형 메시지를 표시하고 싶다면 MySQL의 CASE 문을 활용하면 됩니다. CASE 문은 조건을 평가하여 조건에 맞는 값을 반환하는 강력한 도구로, 성적 처리나 등급 분류처럼 조건별로 다른 결과를 보여줘야 하는 상황에서 매우 유용합니다.

이번 글에서는 예제 테이블을 만들고, 데이터를 삽입한 뒤, CASE 문을 사용해 학생 점수에 따라 'Good Marks(좋은 점수)' 또는 'Not Good Marks(좋지 않은 점수)'라는 사용자 정의 메시지를 출력하는 방법을 단계별로 살펴보겠습니다.

1단계: 테이블 생성하기

먼저 MySQL CASE 문을 사용해 조건을 설정할 수 있도록 예제 테이블을 생성합니다.

mysql> create table DemoTable1916
    (
    StudentName varchar(20),
    StudentMarks int
    );
Query OK, 0 rows affected (0.00 sec)

위 쿼리는 학생 이름(StudentName)과 학생 점수(StudentMarks) 두 개의 컬럼을 가진 테이블을 만듭니다.

2단계: 데이터 삽입하기

INSERT 명령을 사용해 테이블에 샘플 레코드를 추가합니다.

mysql> insert into DemoTable1916 values('Chris',59);
Query OK, 1 row affected (0.00 sec)
mysql> insert into DemoTable1916 values('David',89);
Query OK, 1 row affected (0.00 sec)
mysql> insert into DemoTable1916 values('Sam',94);
Query OK, 1 row affected (0.00 sec)
mysql> insert into DemoTable1916 values('Mike',75);
Query OK, 1 row affected (0.00 sec)
mysql> insert into DemoTable1916 values('Carol',69);
Query OK, 1 row affected (0.00 sec)

3단계: 저장된 데이터 확인하기

SELECT 문을 사용해 테이블의 모든 레코드를 조회합니다.

mysql> select * from DemoTable1916;

실행하면 다음과 같은 결과가 출력됩니다.

+-------------+--------------+
| StudentName | StudentMarks |
+-------------+--------------+
| Chris       |           59 |
| David       |           89 |
| Sam         |           94 |
| Mike        |           75 |
| Carol       |           69 |
+-------------+--------------+
5 rows in set (0.00 sec)

4단계: CASE 문으로 사용자 정의 메시지 출력하기

이제 핵심인 CASE 문 쿼리입니다. 점수가 70점을 초과하면 'Good Marks'를, 그렇지 않으면 'Not Good Marks'를 반환하도록 조건을 설정합니다.

mysql> select StudentName,
    case when StudentMarks > 70 Then 'Good Marks'
    else
    'Not Good Marks'
    end
    as Result
    from DemoTable1916;

실행 결과는 다음과 같습니다.

+-------------+----------------+
| StudentName | Result         |
+-------------+----------------+
| Chris       | Not Good Marks |
| David       |     Good Marks |
| Sam         |     Good Marks |
| Mike        |     Good Marks |
| Carol       | Not Good Marks |
+-------------+----------------+
5 rows in set (0.00 sec)

결과 분석

출력 결과를 보면 점수가 70점을 넘는 David(89점), Sam(94점), Mike(75점)에게는 'Good Marks'가 표시되고, 70점 이하인 Chris(59점)와 Carol(69점)에게는 'Not Good Marks'가 표시된 것을 확인할 수 있습니다.

마무리 및 응용 팁

이처럼 MySQL의 CASE 문을 사용하면 별도의 애플리케이션 로직 없이도 데이터베이스 쿼리 내에서 조건에 따른 사용자 정의 메시지를 손쉽게 생성할 수 있습니다.

실무에서는 조건을 더 세분화할 수도 있습니다. 예를 들어 90점 이상은 'Excellent', 80점 이상은 'Very Good', 70점 이상은 'Good', 그 외에는 'Needs Improvement'처럼 여러 개의 WHEN 절을 추가하면 더욱 정교한 등급 시스템을 구현할 수 있습니다. 또한 CASE 문은 SELECT뿐만 아니라 UPDATE, ORDER BY 절 등에서도 활용 가능하므로 다양한 상황에서 응용해 보시기 바랍니다.