[MySQL] DDL

thingzoo·2023년 6월 24일
0

MySQL

목록 보기
5/17
post-thumbnail

DDL(Data Definition Language)

테이블이나 관계의 구조를 생성하는데 사용

CREATE

데이터베이스 객체(데이터베이스, 테이블, 인덱스, 뷰 등) 생성

  • 데이터베이스 생성
CREATE DATABASE 데이터베이스명;
  • 테이블 생성
CREATE TABLE 테이블명
(
	컬럼명 컬럼타입 PRIMARY KEY,
	컬럼명 컬럼타입 UNIQUE NOT NULL,
    컬럼명 컬럼타입 DEFAULT '기본값',
    ...
    FOREIGN KEY(컬럼명) REFERENCES ON 참조테이블(컬럼명)
    CHECK(성적 >= 100)
);
  • 인덱스 생성
CREATE INDEX 인덱스명
ON 테이블명(컬럼명);
  • 뷰 생성
CREATE VIEW 뷰명[(컬럼명, ..)]
AS 
	SELECT 컬럼명[, 컬럼명, ..] FROM 테이블명
    ...
;

ALTER

기존 생성된 데이터베이스 객체의 구조를 수정

  • 속성 추가
ALTER TABLE 테이블명 ADD 컬럼명 컬럼타입;
  • 속성 변경
ALTER TABLE 테이블명 MODIFY 컬럼명 컬럼타입;
  • 속성 삭제
ALTER TABLE 테이블명 DROP 컬럼명;
  • 인덱스 변경
ALTER INDEX 구인덱스명 RENAME TO 신인덱스명; // 이름 변경
ALTER INDEX 인덱스명 REBUILD; // 인덱스 속도가 저하되거나 깨졌을 경우 재구성
ALTER INDEX 인덱스명 UNUSABLE; // 인덱스 비활성화

DROP

데이터베이스 객체 삭제

  • 데이터 및 테이블 전체를 삭제
  • IF EXISTS: 부재한 테이블로 인한 에러 방지
DROP DATABASE 데이터베이스명 [IF EXISTS 데이터베이스명];
DROP TABLE 테이블명 [IF EXISTS 테이블명];

TRUNCATE

데이터베이스 객체 삭제, 구조는 남기고 데이터만 비움

  • 내용 삭제
TRUNCATE DATABASE 데이터베이스명;
TRUNCATE TABLE 테이블명;
profile
공부한 내용은 바로바로 기록하자!

0개의 댓글