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

MySQL에서 SHOW COLUMNS 대신 테이블 열 목록을 조회하는 방법: DESCRIBE와 EXPLAIN 활용하기

네, 기존 테이블의 열(컬럼) 목록을 가져올 때 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)

위 결과에서 볼 수 있듯이, DESCRIBEEXPLAIN 모두 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) 모두 같은 결과를 제공하므로, 개인의 선호나 팀의 코딩 컨벤션에 맞게 선택하면 됩니다.