코딩하는 문과생
[SQL] Oracle, 데이터 정의어(DDL) 본문
데이터 정의어(DDL)
: 데이터를 보관하고 관리하기 위해 제공되는 여러 객체의 생성, 변경, 삭제 관련 기능 수행
실행시 자동 COMMIT되므로 ROLLBACK을 통한 실행 취소가 불가
cf) DML은 COMMIT or ROLLBACK 작업이 필요
-CREATE
CREATE TABLE EMP_DDL(
EMPNO NUMBER(4),
ENAME VARCHAR2(10),
JOB VARCHAR2(9),
MGR NUMBER(4),
...
);
--기존 테이블 열 구조와 데이터를 복사하여 새 테이블 생성
CREATE TABLE DEPT_DDL
AS SELECT * FROM DEPT;
--기존 테이블 열 구조와 일부 데이터를 복사하여 새 테이블 생성
CREATE TABLE DEPT_DDL
AS SELECT * FROM DEPT WHERE DEPTNO=30;
--기존 테이블 열 구조만 복사하여 새 테이블 생성
CREATE TABLE DEPT_DDL
AS SELECT * FROM DEPT WHERE 1<>1;
--1과 1이 다른 것을 항상 거짓이므로 데이터는 복사되지 않는다.
-ALTER
열 추가: ADD
CREATE TABLE EMP_ALTER
AS SELECT * FROM EMP;
ALTER TABLE EMP_ALTER
ADD HP VARCHAR2(20);
열 이름 변경: RENAME
ALTER TABLE EMP_ALTER
RENAME COLUMN HP TO TEL;
열 자료형 변경: MODIFY
ALTER TABLE EMP_ALTER
MODIFY EMPNO NUMBER(5);
특정 열 삭제: DROP
ALTER TABLE EMP_ALTER
DROP COLUMN TEL;
-RENAME
: 테이블 이름 변경
RENAME EMP_ALTER TO EMP_RENAME;
-TRUNCATE
: 테이블 데이터 삭제
DELETE문과 다른 점은 DDL이라는 점. 즉, ROLLBACK이 불가
TRUNCATE TABLE EMP_RENAME;
-DROP
: 데이터베이스 객체를 삭제. 즉, 테이블을 삭제한다.
DROP TABLE EMP_RENAME;
-종합 예제
--1
CREATE TABLE EMP_HW(
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_HW;
--2
ALTER TABLE EMP_HW
ADD BIGO VARCHAR2(20);
--3
ALTER TABLE EMP_HW
MODIFY BIGO VARCHAR2(30);
--4
ALTER TABLE EMP_HW
RENAME COLUMN BIGO TO REMARK;
--5
INSERT INTO EMP_HW
SELECT EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM, DEPTNO, NULL
FROM EMP;
SELECT * FROM EMP_HW;
--6
DROP TABLE EMP_HW;
'프로그래밍 > SQL' 카테고리의 다른 글
[SQL] Oracle, 제약 조건 (0) | 2020.04.01 |
---|---|
[SQL] Oracle, 객체 종류 (0) | 2020.03.31 |
[SQL] Oracle, 트랜잭션 제어와 세션 (0) | 2020.03.31 |
[SQL] Oracle, 데이터 조작어(DML) (0) | 2020.03.30 |
[SQL] Oracle, 서브쿼리 (0) | 2020.03.30 |