DDL(CREATE, ALTER, DROP)에 대해 알아보자!

hoonssac·2024년 4월 1일

Database

목록 보기
4/5
post-thumbnail

안녕하세요.
오늘은 데이터가 저장되는 틀인 테이블을 생성, 수정, 삭제하는 방법을 예제를 통해 알아보겠습니다!


CREATE - 테이블 생성

테이블 생성

먼저 테이블을 생성하는 CREATE부터 보겠습니다.
기본적인 문법은 이러합니다.

CREATE TABLE 테이블명( 
          필드명1 타입 [NULL | NOT NULL][DEFAULT ][AUTO_INCREMENT], 
          필드명2 타입 [NULL | NOT NULL][DEFAULT ][AUTO_INCREMENT], 
          필드명3 타입 [NULL | NOT NULL][DEFAULT ][AUTO_INCREMENT], 
          ........... 
          PRIMARY KEY(필드명) 
          );
  • 데이터 형 외에도 속성값의 빈 값 허용 여부는 NULL 또는 NOT NULL로 설정
  • DEFAULT 키워드와 함께 입력하지 않았을 때의 초기값을 지정
  • 입력하지 않고 자동으로 1씩 증가하는 번호를 위한 AUTO_INCREMENT

예제

❗EMPLOYEE와 같은 구조를 가진 EMPLOYEE2 테이블을 생성하시오.

CREATE TABLE EMPLOYEE2(   
           empno      INTEGER NOT NULL PRIMARY KEY,  
           name       VARCHAR(10),   
           job        VARCHAR(9),   
           boss       INTEGER,   
           hiredate   VARCHAR(12),   
           salary     DECIMAL(7, 2),   
           comm       DECIMAL(7, 2),   
          deptno     INTEGER);

주어진 구조대로 이렇게 테이블을 만들어 주었습니다.

테이블을 조회해보면 employee2 테이블이 잘 생성된 것을 확인할 수 있습니다.

ALTER - 테이블 수정

컬럼 추가, 삭제

테이블에 컬럼을 추가, 삭제할 수 있는 ALTER문의 형식은 이러합니다.

alter table 테이블명
          add  필드명 타입 [NULL | NOT NULL][DEFAULT ][AUTO_INCREMENT];

alter table 테이블명
         drop  필드명;

그럼 예제를 통해 ALTER문의 기능을 살펴봅시다🙂

예제1 - 컬럼 추가

❗EMPLOYEE2 테이블에 생일(birthdate)칼럼을 varchar(12)형식으로 추가하시오.

alter table EMPLOYEE2

add birthdate varchar(12);

이렇게 입력을 하고, 테이블을 열어보니 birthdate컬럼이 맨 아래에 추가가 된 것을 확인할 수 있습니다.

예제2 - 컬럼 삭제

❗EMPLOYEE2 테이블의 생일(birthdate)컬럼을 삭제하시오.

alter table EMPLOYEE2

drop birthdate;

해당 명령어를 입력해 주고

다시 태이블 조회를 해 보면 birthdate컬럼이 삭제된 것을 볼 수 있습니다.

컬럼 수정

이번에는 ALTER문을 사용하여 컬럼의 이름을 수정하는 방법을 알아보겠습니다.
기본 문법은 이러합니다!

alter table  테이블명
     change  필드명  새필드명 타입 [NULL | NOT NULL][DEFAULT ][AUTO_INCREMENT];
  • change 키워드를 사용하고 칼럼을 새롭게 재정의 (이름부터 속성까지 전부)

예제

❗EMPLOYEE2 테이블의 부서번호(deptno)를 dept_no로 수정하시오.

alter table EMPLOYEE2

change deptno dept_no int(11);

이렇게 입력을 해주고, 테이블 조회를 해보면

기존의 deptno 컬럼이 dept_no로 변경된 것을 확인할 수 있습니다.

테이블 이름 변경

rename 키워드를 사용하면 테이블의 이름 변경도 가능합니다.

alter table  테이블명 rename 변경이름

예제

❗EMPLOYEE2 테이블의 이름을 EMPLOYEE3로 변경하시오.

alter table EMPLOYEE2

rename EMPLOYEE3;

이렇게 입력해주고 테이블 목록을 조회해보면, 기존의 employee2테이블의 이름이 employee3으로 바뀐 것을 확인할 수 있습니다.

테이블 삭제

drop 키워드를 사용하면 테이블을 삭제할 수도 있습니다.

drop table 테이블이름;

참고로, 제약 조건이 있을 경우에는 drop table 명령으로도 테이블이 삭제되지 않을 수 있습니다.
그럴 경우는 테이블을 생성한 반대 순서로 삭제를 해야합니다.


📚Reference
boostcourse-웹 백엔드

profile
훈싹의 개발여행

0개의 댓글