DESC 명령어로 테이블 구조 확인하기
MySQL에서 테이블의 스키마(구조)를 확인하는 가장 간단한 방법은 DESC 명령어를 사용하는 것입니다. 이 명령어는 필드 이름, 데이터 타입, NULL 허용 여부, 키 정보, 기본값 등 테이블 구조에 대한 상세 설명을 제공합니다.
기본 문법은 다음과 같습니다.
DESCRIBE yourDatabasename.yourTableName;
실제 적용 예시
위 문법을 실제로 적용해 보겠습니다.
mysql> DESCRIBE business.student;
실행 결과는 다음과 같습니다.
+-------+--------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-------+--------------+------+-----+---------+-------+ | id | int(11) | YES | MUL | NULL | | | Name | varchar(100) | YES | MUL | NULL | | +-------+--------------+------+-----+---------+-------+ 2 rows in set (0.05 sec)
출력 결과에서 각 컬럼의 의미는 다음과 같습니다.
- Field: 컬럼(필드)의 이름
- Type: 컬럼의 데이터 타입 및 크기
- Null: 해당 컬럼에 NULL 값 허용 여부
- Key: 인덱스 또는 키 설정 여부(PRI, MUL, UNI 등)
- Default: 기본값
- Extra: AUTO_INCREMENT 같은 추가 속성
SHOW CREATE TABLE 명령어로 스키마 확인하기
테이블의 전체 정의문, 즉 실제 생성 쿼리 형태의 스키마를 확인하고 싶다면 SHOW CREATE TABLE 명령어를 사용하는 것이 좋습니다. 이 방식은 엔진, 문자셋, 콜레이션, 인덱스 정보까지 모두 포함하여 보여줍니다.
기본 문법은 다음과 같습니다.
show create table yourDatabasename.yourTableName;
다음은 실제 쿼리 예시입니다.
mysql> show create table business.student;
실행 결과는 아래와 같이 스키마를 그대로 보여줍니다.
+---------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Table | Create Table | +---------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | student | CREATE TABLE `student` (`id` int(11) DEFAULT NULL, `Name` varchar(100) COLLATE utf8mb4_unicode_ci DEFAULT NULL, KEY `NameStuIndex` (`Name`), KEY `idIndex` (`id`) ) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = | +---------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 1 row in set (0.03 sec)
정리
테이블 구조를 빠르게 개략적으로 확인할 때는 DESC 명령어가 편리하고, 테이블의 완전한 정의(인덱스, 엔진, 문자셋 포함)를 확인해야 할 때는 SHOW CREATE TABLE 명령어를 사용하는 것이 좋습니다. 필요에 따라 두 명령어를 함께 활용하면 MySQL 테이블의 스키마를 효율적으로 파악할 수 있습니다.