* 객체 생성, 변경, 삭제 데이터 정의어
- 데이터 정의어 사용시 유의점
: 명령어 수행하자마자 데이터베이스에 수행한 내용이 바로 반영됨 (자동 커밋)
- DDL(Data Definition Language) 종류
- CREATE
- ALTER
- DROP
* CREATE - 테이블 생성
- 자료형을 각각정의하여 새 테이블 생성
: SELECT문 사용
<예시>
- 테이블 생성
CREATE TABLE EMP_DDL(
EMPNO NUMBER(4),
ENAME VARCHAR2(10),
JOB VARCHAR2(9),
MGR NUMBER(4),
HIREDATE DATE,
SAL NUMBER(7,2),
COMM NUMBER(7,2),
DEPTNO NUMBER(2)
);
DESC EMP_DDL;
- 다른 테이블 복사해서 테이블 생성
CREATE TABLE DEPT_DDL
AS SELECT * FROM DEPT;
DESC DEPT_DDL;
- 기존 테이블 열 구조, 데이터 복사해서 새 테이블 생성
: SELECT문에WHERE절 사용
<예시>
- 다른 테이블 일부 복사해서 테이블 생성
CREATE TABLE EMP_DDL_30
AS SELECT * FROM EMP WHERE DEPTNO = 30;
SELECT * FROM EMP_DDL_30;
- 기존 테이블의 열 구조만 복사해서 새 테이블 생성
: 조건식이 항상 fase인WHERE절 사용
<예시>
- 다른 테이블 복사해서 테이블 생성
CREATE TABLE EMPDEPT_DDL
AS SELECT E.EMPNO, E.ENAME, E.JOB, E.MGR, E.HIREDATE
, E.SAL, E.COMM, D.DEPTNO, D.DNAME, D.LOC
FROM EMP E, DEPT D
WHERE 1 <> 1; --항상 false
SELECT * FROM EMPDEPT_DDL;
* ALTER - 테이블 변경
- 기본 형식
ALTER TABLE 테이블 이름
- 테이블 생성
CREATE TABLE EMP_ALTER
AS SELECT * FROM EMP;
- 테이블에 열 추가(ADD)
<예시>
ALTER TABLE EMP_ALTER
ADD HP VARCHAR2(20);
=> 마지막에 열 추가됨
- 열 이름 변경(RENAME)
- 기본형식
RENAME COLUMN 수정 전 열 이름 TO 수정 후 열 이름
- 변경 후 본래의 테이블 이름은 사용 불가
<예시>
ALTER TABLE EMP_ALTER
RENAME COLUMN HP TO TEL;
=> 마지막 열 HP에서 TEL로 바뀜
- 열의 자료형 변경(MODIFY)
- 원래 자료형의 사이즈보다 작은 사이즈로는 변경 불가능
<예시>
- ALTER로 EMPNO 열 길이 변경
ALTER TABLE EMP_ALTER
MODIFY EMPNO NUMBER(5);
=> EMPNO가 NUMBER(4) -> NUMBER(5)로 변경됨
- 특정 열 삭제(DROP)
<예시>
ALTER TABLE EMP_ALTER
DROP COLUMN TEL;
=> TEL 열 삭제됨
* RENAME - 테이블 이름 변경
RENAME EMP_ALTER TO EMP_RENAME;
=> 테이블 명이 EMP_ALTERD에서 EMP_RENAME으로 변경됨
* TRUNCATE - 테이블 데이터 삭제
: 테이블 구조는 그대로 테이터만 삭제
- WHERE절을 사용하지 않은 DELETE문
- 테이블의 전체 데이터를 삭제
- DDL문이므로 ROLLBACK 불가(삭제 이후 복구 불가)
<예시>
TRUNCATE TABLE EMP_RENAME;
* DROP - 테이블 삭제
: 테이블과 저장된 데이터 모두 삭제
<예시>
DROP TABLE EMP_RENAME;
=> EMP_RENAME 테이블 삭제됨
'개발 공부 > Oracle' 카테고리의 다른 글
[Oracle] - 제약조건 (0) | 2023.12.11 |
---|---|
[Oracle] - 객체 종류 (0) | 2023.12.08 |
[Oracle] - 트랜잭션 제어와 세션 (0) | 2023.12.07 |
[Oracle] - 데이터 조작어 (0) | 2023.12.06 |
[Oracle] - 저장 서브프로그램 (0) | 2023.12.06 |