티스토리 뷰

Database

[Database] DDL

daze1002 2025. 3. 23. 23:44
반응형

🧱 1. DDL (Data Definition Language)

DDL은 데이터베이스의 구조(스키마)를 정의하거나 수정하는 명령어 모음입니다.


📌 1-1. CREATE - 테이블 생성

CREATE TABLE IF NOT EXISTS tb1 (
    pk INT PRIMARY KEY,
    fk INT,
    col1 VARCHAR(255),
    CHECK(col1 IN ('Y', 'N'))
) ENGINE=INNODB;
  • IF NOT EXISTS중복 생성 방지
  • 컬럼 정의 문법
    column_name data_type(length) [NOT NULL] [DEFAULT value] [AUTO_INCREMENT]

🔍 테이블 확인

DESCRIBE tb1;

데이터 삽입

INSERT INTO tb1 VALUES (1, 10, 'Y');
SELECT * FROM tb1;

📌 1-2. AUTO_INCREMENT - 자동 번호 증가

CREATE TABLE IF NOT EXISTS tb2 (
    pk INT AUTO_INCREMENT PRIMARY KEY,
    fk INT,
    col1 VARCHAR(255),
    CHECK(col1 IN ('Y', 'N'))
) ENGINE=INNODB;
INSERT INTO tb2 VALUES (NULL, 10, 'Y');
INSERT INTO tb2 VALUES (NULL, 20, 'Y');
SELECT * FROM tb2;

📌 1-3. ALTER - 테이블 구조 수정

🔧 1-3-1. 컬럼 추가

ALTER TABLE tb2
ADD col2 INT NOT NULL;

❌ 1-3-2. 컬럼 삭제

ALTER TABLE tb2
DROP COLUMN col2;

✏️ 1-3-3. 컬럼명 및 타입 변경

ALTER TABLE tb2
CHANGE COLUMN fk change_fk INT NOT NULL;

🔒 1-3-4. 제약조건 수정 (PRIMARY KEY 등)

  • AUTO_INCREMENT가 걸려 있으면 DROP PRIMARY KEY 불가
    → 먼저 AUTO_INCREMENT 해제 후 제거 가능
ALTER TABLE tb2 MODIFY pk INT;
ALTER TABLE tb2 DROP PRIMARY KEY;

→ 다시 설정

ALTER TABLE tb2 ADD PRIMARY KEY(pk);

➕ 1-3-5. 여러 컬럼 추가

ALTER TABLE tb2
ADD col3 DATE NOT NULL,
ADD col4 TINYINT NOT NULL;

🚫 MySQL 설정에 따라 NO_ZERO_DATE 에러 발생 가능
→ 해결 방법:

SET GLOBAL sql_mode = '';

📌 1-4. DROP - 테이블 삭제

DROP TABLE IF EXISTS tb3;

📦 복수 테이블 삭제

DROP TABLE IF EXISTS tb4, tb5;

📌 1-5. TRUNCATE - 테이블 초기화

TRUNCATE tb6;
  • DELETE보다 빠른 테이블 전체 삭제
  • AUTO_INCREMENT 초기화도 함께 수행

📘 TIP 요약

명령어 기능 요약
CREATE 테이블 생성
ALTER 테이블 수정 (컬럼 추가/변경/삭제, 제약조건 등)
DROP 테이블 삭제
TRUNCATE 테이블 내용 전체 삭제 및 초기화
AUTO_INCREMENT 자동 증가 기본키 설정

'Database' 카테고리의 다른 글

[Database] VIEW  (0) 2025.03.23
[Database] INDEX  (0) 2025.03.23
[Database] CONSTRAINTS  (0) 2025.03.23
[Database] 데이터베이스 모델링  (1) 2025.03.23
[Database] Database 개요  (0) 2025.03.23
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/04   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30
글 보관함