Tiny Bunny [SQL] 데이터 정의어_12 - 솜님의 블로그
솜님의 블로그
작성일
2024. 8. 1. 15:44
작성자
겨울솜사탕

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

데이터 정의어를 사용 시 유의점

데이터 정의어는 명령어를 수행하자마자 데이터베이스에 수행한 내용이 바로 반영된다.

따라서 이전에 사용한 데이터 조작어는 영구적으로 데이터베이스에 반영된다.

(ROLLBACK 불가) 따라서 사용시 주의를 기울여야 한다.

 

 

테이블을 생성하는 CREATE

CREATE는 오라클 데이터베이스 객체를 생성할 때 사용하는 명령어이다.

CREATE TABLE 소유 계정.테이블 이름(
     열1 이름 열1 자료형,
     열2 이름 열2 자료형,
     ...
     열N 이름 열N 자료형
);

이때 소유 계정 이름은 생략 가능하다.

🍀테이블 이름 생성 규칙

1. 테이블 이름은 문자로 시작해야 한다. (한글도 가능, 숫자 시작 불가)
2. 테이블 이름은 30byte 이하여야 한다. (==영어는 30글자, 한글은 15글자까지 가능)
3. 같은 사용자 소유의 테이블 이름은 중복 불가
4. 테이블 이름은 영문자(한글 가능), 숫자(0-9)와 특수문자 $, #, _ 사용할 수 있음
5. SQL 키워드는 테이블 이름으로 사용 불가 (ex. SELECT, FROM 등)

 

▼열 이름 생성 규칙

 

 

CREATE 명령어 사용하여 EMP_DOL 테이블 생성하기

CREATE TABLE EMP_DOL(
	EMPNO NUMBER(4),
    ENMAE VARCHAR2(10),
    JOB VARCHAR2(9),
    MGR NUMBER(4),
    HIREDATE DATE,
    SAL NUMBER(7,2),
    COMM NUMBER(7,2),
    DEPTNO NUMBER(2)
);

NUMBER(4)와 같이 자료형 뒤 괄호()에는 열에 저장할 데이터 길이를 지정할 수 있다.

*NUMBER(7,2) : 소수점 이하 두 자리 숫자를 포함한 7자리 숫자를 저장할 수 있다는 뜻 (==자연수는 5자리까지)

 

 

 

테이블 변경 ALTER

이미 생성된 오라클 데이터베이스 객체를 변경할 때 사용한다.

- 테이블에 새 열 추가/삭제, 열의 자료형 또는 길이 변경 등 구조 변경 관련 기능 수행

 

테이블 열 추가 ADD

ALTER TABLE EMP_ALTER
	ADD HP VARCHAR2(20);

ALTER TABLE 명령어와 ADD 키워드 사용하여 추가할 열 이름과 자료형을 명시하면 된다.

 

열 이름 변경 RENAME

ALTER TABLE EMP_ALTER
	RENAME COLUMN HP TO TEL;

HP 열 이름을 TEL 로 변경한다 라는 뜻.

 

열의 자료형 변경 MODIFY

ALTER TABLE EMP_ALTER
MODIFY EMPNO NUMBER(5);

기존 EMPNO 열의 자료형은 NUMBER(4)로 지정되어 있는 상태.

만약 사원들이 많아져서 4자리 이상의 사원번호가 필요한 경우 >> MODIFY 키워드를 사용

 

특정 열 삭제 DROP

ALTER TABLE EMP_ALTER
DROP COLUMN TEL;

DROP를 사용하여 TEL 열을 삭제하였다.

열을 삭제하면 해당 열의 데이터도 함께 삭제되므로 신중하게 사용이 필요하다.

 

 

테이블 이름 변경 RENAME

RENAME EMP_ALTER TO EMP_RENAME;

EMP_ALTER 테이블 이름을 EMP_RENAME으로 변경했다.

변경 후에는 기존 EMP_ALTER 이름 사용 불가!

 

 

테이블의 데이터 삭제 TRUNCATE

TRUNCATE 명령어는 특정 테이블의 모든 데이터를 삭제한다.

데이터만 삭제하므로 구조에는 영향 x

TRUNCATE TABLE EMP_RENAME;

테이블 삭제는 WHERE절을 명시하지 않은 DELETE문의 수행으로도 가능.

하지만 TRUNCATE는 데이터 정의어라서 ROLLBACK이 되지 않음(삭제 이후 복구 불가)

 

 

테이블 삭제 DROP

DROP 명령어는 데이터베이스 객체를 삭제하는 데 사용.

따라서 테이블에 저장된 데이터도 모두 삭제됨.

DROP TABLE EMP_RENAME;