[MySql] DDL-CREATE, ALTER, TRUNCATE, DROP

hyun·2022년 9월 12일
0

SQL

목록 보기
3/7

📚 DDL (Data Definition Language)

  • 데이터를 정의하는 쿼리들.

생성(Create)

  • CREATE DATABASE [테이블 또는 데이터베이스 이름] 을 통해 테이블을 생성할 수 있다.

CREATE 예제 - 데이터베이스

순서대로

SHOW DATABASES;
CREATE DATABASE test;
SHOW DATABASES;

를 실행한 결과이다.
(SHOW DATABASES는 데이터베이스를 조회하는 쿼리이다)


데이터베이스가 잘 생성된 것을 볼 수 있다.

만들어진 데이터베이스는 USE [데이터베이스 이름]을 통해 사용할 수 있다.

CREATE 예제 - 테이블

기본적으로 테이블은 아래와 같은 형식으로 만든다.

CREATE TABLE students(
id SMALLINT PRIMARY KEY,
name VARCHAR(10),
sex VARCHAR(6)
);

이를 위해서는 데이터의 자료형을 알아둘 필요가 있다.

출처 : 시크한 공돌이의 IT 블로그

적절한 자료형을 선택해서 메모리를 최소화하고 테이블을 만들어주면 된다.

그 후

SHOW TABLES;
DESC students;

명령을 차례대로 입력하면 다음처럼 테이블이 생성된 것과 그 세부정보를 알 수 있다.

변경(Alter)

ALTER와 RENAME은 테이블을 변경하는 명령어이다.
ALTER는 테이블에 열을 추가하거나 열의 속성을 변경할 수 있다.

ALTER 예제

열 추가(ADD)

students 테이블에 나이 컬럼을 추가하고 싶다고 하자.

ALTER TABLE test ADD age INT;

아래 사진에서 int형 age 열이 추가되었다는 것을 알 수 있다.

열 변경(MODIFY)

생각보다 학생 수가 너무 많아, id가 smallint 범위로는 부족할 것 같다고 하자.
그렇다면 다음 쿼리를 통해 id 열의 속성을 바꿀 수 있다.

ALTER TABLE students MODIFY COLUMN id INT;

열의 자료형이 int로 바뀐 것을 볼 수 있다.

열 이름 변경(CHANGE)

학번을 나타내는 id 열이 비직관적이라 student_id로 변경을 한다고 하자.
아래와 같은 쿼리로 열의 이름을 변경할 수 있다.

ALTER TABLE students CHANGE id student_id INT;

테이블 이름 변경(RENAME)

테이블의 이름을 students에서 student_data로 바꿔보자.

ALTER TABLE students RENAME student_data;


성공적으로 이름이 변경되었다.

삭제(Truncate, Drop)

TRUNCATE는 테이블 비우기, DROP은 테이블 삭제에 해당한다.

TRUNCATE 예제

아직 테이블에 삽입한 데이터가 없으므로 유의미한 동작을 하지는 않겠지만 코드는 아래와 같다.

TRUNCATE TABLE student_data;

DROP 예제

DROP TABLE student_data;

테이블이 잘 삭제된 것을 볼 수 있다.

0개의 댓글