DDL/DML/DCL

이진아·2020년 3월 10일
0
post-custom-banner

1. DDL

(Data Define Language) 데이터 정의어는 db를 구축하거나 수정할 목적으로 사용하는 언어다. 데이터베이스 관리자나 데이터베이스 설계자가 사용한다.

1) CREATE

[ 예시1 ] DEPARTMENT 테이블 생성

CREATE TABLE DEPARTMENT
( 
	DEPT_NO NUMBER(3) NOT NULL
	,DEPT_NAME VARCHAR2(20)
	,DEPT_LOC VARCHAR2(20)
	,CONSTRAINT DEPT_NO_PK PRIMARY KEY(DEPT_NO)
)

[ 예시2 ] EMPLOYEE 테이블 생성

CREATE TABLE EMPLOYEE
( 
	EMP_ID NUMBER(5) NOT NULL
	,EMP_NAME VARCHAR2(20)
	,EMP_PH VARCHAR2(20)
	,EMP_DEPT_NAME VARCHAR2(20)
 	,FORIENKEY(EMP_DEPT_NAME) PREFERENCES DEPARTMENT(DEPT_NAME)
  	,CONSTRAINT EMP_ID_PK PRIMARY KEY(EMP_ID)
)

[ 예시3 ] 기존 테이블 정보를 이용해 새로운 테이블 정의

CREATE TABLE 신규테이블명 AS SELECT 속성명... FROM 기존테이블명

2) ALTER

[ 예시1 ] DEPARTMENT 테이블에 DEPT_HEAD 열 추가

ALTER TABLE DEPARTMENT ADD DEPT_HEAD VARCHAR2(10)

[ 예시2 ] DEPARTMENT 테이블의 DEPT_HEAD default 값 변경

ALTER TABLE DEPARTMENT ALTER DEPT_HEAD VARCHAR2(20) NOT NULL

[ 예시3 ] DEPARTMENT 테이블에 DEPT_HEAD 열 삭제

ALTER TABLE DEPARTMENT DROP COLUMN DEPT_HEAD

3) DROP

[ 예시 ] EMPLOYEE 테이블 삭제

DROP TABLE EMPLOYEE

2. DML

(Data Manipulation Language) 데이터 조작어는 데이터베이스 사용자가 응용 프로그램이나 질의어를 통해 저장된 데이터를 실질적으로 관리하는 언어다.

1) SELECT

: 테이블에서 튜플을 검색한다.

[ 예시 ] DEPARTMENT 테이블에서 DEPT_NO이 0200인 DEPT_NAME 검색

SELECT DEPT_NAME FROM DEPARTMENT
WHERE DEPT_NO = '0200'

2) INSERT

: 삽입문, 새로운 튜플을 삽입한다.

[ 예시1 ] DEPARTMENT 테이블에 4번째 행 삽입

INSERT INTO DEPARTMENT VALUES
(0400,총무부,서울)

[ 예시2 ] 다른 테이블에 있는 특정 튜플들을 테이블에 삽입

INSERT INTO 편집부원(이름,생일,주소,기본급)
SELECT 이름,생일,주소,기본급
FROM 사원
WHERE 부서 = '편집'

3) DELETE

: 특정 튜플을 삭제할 때 사용한다.

[ 예시 ] DEPARTMENT 테이블의 DEPT_NO이 0400인 튜플 삭제

DELETE FROM DEPARTMENT 
WHERE DEPT_NO = '0400'

4) UPDATE

: 특정 튜플의 내용을 변경할 때 사용한다.

[ 예시 ] DEPARTMENT 테이블의 DEPT_NO이 0300인 튜플의 DEPT_LOC를 부산으로 변경

UPDATE DEPARTMENT
SET DEPT_LOC = '부산'
WHERE DEPT_NO = '0300'

3. DCL

(Data Control Language) 데이터 제어어는 데이터베이스 관리자(DBA)가 데이터 관리를 목적으로 사용한다.

[ 트랜잭션 ]

  • 데이터베이스에서 하나의 논리적 기능을 수행하기 위한 일련의 연산 집합
  • 작업의 단위, 작업의 논리적 단위
  • 하나의 트랜잭션은 COMMIT되거나 ROLLBAK되어야 한다.

1) COMMIT

: 트랜잭션이 성공적으로 끝나면 데이터베이스가 새로운 일관성 상태를 가지기 위해 변경된 내용을 데이터베이스에 반영해야 한다.

2) ROLLBACK

: 아직 COMMIT되지 않은 변경된 모든 내용들을 취소하고 데이터베이스를 이전 상태로 되돌리는 명령어다.

3) SAVEPOINT

[ 예시 ]

SAVEPOINT S1
DELETE*FROM DEPARTMENT WHERE DEPT_NO = '0100'
SAVEPOINT S2
DELETE*FROM DEPARTMENT WHERE DEPT_NO = '0200'
ROLLBACK TO S2
ROLLBACK TO S1
post-custom-banner

0개의 댓글