Database/Mysql

[MySQL][SQL] 1. DDL

noahkim_ 2026. 3. 3. 22:17

1. DDL

  • 데이터베이스 객체의 구조를 정의하거나 변경하는 명령어

 

특징

  • 자동 커밋
  • TCL 불가 (ROLLBACK ❌)
  • 구조 변경 명령

 

2. 종류

구분 명령어 설명
생성 CREATE DB / 테이블 생성
변경 ALTER 컬럼 추가/수정/삭제
삭제 DROP 객체 자체 삭제
전체삭제 TRUNCATE 테이블 데이터 전체 삭제
이름변경 RENAME 객체 이름 변경

 

create) character set

더보기
CREATE DATABASE mydb
CHARACTER SET utf8mb4
COLLATE utf8mb4_general_ci;
  • 문자를 어떤 인코딩 체계로 저장할지 정의

 

create) collation

더보기
CREATE DATABASE mydb
CHARACTER SET utf8mb4
COLLATE utf8mb4_general_ci;
  • 문자열을 비교/정렬하는 규칙 정의

 

create) 제약 조건

더보기
CREATE TABLE Employees (
    ID INT AUTO_INCREMENT,
    FirstName VARCHAR(100) NOT NULL,
    Email VARCHAR(255) UNIQUE,
    Age INT CHECK (Age >= 18),
    PRIMARY KEY (ID)
);
제약조건 설명 특징
NOT NULL NULL 불가 반드시 값 필요
UNIQUE 중복 불가 NULL은 허용 가능
PRIMARY KEY PK 지정 NOT NULL + UNIQUE
FOREIGN KEY 참조 무결성 부모 테이블 참조
CHECK 조건 제약 값 범위 제한
DEFAULT 기본값 설정 값 미입력 시 자동

 

alter) 구조 변경

더보기
ALTER TABLE Employees ADD COLUMN Salary INT;
ALTER TABLE Employees MODIFY COLUMN Salary DECIMAL(10,2);
ALTER TABLE Employees CHANGE Salary AnnualSalary DECIMAL(10,2);
ALTER TABLE Employees DROP COLUMN Address;
ALTER TABLE Employees RENAME TO Staff;

 

기능 예시
컬럼 추가 ADD COLUMN
컬럼 수정 MODIFY COLUMN
컬럼 이름 변경 CHANGE old new
컬럼 삭제 DROP COLUMN
테이블 이름 변경 RENAME