클라이언트/ 서버/ 엔지니어 " 게임 개발자"를 향한 매일의 공부일지

데이터 정의어 1 - 정의어와CREAT, ALTER, RENAME, TRUNCATE, DROP 명령어 본문

알고리즘 및 자료 관리/데이터베이스

데이터 정의어 1 - 정의어와CREAT, ALTER, RENAME, TRUNCATE, DROP 명령어

huenuri 2024. 8. 23. 16:21

아침 시간이 아직 2시간 정도 남아있다. 이 시간 동안 데이터 정의어 학습을 진행해보려고 한다. 지난번에 DDL 수업을 들고 학습일지를 썼는지 아닌지 의문이 들어서 일지를 확인해보았다.
보니까 수업 중에 간단하게 설명을 하셔서 공부를 안했나 생각했었다. 이 부분은 테이블을 생성하는 단원인 DML에 함께 기록을 했다. 이제 책으로만 학습을 진행하면 될 것 같다. 수업으로만은 충분하지 않고 개념을 잘 정립하기 위해서는 책으로 공부를 하는 게 좋을 것이다.

 

학습 내용

  1. 객체를 생성, 변경, 삭제하는 데이터 정의어
  2. 테이블을 생성하는 CREATE
  3. 테이블을 변경하는 ALTER
  4. 테이블 이름을 변경하는 RENAME
  5. 테이블의 데이터를 삭제하는 TRUNCATE
  6. 테이블을 삭제하는 DROP

학습 시간

11시 반 ~ 12시 45분 <1시간 15분 소요>


 

 

 

1. 객체를 생성, 변경, 삭제하는 데이터 정의어

데이터 정의어(DDL: Data Definition Language)는 데이터베이스를 보관하고 관리하기 위해 제공되는 여러 객체의 생성·변경·삭제 관련 기능을 수행한다.

 

데이터 정의어를 사용할 때 유의점

정의어는 조작어와 달리 명령어를 수행하자마자 데이터베이스에 수행한 내용이 바로 반영되는 특성이 있다. 즉 데이터 정의어를 실행하면 자동으로 COMMIT이 되기 때문에 이전에 사용한 데이터 조작어는 영구히 DB에 저장된다. 이는 ROLLBACK을 통한 실행 취소가 불가하다는 것을 의미하기 때문에 사용할 때 주의를 기울여야 한다.


 

2. 테이블을 생성하는 CREATE

이 명령어를 수행하면 EMP 테이블을 생성하겠다는 의미이다. 이때 소유 계정 이름은 생략할 수 있다.

 

자료형을 각각 정의하여 새 테이블 생성하기

CREATE 명령어를 사용하여 테이블을 생성해본다. NUMBER(4)와 같이 자료형 뒤 괄호에는 열에 저장할 데이터 길이를 지정할 수 있다.

모든 열의 각 자료형을 정의하여 테이블 생성하기

SELECT를 하지 않아서 그런지 맨 처음에 계정을 열었을 때처럼 표시되었다. 이러한 방식은 열 구조를 확인하기 위한 것이다.

 

기존 테이블 열 구조와 테이블을 복사하여 새 테이블 생성하기

서브 쿼리를 활용하여 테이블을 사용하는 방법을 더 많이 사용한다. 서브 쿼리를 사용할 때는 CREATE문에 AS 키워드를 함께 쓴다.

 

다른 테이블을 복사하여 테이블 생성하기

 

 

DEPT_DDL 테이블 전체 조회하기

 

기존 테이블 열 구조와 일부 데이터만 복사하여 새 테이블 생성하기

DEPTNO 열을 30으로 지정한 후 붙여넣었다.


 

 

 

3. 테이블을 변경하는 ALTER

ALTER 명령어는 이미 생성된 오라클 DB 객체를 변경할 때 사용한다. 테이블에 새 열을 추가 또는 삭제하거나 열의 자료형 또는 길이를 변경하는 등 테이블 구조 변경과 관련된 기능을 수행한다.

EMP_ALTER 테이블 생성하기

 

 

테이블에 열 추가하는 ADD

ALTER 명령어로 HP 열 추가하기

HP 열을 추가해주었다.

 

 

열 이름을 변경하는 RENAME

HP 열 이름을 TEL로 변경하기

열 이름이 HP에서 TEL로 변경되었다.

 

열의 자료형을 변경하는 MODIFY

EMPNO 열의 자료형은 NUMBER(4)로 지정되어 있다. 만약 사원이 많아져 4자리 이상의 사원 번호가 필요해질 때 EMPNO 열의 자릿수를 늘려야 한다.

 

EMPNO 열 길이 변경하기

길이가 4에서 5로 변경되었다.

 

특정 열을 삭제할 때 사용하는 DROP

TEL 열 삭제하기

마지막에 있었던 TEL 열이 삭제되었다.


 

 

4. 테이블의 이름을 변경하는 RENAME

앞서 생성한 EMP_ALTER 테이블 이름을 EMP_RENAME으로 변경해보겠다.

 

테이블 이름 변경하기

 

 

바꾸기 전 이름으로 테이블 구성 살펴보기

변경 전 이름을 찾으면 존재하지 않는다는 문구가 뜬다.

 

 

변경된 테이블 이름으로 조회하기

변경된 이름으로 조회할 수 있다.


 

 

 

5. 테이블의 데이터를 삭제하는 TRUNCATE

이 명령어는 특정 테이블의 모든 데이터를 삭제한다. 데이터만 삭제하므로 테이블 구조에는 영향을 주지 않는다.

EMP_RENAME 테이블의 전체 데이터 삭제하기

잘렸다는 문구가 뜨고 조회를 해보면 아무것도 나오지 않음을 볼 수 있다.


 

 

6. 테이블를 삭제하는 DROP

TRUNCATE와 달리 DROP은 테이블에 저장된 데이터도 모두 삭제된다.

EMP_RENAME 테이블 삭제하기

 

EMP_RENAME 테이블 구성 살펴보기


 

 

학습을 마치고

DDL 뒷부분 수업 예제는 넣지 않았는데, 그건 몇 장 뒤에 학습할 제약 조건과 함께 묶여 있었다. 오늘 이 부분도 학습하게 될텐데 그때 함께 나머지 부분을 학습해 보려고 한다.

이렇게 해서 테이블을 만들고 수정, 삭제하는 명령어에 대해서 학습해보았다. DML와 비슷한 부분이 많았지만 아마도 사용 용도는 다른 것 같다. DDL은 말 그대로 정의를 하며 자료형과 함께 사용된다. DML은 원래 있는 테이블을 가지고 작업을 할 때 쓰는 것 같은데, 지금은 확실히는 모르겠다.
어쨌든 이제 연습문제를 풀어보며 개념을 더욱 다져보기로 하자.