웹개발/SQL(mySQL)

MySQL DDL 문법 (Data Definition Language)

bergerac 2025. 6. 11. 09:11

MySQL에서 DDL(Data Definition Language)은 데이터의 구조를 정의하고 변경하는 데 사용된다. 이 글에서는 DDL의 대표적인 명령어인 CREATE, ALTER, DROP, TRUNCATE를 중심으로 데이터베이스와 테이블의 생성, 수정, 삭제 과정을 정리한다.

 

1. CREATE

 

1) 데이터 베이스 생성

데이터를 저장하고 관리하기 위한 컨테이너로서의 데이터베이스는 다음 명령으로 생성할 수 있다:

 
CREATE DATABASE example;
CREATE DATABASE school;

또는 존재하지 않을 경우에만 생성하도록 if not exists 옵션을 줄 수도 있다(이미 생성되어 있는 경우 오류방지)

CREATE DATABASE if not exists example;

2) 테이블 생성

테이블은 데이터를 실제로 담는 구조체로, 각 열(column)의 데이터타입과 제약조건을 명시해서 생성한다

create table `school`.`students` (
	student_id int,
    student_name char(8),
    student_gender char(8)
);

3) 문자 인코딩 설정

한글 등 다양한 문자를 저장할 경우에는 문자셋 설정이 필수다:

create table `school`.`students_encoding` (
	student_id int,
    student_name char(8),
    student_gender char(8)
)
default character set = utf8;

 

**USE : 작업 대상 데이터베이스 설정

use example;

USE 명령은 이후 모든 SQL 명령을 지정된 데이터베이스에 적용되도록 한다. GUI 환경에서는 스키마를 더블 클릭하는 것과 동일한 효과다.

 

2. DROP: 데이터베이스 및 테이블 삭제

DROP은 구조와 데이터를 통째로 삭제하는 명령이다. 절대 되돌릴 수 없기 때문에 신중해야 한다.

drop table `school`.`students`;
drop database `school`;

IF EXISTS 옵션을 활용하면 삭제 대상이 존재할 때만 삭제하도록 설정할 수 있다:

drop database if exists school;

 

**테이블 구조 확인

desc students;

테이블의 컬럼명, 데이터타입, 제약조건 등의 구조를 간단히 확인할 수 있다. desc는 describe의 축약형이다.

 

3. ALTER: 테이블 구조 수정

이미 생성된 테이블의 구조를 바꿔야 할 때 사용되는 명령어이다.

1) 컬럼 추가

alter table students add column email varchar(255);

2)컬럼 타입 변경

alter table students modify column email varchar(100);

3) 컬럼 삭제

alter table students drop column email;

column 키워드는 생략해도 무방하지만, 가독성을 위해 작성하는 것이 좋다.

 

4. TRUNCATE : 테이블 데이터 전체 삭제

TRUNCATE는 테이블 구조는 유지하면서 내부 데이터를 전부 삭제한다. 초기화에 유용하다.

truncate table students;

 

**SHOW DATABASE

현재 SQL 서버에 존재하는 모든 데이터베이스(스키마)를 확인할 수 있는 명령어이다.

'웹개발 > SQL(mySQL)' 카테고리의 다른 글

무결성(Integrity)  (1) 2025.06.14
MySQL 명명규칙  (1) 2025.06.13
MYSQL DataType  (2) 2025.06.12
RDBMS와 SQL 기초 개념  (0) 2025.06.10
Workbench사용법 및 환경변수 정리  (4) 2025.06.09