테이블 작성, 삭제, 변경

유석현(SeokHyun Yu)·2022년 8월 15일
0

SQL

목록 보기
26/45
post-thumbnail

서론

지금까지 배워온 SELECT, INSERT, DELETE, UPDATE는 SQL 명령 중에서도 DML로 분류된다.

DML은 데이터를 조작하는 명령이다.

한편 DDL은 데이터를 정의하는 명령으로, 스키마 내의 객체를 관리할 때 사용한다.

그럼 이제부터 DDL을 사용해 스키마를 정의해보겠다.


1. 테이블 작성

DDL은 모두 같은 문법을 사용한다.

CREATE로 작성, DROP으로 삭제, ALTER로 변경할 수 있다.

뒤이어 어떤 종류의 객체를 작성, 삭제, 변경할지를 지정한다.

예를 들어 테이블을 작성한다면 CREATE TABLE, 뷰를 작성한다면 CREATE VIEW와 같이 지정하면 된다.

다음은 sample_table 테이블을 작성하는 예제이다.

CREATE TABLE sample_table(
	id INTEGER NOT NULL,
    name VARCHAR(30),
    ...
)

2. 테이블 삭제

필요 없는 테이블은 삭제할 수 있다.

이때 DROP TABLE 명령을 사용한다.

DROP TABLE 테이블명

DROP TABLE에서 지정하는 것은 테이블명 뿐이다.

이때 주의할 점은 많은 데이터베이스가 SQL 명령을 실행할 때 확인을 요구하지 않는다는 것이다.

OS의 경우 삭제 명령으로 파일을 삭제하려 하면 '정말 삭제하겠습니까?'라는 메시지가 표시된다.

하지만 SQL 명령의 경우 사용자에게 이와 같은 확인은 하지 않는다.

따라서 DROP TABLE 명령을 실행해야 할 일이 생긴다면 실수로 다른 테이블을 삭제하지 않게 매우 신중해야 한다.


DROP TABLE 명령은 데이터베이스에서 테이블을 삭제한다.

이때 테이블에 저장된 데이터도 함께 삭제된다.

한편 테이블 정의는 그대로 둔 채 데이터만 삭제할 때는 DELETE 명령을 사용한다.

이때 DELETE 명령에 WHERE 조건을 지정하지 않으면 테이블의 모든 행을 삭제할 수 있다.

하지만 DELETE 명령은 행 단위로 여러 가지 내부처리가 일어나므로 삭제할 행이 많으면 처리속도가 상당히 늦어진다.

이런 경우에는 DDL로 분류되는 TRUNCATE TABLE 명령을 사용한다.

TRUNCATE TABLE 명령은 삭제할 행을 지정할 수 없고 WHERE 구를 지정할 수도 없지만, 모든 행을 삭제해야 할 때 빠른 속도로 삭제할 수 있다.

TRUNCATE TABLE 테이블명

3. 테이블 변경

테이블을 작성해버린 뒤에도 열 구성은 얼마든지 변경할 수 있다.

이때 테이블 변경은 ALTER TABLE 명령을 통해 이루어진다.

ALTER TABLE로 할 수 있는 일은 크게 다음과 같이 두 가지로 분류할 수 있다.

  • 열 추가, 삭제, 변경
  • 제약 추가, 삭제

그럼 먼저 열 추가, 삭제, 변경에 대해 알아보자.

제약에 관해서는 다음 챕터에서 자세히 설명하겠다.


1. 열 추가

열을 추가할 때는 ADD 하부명령을 통해 실행할 수 있다.

ALTER TABLE sample_table ADD new_column INTEGER;

2. 열 속성 변경

열 속성을 변경할 경우에는 다음과 같이 MODIFY 하부명령을 실행한다.

ALTER TABLE sample_table MODIFY new_column VARCHAR(20);

3. 열 이름 변경

열 이름을 변경할 때는 CHANGE 하부명령으로 시행할 수 있다.

참고로 CHANGE는 열 이름뿐만 아니라 열 속성도 변경할 수 있다.

ALTER TABLE sample_table CHANGE new_column updated_column VARCHAR(20);

4. 열 삭제

열을 삭제할 때는 DROP 하부명령을 사용한다.

ALTER TABLE sample_table DROP updated_column;
profile
Backend Engineer

0개의 댓글