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

MySQL에서 특정 열 값과 일치하는 여러 행을 조회하는 방법 (WHERE 절 활용)

MySQL에서는 WHERE 절을 사용하면 특정 열(column)의 값이 주어진 조건과 일치하는 여러 행(row)을 한 번에 손쉽게 조회할 수 있습니다. 이 글에서는 예제 테이블을 직접 만들고, 'Java'라는 과목명을 가진 학생 데이터를 모두 가져오는 과정을 단계별로 살펴보겠습니다.

1단계: 샘플 테이블 생성

먼저 예제에 사용할 테이블을 생성합니다. StudentId는 자동 증가(AUTO_INCREMENT)되는 기본 키로 설정했습니다.

mysql> create table DemoTable1528
    -> (
    -> StudentId int NOT NULL AUTO_INCREMENT PRIMARY KEY,
    -> StudentName varchar(20),
    -> StudentSubject varchar(20)
    -> );
Query OK, 0 rows affected (0.53 sec)

2단계: INSERT로 데이터 삽입

INSERT 명령을 사용해 학생 이름과 수강 과목 데이터를 차례로 추가합니다.

mysql> insert into DemoTable1528(StudentName,StudentSubject) values('Chris','MongoDB');
Query OK, 1 row affected (0.38 sec)
mysql> insert into DemoTable1528(StudentName,StudentSubject) values('Bob','MySQL');
Query OK, 1 row affected (0.10 sec)
mysql> insert into DemoTable1528(StudentName,StudentSubject) values('David','Java');
Query OK, 1 row affected (0.11 sec)
mysql> insert into DemoTable1528(StudentName,StudentSubject) values('Carol','C');
Query OK, 1 row affected (0.13 sec)
mysql> insert into DemoTable1528(StudentName,StudentSubject) values('Sam','Java');
Query OK, 1 row affected (0.08 sec)
mysql> insert into DemoTable1528(StudentName,StudentSubject) values('Mike','Java');
Query OK, 1 row affected (0.11 sec)
mysql> insert into DemoTable1528(StudentName,StudentSubject) values('Adam','MySQL');
Query OK, 1 row affected (0.13 sec)

3단계: 전체 레코드 확인

SELECT 문으로 테이블에 저장된 모든 레코드를 조회해 보겠습니다.

mysql> select * from DemoTable1528;

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

+-----------+-------------+----------------+
| StudentId | StudentName | StudentSubject |
+-----------+-------------+----------------+
|         1 | Chris       | MongoDB        |
|         2 | Bob         | MySQL          |
|         3 | David       | Java           |
|         4 | Carol       | C              |
|         5 | Sam         | Java           |
|         6 | Mike        | Java           |
|         7 | Adam        | MySQL          |
+-----------+-------------+----------------+
7 rows in set (0.00 sec)

4단계: WHERE 절로 특정 값과 일치하는 여러 행 조회하기

특정 열의 값이 주어진 조건과 일치하는 여러 행을 가져오려면 SELECT 문에 WHERE 절을 추가하면 됩니다. 여기서는 StudentSubject 열의 값이 'Java'인 행만 조회하는 쿼리를 실행합니다.

mysql> select StudentId,StudentName,StudentSubject from DemoTable1528 where StudentSubject='Java';

위 쿼리의 실행 결과는 다음과 같습니다.

+-----------+-------------+----------------+
| StudentId | StudentName | StudentSubject |
+-----------+-------------+----------------+
|         3 | David       | Java           |
|         5 | Sam         | Java           |
|         6 | Mike        | Java           |
+-----------+-------------+----------------+
3 rows in set (0.00 sec)

결과를 보면 'Java'를 수강하는 David, Sam, Mike 세 명의 학생 데이터가 정확히 반환된 것을 확인할 수 있습니다. WHERE 절은 조건과 일치하는 모든 행을 자동으로 찾아주기 때문에, 조건을 만족하는 행이 몇 개든 한 번의 쿼리로 모두 가져올 수 있습니다.

추가 팁: 더 유연한 조건 검색

  • 부분 일치 검색: 값의 일부만 알고 있다면 LIKE '%Java%'처럼 와일드카드를 활용할 수 있습니다.
  • 여러 값 동시 조회: 'Java'와 'MySQL'처럼 두 개 이상의 값을 조건으로 지정하려면 WHERE StudentSubject IN ('Java','MySQL') 구문을 사용하면 편리합니다.
  • 성능 최적화: 조건으로 자주 사용하는 열에는 인덱스를 생성하면 대량의 데이터에서도 조회 속도를 크게 향상시킬 수 있습니다.

이처럼 WHERE 절 하나만으로도 원하는 조건에 맞는 여러 행을 간단하고 효율적으로 조회할 수 있습니다.