반응형

 

DDL (Data Defination Language)

= 데이터 정의어
- 데이터를 저장하는 구조를 정의, 수정, 제거하는 기능을 처리하는 명령어 


자동COMMIT;
CREATE : 테이블, 계정, 뷰, 함수, 프로시저... 등을 생성
ALTER: 테이블..등을 추가ADD, 변경MODIFY, 삭제DROP 변경/수정
DROP : 테이블..등을 삭제
TRUNCATE: 테이블의 구조만 제외하고 나머지를 영구삭제
(해당 테이블 내 데이터 전체삭제, 자동확정됨)
RENAME : 이름변경

 

CREATE - DDL

CREATE문 : 테이블, 계정, 뷰, 함수, 프로시저... 등을 생성


--[테이블생성문 형식]
CREATE TABLE 테이블명 (
컬럼명 자료형 [제약조건1 제약조건2 ...] ,
...
컬럼명 자료형 [제약조건1 제약조건2 ...] 
) ;
--사원번호, 사원명, 연봉 3개의 칼럼으로 구성된 EMP01테이블 생성
CREATE TABLE EMP01 (
    EMPNO NUMBER(4),
    ENAME VARCHAR2(20),
    SAL NUMBER(7,2)
) ;


CREATE TABLE DEPT02 (
    DEPTNO NUMBER(2), --숫자, 정수2자리만
    DNAME VARCHAR2(14), --가변형문자, 14바이트까지만
    LOC VARCHAR2(13) --가변형문자, 13바이트까지만
) ;
--DEPT테이블과 동일한 구조의 테이블을 DEPT01로 생성
CREATE TABLE DEPT01 AS SELECT * FROM DEPT WHERE 1=0;
CREATE USER IDENTIFIED PW; CREATE USER IDENTIFIED PW;

ALTER  - ADD, MODIFY, DROP, RENAME

테이블이나 사용자 계정 등의 정의(구조)를 변경하는 명령

테이블 컬럼을 추가(ADD)하는 명령 형식
ALTER TABLE 테이블명
ADD (추가컬럼명 자료형,  ..., 추가컬럼명N 자료형) ;

--컬럼 하나만 추가할 경우
ADD 추가컬럼명 자료형;
--EMP테이블을 확인하여 EMP01에 없는 칼럼을 모두 추가하세요. 
ALTER TABLE EMP01
ADD (JOB VARCHAR2(9 BYTE), MGR NUMBER(4,0), HIREDATE DATE,  SAL NUMBER(7,2), DEPTNO NUMBER(2,0));

--DEPT01테이블에서 설립일자 칼럼(CREDATE)을 날짜형으로 추가
ALTER TABLE DEPT01
ADD CREDATE DATE;
테이블의 컬럼 정보를 수정(MODIFY)하는 명령 형식
ALTER TABLE 테이블명
MODIFY (기존컬럼명 자료형, ..., 기존컬럼명N 자료형) ;

--컬럼 하나만 변경할 경우
MODIFY 변경할컬럼명 자료형;

--다른 자료형 변경시에는 컬럼내에 값이 없어야 한다.
변경원할 시 null로 UPDATE후 MODIFY.

--문자형 칼럼의 사이즈를 변경하는 조건 : 들어있는 데이터 이상의 범위내에서만 줄이거나 늘릴 수 있음.
--EMP01테이블에서 TEST칼럼의 자료형을 NUMBER(4)로 변경
ALTER TABLE EMP01
MODIFY TEST NUMBER(4);

--EMP01테이블에서 9999사번 을 2525로 변경
UPDATE EMP01
SET TEST = 2525
WHERE EMPNO = 9999;

--EMP01테이블에서 TEST칼럼의 자료형을 VARCHAR2(20)으로 변경
UPDATE EMP01
SET TEST = NULL
WHERE EMPNO = 9999;

COMMIT;

ALTER TABLE EMP01
MODIFY TEST VARCHAR2(20);
테이블의 컬럼 정보를 삭제(DROP)하는 명령 형식
ALTER TABLE 테이블명
DROP COLUMN 삭제할컬럼명 ;

--다중 컬럼 삭제
ALTER TABLE 테이블명
DROP (삭제할컬럼명, ..., 삭제할컬럼명N ) ;
--EMP01테이블에서 EMPNO, ENAME을 제외한 컬럼을 모두 삭제하세요.
ALTER TABLE EMP01
DROP (SAL, JOB);

TRUNCATE TABLE DEPT02; --테이블 내 모든 값 영구삭제
DROP TABLE DEPT01 PURGE; --테이블 영구삭제
테이블의 컬럼명 변경(RENAME)하는 명령 형식
ALTER TABLE 테이블명
RENAME COLUMN 기존 컬럼명 TO 변경할 컬럼명 ;

테이블의 이름을 변경
RENAME 기존테이블명 TO 변경할 테이블명;
--EMP01에서 TEST클럼을 TEST1로 이름을 변경하세요.
ALTER TABLE EMP01
RENAME COLUMN TEST TO TEST1;

--테이블명 변경
RENAME EMP01 TO EMP02;

 

반응형

+ Recent posts