MySQL에서 테이블의 전체 데이터가 아닌 특정 열(컬럼)의 값만 가져오고 싶다면, SELECT 문 뒤에 원하는 열 이름을 명시하면 됩니다. SELECT *는 모든 열을 반환하지만, 열 이름을 직접 지정하면 해당 열의 레코드만 효율적으로 조회할 수 있습니다.
아래 예제를 통해 실제 동작 과정을 단계별로 살펴보겠습니다.
1. 테이블 생성하기
먼저 예제에 사용할 테이블을 생성합니다.
mysql> create table DemoTable1837 ( StudentId int NOT NULL AUTO_INCREMENT PRIMARY KEY, StudentName varchar(20) ); Query OK, 0 rows affected (0.00 sec)
위 쿼리는 자동 증가(AUTO_INCREMENT)되는 기본키인 StudentId와 학생 이름을 저장하는 StudentName 두 개의 열로 구성된 테이블을 만듭니다.
2. 샘플 데이터 삽입하기
INSERT 명령어를 사용해 몇 개의 레코드를 추가합니다.
mysql> insert into DemoTable1837(StudentName) values('Chris');
Query OK, 1 row affected (0.00 sec)
mysql> insert into DemoTable1837(StudentName) values('David');
Query OK, 1 row affected (0.00 sec)
mysql> insert into DemoTable1837(StudentName) values('Bob');
Query OK, 1 row affected (0.00 sec)
mysql> insert into DemoTable1837(StudentName) values('Mike');
Query OK, 1 row affected (0.00 sec)3. 전체 레코드 확인하기
SELECT 문으로 테이블의 모든 레코드를 먼저 확인해 보겠습니다.
mysql> select * from DemoTable1837;
실행 결과는 다음과 같습니다.
+-----------+-------------+ | StudentId | StudentName | +-----------+-------------+ | 1 | Chris | | 2 | David | | 3 | Bob | | 4 | Mike | +-----------+-------------+ 4 rows in set (0.00 sec)
SELECT *를 사용했기 때문에 StudentId와 StudentName 두 열이 모두 출력됩니다.
4. 특정 열의 레코드만 조회하기
이제 핵심인 특정 열 조회 방법입니다. 별표(*) 대신 원하는 열 이름인 StudentName을 지정합니다.
mysql> select StudentName from DemoTable1837;
실행 결과는 다음과 같습니다.
+-------------+ | StudentName | +-------------+ | Chris | | David | | Bob | | Mike | +-------------+ 4 rows in set (0.00 sec)
정리
MySQL에서 특정 열의 레코드를 얻으려면 SELECT 열이름 FROM 테이블명; 형식의 쿼리를 사용하면 됩니다. 여러 개의 열이 필요한 경우에는 쉼표(,)로 구분하여 SELECT 열1, 열2 FROM 테이블명;처럼 작성할 수 있습니다. 불필요한 데이터를 제외하고 필요한 열만 조회하면 네트워크 트래픽과 메모리 사용량을 줄여 쿼리 성능도 향상시킬 수 있습니다.