MySQL에서 테이블의 구조를 확인하고 싶을 때 가장 유용하게 사용할 수 있는 명령어가 바로 SHOW CREATE TABLE입니다. 이 쿼리는 해당 테이블을 생성할 때 사용된 CREATE TABLE 문 전체를 그대로 출력해 주기 때문에, 컬럼 정의, 데이터 타입, 기본 키, 문자셋, 스토리지 엔진 등 테이블의 모든 세부 정보를 한눈에 파악할 수 있습니다.
기본 문법
SHOW CREATE TABLE yourTableName;
테이블 이름 부분에 구조를 확인하고자 하는 실제 테이블명을 입력하면 됩니다.
예제 테이블 생성하기
먼저 예제로 사용할 테이블을 하나 만들어 보겠습니다.
mysql> create table DemoTable
-> (
-> Id int NOT NULL AUTO_INCREMENT PRIMARY KEY,
-> EmployeeFirstName varchar(100),
-> EmployeeLastName varchar(100),
-> EmployeeAge int,
-> isMarried tinyint(1),
-> EmployeeAddress varchar(100),
-> EmployeeCountryName varchar(100)
-> );
Query OK, 0 rows affected (0.62 sec)위 테이블은 직원 정보를 저장하는 테이블로, 자동 증가되는 기본 키 Id와 이름, 나이, 결혼 여부, 주소, 국가명 컬럼들로 구성되어 있습니다.
테이블 구조 조회 쿼리 실행
이제 DemoTable의 구조를 확인해 보겠습니다.
mysql> show create table DemoTable;
실행 결과
쿼리를 실행하면 다음과 같은 결과가 출력됩니다.
+--------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Table | Create Table | +--------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | DemoTable | CREATE TABLE `DemoTable` ( `Id` int(11) NOT NULL AUTO_INCREMENT, `EmployeeFirstName` varchar(100) COLLATE utf8_unicode_ci DEFAULT NULL, `EmployeeLastName` varchar(100) COLLATE utf8_unicode_ci DEFAULT NULL, `EmployeeAge` int(11) DEFAULT NULL, `isMarried` tinyint(1) DEFAULT NULL, `EmployeeAddress` varchar(100) COLLATE utf8_unicode_ci DEFAULT NULL, `EmployeeCountryName` varchar(100) COLLATE utf8_unicode_ci DEFAULT NULL, PRIMARY KEY (`Id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci | +--------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 1 row in set (0.00 sec)
결과 해석하기
출력된 CREATE TABLE 문을 살펴보면 다음과 같은 정보를 확인할 수 있습니다.
- 컬럼 정의: 각 컬럼의 데이터 타입(int, varchar, tinyint 등)과 크기를 확인할 수 있습니다.
- 기본 키:
PRIMARY KEY (`Id`)를 통해 Id 컬럼이 기본 키로 설정되어 있음을 알 수 있습니다. - AUTO_INCREMENT: Id 컬럼은 값이 자동으로 1씩 증가하도록 설정되어 있습니다.
- 문자셋 및 정렬 규칙:
CHARSET=utf8,COLLATE=utf8_unicode_ci가 적용되어 있습니다. - 스토리지 엔진:
ENGINE=InnoDB로 트랜잭션을 지원하는 InnoDB 엔진을 사용합니다.
참고: DESCRIBE와의 차이점
테이블 구조를 확인하는 또 다른 방법으로 DESCRIBE tableName; 또는 DESC tableName;이 있습니다. DESCRIBE는 컬럼명, 타입, NULL 허용 여부, 키, 기본값 등을 간결한 표 형태로 보여주는 반면, SHOW CREATE TABLE은 실제 테이블 생성 문을 그대로 반환하기 때문에 인덱스, 문자셋, 엔진 옵션까지 포함한 완전한 정의가 필요할 때 특히 유용합니다. 백업 스크립트 작성이나 다른 환경으로 테이블을 복제할 때도 SHOW CREATE TABLE의 출력 결과를 활용하면 편리합니다.