MySQL - DDL

정진우·2022년 6월 8일
0

TIL

목록 보기
53/54
post-thumbnail
post-custom-banner

DDL이란?

  • Data Definition Language
  • 테이블과 관련 열을 생성하고 변경하고 삭제하는 명령어
  • 커밋하지 않아도 데이터베이스에 즉각 반영되며 데이터 사전에 기록됨
  • CREATE, ALTER, DROP이 대표적인 명령어



CREATE

CREATE DATABASE

CREATE DATABASE 데이터베이스 이름; # Database 를 생성하는 명령어
SHOW DATABASES; # 현재 MySQL 에 저장되어있는 데이터베이스를 보는 명령어
USE 데이터베이스 이름; # 생성한 데이터베이스에 접근하는 명령어
SHOW tables; # 현재 데이터베이스 안에 저장되어있는 테이블들을 보는 명령어

CREATE TABLE

CREATE TABLE 테이블 이름
(
  id INT NOT NULL AUTO_INCREMENT, # id 칼럼을 정수, NULL 을 허락하지 않으며 값을 자동증가하게 설정
  name VARCHAR(100) NOT NULL, # name 칼럼을 100의 크기를 가지는 문자열, NULL 을 허락하지 않음
  PRIMARY KEY (id) # 이 테이블의 Primary Key 를 id 로 설정
); # 쿼리문은 ; 로 구분되기 때문에 엔터를 쳐서 쿼리문을 멀티라인으로 작성할 수 있음
DESC 테이블 이름; #Description 을 축약해 놓은 명령어, 테이블의 정보를 보여줌



ALTER

ALTER TABLE

이미 생성한 테이블에 열을 추가, 변경, 삭제하여 테이블 구조 변경

ALTER TABLE ~ ADD 절

테이블에 새로운 필드 추가

ALTER TABLE 테이블 이름
      ADD ( 열 이름 1 데이터 타입,
            열 이름 2 데이터 타입,);

새로 생성되는 열은 위치를 지정할 수 없음(테이블의 마지막에 위치)
테이블에 이미 행이 있다면 열을 추가했을 때 새로운 열의 데이터 값은 null로 초기화


ALTER TABLE ~ MODIFY 절

열의 정의를 수정. 열의 수정 대상은 열의 데이터 타입과 크기, Default Value

ALTER TABLE 테이블 이름
      MODIFY ( 열 이름 1 데이터 타입,
               열 이름 2 데이터 타입,);

ALTER TABLE ~ RENAME COLUMN 절

열 이름을 수정

ALTER TABLE 테이블 이름 RENAME COLUMN 열 이름 1 to 바꾸려는 열 이름 1;

ALTER TABLE ~ DROP COLUMN 절

열 삭제

ALTER TABLE 테이블 이름 DROP COLUMN 열 이름;



TRUNCATE

TRUNCATE TABLE

  • 테이블의 데이터를 모두 삭제하고 사용하던 기억 공간도 해제
  • 테이블에 생성된 인덱스와 같은 객체도 같이 삭제
  • 테이블의 구조는 삭제되지 않음
TRUNCATE TABLE 테이블 이름;



DROP

DROP DATEBASE

데이터베이스 삭제

DROP DATEBASE 데이터베이스 이름;

DROP TABLE

  • 테이블을 완전히 삭제
  • 테이블을 삭제할 때 데이터베이스는 테이블에 있는 모든 자료와
    그와 연관된 모든 인덱스를 삭제하고 사용하고 있던 저장 공간을 돌려줌
  • 트랜잭션이 자동으로 커밋
  • 모든 인덱스와 제약 조건이 삭제
DROP TABLE 테이블 이름;









Reference

TCP SCHOOL
더북 Let's Get IT SQL 프로그래밍

profile
프론트엔드 개발자를 꿈꾸는
post-custom-banner

0개의 댓글