Post

DDL

DDL

DDL (data definition language) 데이터베이스의 구조를 정의 하는 언어

  • CREATE: 데이터베이스/테이블 생성
  • ALTER: 테이블 구조 수정
  • DROP: 데이터베이스/테이블 삭제
  • TRUNCATE: 테이블 데이터 초기화

데이터 타입 Data Types

테이블을 생성할 때 각 컬럼의 테이터 타입을 지정 한다.

숫자 타입

  • INT: 정수 (-21억 ~ 21억)
    • e.g. user_id, age, quantity
  • BIGINT: 큰 정수
    • e.g. account_number
  • TINYINT: 작은 정수 (-128~127)
    • status(0,1,2)
  • DECIMAL(p,s): 고정 소수점 (정확한 계산)
    • 전체 자리수는 p. 총 몇 자리까지 저장 가능한지를 의미
    • 소수점 이하 자리수는 s
    • e.g. price DECIMAL(10, 2)
  • DOUBLE: 부동 소수점

문자열 타입

  • VARCHAR(n): 가번 길이 문자열 (최대 n자)
  • CHAR(n): 고정 길이 문자열
  • TEXT: 긴 텍스트

날짜/시간 타입

  • DATE: 날짜만
  • DATETIME: 날짜 + 시간
  • TIMESTAMP: 날짜 + 시간 (자동 갱신)

Create Database

1
CREATE DATABASE 데이터베이스명;

한글 지원 데이터베이스 생성

1
2
CREATE DATABASE test_db
CHARACTER SET utf8mb4
1
2
3
4
5
-- 모든 데이터베이스 목록 조회
SHOW DATABASES;

-- 현재 선택된 데이터베이스 확인
SELECT DATABASE();

Create Table

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
CREATE TABLE 테이블명 (
    컬럼1 데이터타입 [제약조건],
    컬럼2 데이터타입 [제약조건],
    ...
);

-- 고객 정보 테이블 생성
CREATE TABLE customers (
    customer_id   INT             PRIMARY KEY AUTO_INCREMENT,
    first_name    VARCHAR(50)     NOT NULL,
    last_name     VARCHAR(50)     NOT NULL,
    email         VARCHAR(100)    NOT NULL UNIQUE,
    active        BOOLEAN         DEFAULT TRUE,
    created_at    TIMESTAMP       DEFAULT CURRENT_TIMESTAMP
);

제약조건 (Constraints)

  • 데이터의 무결성을 보장하는 규칙
  • Primary Key: 기본키 (고유 + not null)
  • NOT NULL: Null 값 불허

테이블 구조 수정

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
--컬럼 추가
ALTER TABLE customers
ADD COLUMN phone VARCHAR(20);

--컬럼 수정
ALTER TABLE customers
MODIFY COLUMN phone VARCHAR(20) NOT NULL;

--컬럼 이름 변경
ALTER TABLE customers
CHANGE COLUMN phone phone_number VARCHAR(20) NOT NULL;

--컬럼 삭제
ALTER TABLE customers
DROP COLUMN phone_number;

--제약조건 추가
ALTER TABLE customers
ADD CONSTRAINT chk_email
CHECK (email LIKE '%@%');
This post is licensed under CC BY 4.0 by the author.