DDL(Data Definition Language, 데이터 정의 언어)은 테이블 생성, 수정, 삭제 등 데이터베이스 구조를 정의하는 데 사용되는 SQL 명령어 집합입니다. MySQL에서는 복잡한 절차 없이 단 하나의 쿼리만으로 특정 테이블의 전체 DDL을 손쉽게 확인할 수 있습니다.
SHOW CREATE TABLE 명령어란?
쿼리를 통해 테이블의 DDL을 생성하려면 SHOW CREATE 명령어를 사용합니다. 기본 문법은 다음과 같습니다.
SHOW CREATE TABLE yourTableName;
위 문법은 MySQL 전용으로 제공되는 기능입니다. 이 명령어 하나만 실행하면 해당 테이블을 그대로 재현할 수 있는 CREATE TABLE 문 전체가 출력되므로, 백업 스크립트 작성이나 환경 간 테이블 구조 마이그레이션 시 매우 유용하게 활용됩니다.
실습 예제: 샘플 테이블 만들기
설명을 돕기 위해 'DDLOfTableStudent'라는 이름의 학생 정보 테이블을 먼저 생성해 보겠습니다.
mysql> create table DDLOfTableStudent -> ( -> StudentId int, -> StudentFirstName varchar(100), -> StudentLastName varchar(100), -> StudentAddress varchar(200), -> StudentAge int, -> StudentMarks int -> ); Query OK, 0 rows affected (0.84 sec)
테이블이 성공적으로 생성되었습니다. 이제 위에서 소개한 문법을 사용해 이 테이블의 DDL을 조회해 보겠습니다.
DDL 조회 쿼리 실행
mysql> SHOW CREATE TABLE DDLOfTableStudent;
실행 결과 확인
다음은 쿼리 실행 결과로 출력된 DDL 내용입니다.
+-------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Table | Create Table | +-------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | DDLOfTableStudent | CREATE TABLE `ddloftablestudent` (`StudentId` int(11) DEFAULT NULL,`StudentFirstName` varchar(100) DEFAULT NULL,`StudentLastName` varchar(100) DEFAULT NULL,`StudentAddress` varchar(200) DEFAULT NULL,`StudentAge` int(11) DEFAULT NULL,`StudentMarks` int(11) DEFAULT NULL) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci | +-------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 1 row in set (0.00 sec)
결과를 살펴보면 두 개의 컬럼이 반환됩니다. 첫 번째 컬럼에는 테이블 이름이, 두 번째 컬럼에는 해당 테이블의 완전한 CREATE TABLE 문이 표시됩니다. 출력 결과에는 컬럼 정의뿐만 아니라 스토리지 엔진(InnoDB), 기본 문자셋(utf8mb4), 콜레이션(utf8mb4_0900_ai_ci) 같은 세부 설정까지 모두 포함됩니다.
추가 팁: 더 읽기 좋은 결과 보기
테이블 형태의 출력은 가로로 길어서 콘솔에서 보기 불편할 수 있습니다. 이 경우 쿼리 끝에 \G를 붙여 실행하면 세로 방향으로 결과가 정렬되어 훨씬 읽기 편해집니다.
mysql> SHOW CREATE TABLE DDLOfTableStudent\G
SQL Server와의 비교
참고로 SQL Server에는 SHOW CREATE TABLE과 동일한 명령어가 없습니다. 대신 SSMS(SQL Server Management Studio)의 개체 탐색기에서 테이블을 우클릭한 뒤 '테이블 스크립팅 → CREATE → 새 쿼리 편집기 창' 메뉴를 사용하거나, sp_help 시스템 저장 프로시저 또는 INFORMATION_SCHEMA 뷰를 조회하여 테이블 구조를 확인할 수 있습니다.