MySQL에서 특정 테이블의 열(컬럼) 이름을 확인하고 싶다면 SHOW COLUMNS 명령어 또는 INFORMATION_SCHEMA.COLUMNS를 사용하면 됩니다. 이 글에서는 두 가지 방법을 예제와 함께 자세히 살펴보겠습니다.
예제 테이블 생성하기
먼저 실습에 사용할 테이블을 생성해 보겠습니다.
mysql> create table DemoTable603
(
ClientId int NOT NULL AUTO_INCREMENT,
ClientName varchar(100),
ClientAge int,
ClientAddress varchar(100),
ClientCountryName varchar(100),
ClientEducationDetails varchar(200),
PRIMARY KEY(ClientId)
);
Query OK, 0 rows affected (0.59 sec)
방법 1: SHOW COLUMNS 명령어 사용
SHOW 명령어를 사용하면 테이블의 모든 열 정보를 한눈에 확인할 수 있습니다.
mysql> SHOW COLUMNS FROM DemoTable603;
위 쿼리를 실행하면 다음과 같은 결과가 출력됩니다.
+------------------------+--------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +------------------------+--------------+------+-----+---------+----------------+ | ClientId | int(11) | NO | PRI | NULL | auto_increment | | ClientName | varchar(100) | YES | | NULL | | | ClientAge | int(11) | YES | | NULL | | | ClientAddress | varchar(100) | YES | | NULL | | | ClientCountryName | varchar(100) | YES | | NULL | | | ClientEducationDetails | varchar(200) | YES | | NULL | | +------------------------+--------------+------+-----+---------+----------------+ 6 rows in set (0.00 sec)
결과에서 확인할 수 있듯이, SHOW COLUMNS는 열 이름(Field)뿐만 아니라 데이터 타입(Type), NULL 허용 여부, 키(Key), 기본값(Default) 등 테이블 구조에 대한 상세 정보까지 함께 제공합니다.
방법 2: INFORMATION_SCHEMA.COLUMNS 사용
information_schema.columns를 조회하면 데이터베이스 스키마(table_schema)와 테이블 이름(table_name)을 조건으로 지정해, 원하는 테이블의 열 이름만 정확하게 가져올 수 있습니다.
mysql> select column_name from information_schema.columns where table_schema='web' and table_name='DemoTable603';
실행 결과는 다음과 같습니다.
+------------------------+ | COLUMN_NAME | +------------------------+ | ClientAddress | | ClientAge | | ClientCountryName | | ClientEducationDetails | | ClientId | | ClientName | +------------------------+ 6 rows in set (0.00 sec)
두 방법의 차이점과 활용 팁
SHOW COLUMNS는 테이블 구조 전체를 빠르게 파악할 때 유용하며, 주로 개발 중 스키마를 확인할 때 사용됩니다. 반면 INFORMATION_SCHEMA.COLUMNS는 필요한 열(column_name)만 선택적으로 조회할 수 있어, 애플리케이션 코드나 동적 쿼리 작성 시 열 이름 목록을 프로그래밍 방식으로 가져와야 하는 경우에 더 적합합니다.
상황에 맞게 두 방법을 적절히 활용하면 MySQL 테이블의 열 정보를 효율적으로 관리할 수 있습니다.