데이터베이스 작업을 하다 보면 특정 테이블에 어떤 열(column)들이 정의되어 있는지 확인해야 할 때가 많습니다. MySQL에서는 SHOW COLUMNS 문을 사용하면 간단하게 해결할 수 있습니다.
기본 구문(Syntax)
SHOW COLUMNS FROM tab_name;
여기서 tab_name은 열 목록을 조회하고자 하는 테이블의 이름입니다. 이 문장을 실행하면 해당 테이블에 포함된 모든 열의 이름(Field), 데이터 타입(Type), NULL 허용 여부(Null), 키 정보(Key), 기본값(Default), 추가 속성(Extra)까지 한눈에 확인할 수 있습니다.
사용 예제
다음은 Student_info라는 테이블에서 열 목록을 조회하는 실제 예제입니다. 쿼리 끝에 \G를 붙이면 결과가 세로 형태로 출력되어 가독성이 좋아집니다.
mysql> SHOW COLUMNS FROM Student_info\G
*************************** 1. row ***************************
Field: studentid
Type: int(11)
Null: YES
Key:
Default: NULL
Extra:
*************************** 2. row ***************************
Field: Name
Type: varchar(40)
Null: YES
Key:
Default: NULL
Extra:
*************************** 3. row ***************************
Field: Address
Type: varchar(20)
Null: YES
Key:
Default: NULL
Extra:
*************************** 4. row ***************************
Field: Subject
Type: varchar(20)
Null: YES
Key:
Default: NULL
Extra:
4 rows in set (0.06 sec)결과 해석
위 출력 결과를 통해 Student_info 테이블에는 다음과 같은 4개의 열이 있다는 것을 알 수 있습니다.
- studentid – int(11) 타입의 학생 ID 열
- Name – varchar(40) 타입의 이름 열
- Address – varchar(20) 타입의 주소 열
- Subject – varchar(20) 타입의 과목 열
모든 열은 NULL 값을 허용하며, 별도의 기본값(Default)은 설정되어 있지 않습니다.
알아두면 유용한 팁
SHOW COLUMNS FROM tab_name;은 DESCRIBE tab_name; 또는 축약형 DESC tab_name;과 결과가 동일합니다. 또한 LIKE '패턴'이나 WHERE 절을 함께 사용하면 원하는 열만 필터링해서 조회할 수 있으므로, 열이 많은 대형 테이블을 다룰 때 특히 유용합니다.