네, 기존 테이블의 열(컬럼) 목록을 가져올 때 SHOW COLUMNS 문 대신 DESCRIBE 또는 EXPLAIN 문을 사용할 수 있습니다. 이 두 문장은 SHOW COLUMNS와 완전히 동일한 결과를 반환하므로, 상황에 따라 더 편리한 방식을 선택해 사용하면 됩니다.
DESCRIBE와 EXPLAIN의 차이점은 없을까?
결론부터 말하면 두 문장은 동의어입니다. MySQL 공식 문서에서도 DESCRIBE는 EXPLAIN의 동의어(synonym)라고 명시하고 있으며, 실제 실행 결과도 동일하게 출력됩니다. 아래 예제를 통해 'Employee' 테이블에 두 문장을 각각 적용한 결과를 확인해 보겠습니다.
1. DESCRIBE 문 사용 예시
mysql> DESCRIBE Employee\G
*************************** 1. row ***************************
Field: Id
Type: int(11)
Null: YES
Key:
Default: NULL
Extra:
*************************** 2. row ***************************
Field: Name
Type: varchar(20)
Null: YES
Key:
Default: NULL
Extra:
2 rows in set (0.05 sec)
2. EXPLAIN 문 사용 예시
mysql> EXPLAIN Employee\G
*************************** 1. row ***************************
Field: Id
Type: int(11)
Null: YES
Key:
Default: NULL
Extra:
*************************** 2. row ***************************
Field: Name
Type: varchar(20)
Null: YES
Key:
Default: NULL
Extra:
2 rows in set (0.04 sec)
위 결과에서 볼 수 있듯이, DESCRIBE와 EXPLAIN 모두 SHOW COLUMNS와 똑같은 형태의 결과 집합을 반환합니다. 각 행에는 다음과 같은 정보가 포함됩니다.
- Field: 열(컬럼)의 이름
- Type: 열의 데이터 타입 및 크기
- Null: NULL 값 허용 여부
- Key: 인덱스 정보(PRIMARY KEY, UNIQUE 등)
- Default: 기본값
- Extra: AUTO_INCREMENT 등 추가 정보
참고: information_schema를 활용한 방법
표준 SQL 방식으로 열 정보를 조회하고 싶다면 information_schema.COLUMNS 테이블을 쿼리하는 방법도 있습니다. 이 방식은 특정 조건으로 필터링하거나 프로그래밍적으로 처리할 때 유용합니다.
SELECT COLUMN_NAME, DATA_TYPE, IS_NULLABLE FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 'Employee';
정리
테이블 구조를 빠르게 확인하려면 DESCRIBE 테이블명; 또는 그 축약형인 DESC 테이블명;을 사용하는 것이 가장 간편합니다. 세 가지 방법(SHOW COLUMNS, DESCRIBE, EXPLAIN) 모두 같은 결과를 제공하므로, 개인의 선호나 팀의 코딩 컨벤션에 맞게 선택하면 됩니다.