반응형
이번엔 MySQL의 DDL (Data Definition Language)을 깔끔하게 총정리해보겠습니다.
✅ DDL이란?
DDL(Data Definition Language)은 데이터베이스, 테이블, 인덱스, 제약조건 등 데이터 구조 자체를 정의하거나 수정하는 언어다.
• 데이터의 형태, 구조(스키마)를 만들고 바꾸는 데 사용
• 트랜잭션 처리 불가 (ROLLBACK 안 됨)
• 실행 즉시 자동 커밋 (Auto-commit)
[MySQL] DCL 총정리
MySQL에서 DCL (Data Control Language)은 권한(Privilege)과 관련된 명령어를 제공하는 언어입니다. 주로 사용자 관리, 권한 부여/회수에 사용됩니다. 핵심은 보안과 접근 제어에 있습니다. ✅ DCL 주요
jyhan0625.tistory.com
2. 주요 DDL 명령어
명령어 | 설명 |
CREATE | 데이터베이스 객체 생성 (DB, Table 등) |
DROP | 데이터베이스 객체 삭제 |
ALTER | 테이블 구조 변경 |
TRUNCATE | 테이블 데이터 전체 삭제 (구조는 남김) |
RENAME | 테이블 이름 변경 |
1. CREATE
1) 데이터베이스 생성
CREATE DATABASE db_name;
예시
CREATE DATABASE school;
2) 테이블 생성
CREATE TABLE table_name (
column_name datatype [constraints],
...
);
예시
CREATE TABLE students (
id INT PRIMARY KEY,
name VARCHAR(50) NOT NULL,
age INT,
grade CHAR(1)
);
2. DROP
1) 데이터베이스 삭제
DROP DATABASE db_name;
예시
DROP DATABASE school;
2) 테이블 삭제
DROP TABLE table_name;
예시
DROP TABLE students;
3. ALTER
1) 컬럼 추가
ALTER TABLE table_name ADD column_name datatype;
예시
ALTER TABLE students ADD address VARCHAR(100);
2) 컬럼 삭제
ALTER TABLE table_name DROP COLUMN column_name;
예시
ALTER TABLE students DROP COLUMN address;
3) 컬럼 수정 (자료형 변경, 크기 변경 등)
ALTER TABLE table_name MODIFY COLUMN column_name new_datatype;
예시
ALTER TABLE students MODIFY COLUMN name VARCHAR(100);
4) 컬럼 이름 변경
ALTER TABLE table_name CHANGE old_name new_name datatype;
예시
ALTER TABLE students CHANGE grade student_grade CHAR(1);
4. TRUNCATE
• 테이블 내 데이터 모두 삭제 (구조는 그대로)
• ROLLBACK 불가
• AUTO_INCREMENT 값 초기화
TRUNCATE TABLE table_name;
예시
TRUNCATE TABLE students;
5. RENAME
• 테이블 이름 변경
RENAME TABLE old_name TO new_name;
예시
RENAME TABLE students TO alumni;
✅ 제약조건 (Constraints)
DDL 명령어에 자주 등장하는 제약조건들!
제약조건 | 설명 |
PRIMARY KEY | 기본키 (중복 불가, NULL 불가) |
FOREIGN KEY | 외래키 (다른 테이블 참조) |
UNIQUE | 중복 불가 |
NOT NULL | NULL 값 입력 금지 |
DEFAULT | 기본값 설정 |
CHECK | 조건 만족해야 데이터 입력 가능 |
반응형
'BACKEND [Kamranahmedse Roadmap] > DB' 카테고리의 다른 글
JDBC를 통해 데이터 입력, 삭제, 조회하기 (0) | 2025.03.24 |
---|---|
JDBC란 무엇인가? (0) | 2025.03.19 |
[MySQL] DML 총정리 (0) | 2025.03.17 |
[MySQL] DCL 총정리 (0) | 2025.03.16 |
MySQL서버 실행 및 종료 + 데몬(daemon) (0) | 2025.03.04 |