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

MySQL에서 단일 행(레코드) 하나만 조회하는 방법

MySQL에서 테이블에 저장된 데이터 중 단 하나의 행(row)만 조회하고 싶다면, WHERE 절과 기본 키(Primary Key)를 활용하는 것이 가장 확실하고 효율적인 방법입니다. 기본 키는 각 행을 고유하게 식별하므로, 이를 조건으로 사용하면 정확히 한 개의 레코드만 빠르게 가져올 수 있습니다.

기본 문법

기본 키 열의 값이 특정 값과 일치하는 행을 선택하려면 아래와 같은 형식의 쿼리를 사용합니다.

SELECT * FROM yourTableName WHERE yourPrimaryKeyColumnName = someValue;

예제 테이블 생성하기

문법을 실제로 이해하기 위해 먼저 예제용 테이블을 만들어 보겠습니다. 아래 쿼리는 학생 정보를 저장하는 테이블을 생성합니다.

mysql> create table selectWithPrimaryKey
    -> (
    -> Id int NOT NULL AUTO_INCREMENT,
    -> Name varchar(20),
    -> Age int,
    -> Marks int,
    -> PRIMARY KEY(Id)
    -> );
Query OK, 0 rows affected (0.78 sec)

여기서 Id 열은 자동 증가(AUTO_INCREMENT)되며, 기본 키로 지정되어 있어 각 행을 고유하게 구분할 수 있습니다.

데이터 삽입하기

INSERT 명령어를 사용해 테이블에 여러 개의 레코드를 추가합니다.

mysql> insert into selectWithPrimaryKey(Name,Age,Marks) values('Larry',24,98);
Query OK, 1 row affected (0.15 sec)

mysql> insert into selectWithPrimaryKey(Name,Age,Marks) values('John',23,89);
Query OK, 1 row affected (0.21 sec)

mysql> insert into selectWithPrimaryKey(Name,Age,Marks) values('Mike',21,85);
Query OK, 1 row affected (0.18 sec)

mysql> insert into selectWithPrimaryKey(Name,Age,Marks) values('Sam',26,56);
Query OK, 1 row affected (0.18 sec)

mysql> insert into selectWithPrimaryKey(Name,Age,Marks) values('Carol',21,59);
Query OK, 1 row affected (0.18 sec)

mysql> insert into selectWithPrimaryKey(Name,Age,Marks) values('Bob',20,91);
Query OK, 1 row affected (0.21 sec)

mysql> insert into selectWithPrimaryKey(Name,Age,Marks) values('David',28,93);
Query OK, 1 row affected (0.15 sec)

전체 데이터 확인하기

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

mysql> select *from selectWithPrimaryKey;

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

+----+-------+------+-------+
| Id | Name  | Age  | Marks |
+----+-------+------+-------+
|  1 | Larry |   24 |    98 |
|  2 | John  |   23 |    89 |
|  3 | Mike  |   21 |    85 |
|  4 | Sam   |   26 |    56 |
|  5 | Carol |   21 |    59 |
|  6 | Bob   |   20 |    91 |
|  7 | David |   28 |    93 |
+----+-------+------+-------+
7 rows in set (0.00 sec)

현재 테이블에는 총 7개의 행이 저장되어 있습니다.

단일 행 조회하기

이제 WHERE 절에 기본 키 조건을 지정하여 특정 한 개의 행만 조회해 보겠습니다. 예를 들어 Id가 6인 학생(Bob)의 정보만 가져오려면 다음과 같이 작성합니다.

mysql> select *from selectWithPrimaryKey where Id = 6;

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

+----+------+------+-------+
| Id | Name | Age  | Marks |
+----+------+------+-------+
| 6  | Bob  | 20   | 91    |
+----+------+------+-------+
1 row in set (0.00 sec)

정리

WHERE 절에 기본 키 값을 조건으로 지정하면 해당하는 단일 행만 정확하게 조회할 수 있습니다. 기본 키에는 인덱스가 자동으로 적용되기 때문에, 대량의 데이터가 있는 테이블에서도 매우 빠른 속도로 원하는 레코드를 찾아낼 수 있다는 점이 큰 장점입니다.