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

MySQL에서 테이블 구조를 확인하는 방법: SHOW CREATE TABLE 쿼리 완벽 가이드

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의 출력 결과를 활용하면 편리합니다.