(Data Define Language) 데이터 정의어는 db를 구축하거나 수정할 목적으로 사용하는 언어다. 데이터베이스 관리자나 데이터베이스 설계자가 사용한다.
[ 예시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 기존테이블명
[ 예시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
[ 예시 ] EMPLOYEE 테이블 삭제
DROP TABLE EMPLOYEE
(Data Manipulation Language) 데이터 조작어는 데이터베이스 사용자가 응용 프로그램이나 질의어를 통해 저장된 데이터를 실질적으로 관리하는 언어다.
: 테이블에서 튜플을 검색한다.
[ 예시 ] DEPARTMENT 테이블에서 DEPT_NO이 0200인 DEPT_NAME 검색
SELECT DEPT_NAME FROM DEPARTMENT WHERE DEPT_NO = '0200'
: 삽입문, 새로운 튜플을 삽입한다.
[ 예시1 ] DEPARTMENT 테이블에 4번째 행 삽입
INSERT INTO DEPARTMENT VALUES (0400,총무부,서울)
[ 예시2 ] 다른 테이블에 있는 특정 튜플들을 테이블에 삽입
INSERT INTO 편집부원(이름,생일,주소,기본급) SELECT 이름,생일,주소,기본급 FROM 사원 WHERE 부서 = '편집'
: 특정 튜플을 삭제할 때 사용한다.
[ 예시 ] DEPARTMENT 테이블의 DEPT_NO이 0400인 튜플 삭제
DELETE FROM DEPARTMENT WHERE DEPT_NO = '0400'
: 특정 튜플의 내용을 변경할 때 사용한다.
[ 예시 ] DEPARTMENT 테이블의 DEPT_NO이 0300인 튜플의 DEPT_LOC를 부산으로 변경
UPDATE DEPARTMENT SET DEPT_LOC = '부산' WHERE DEPT_NO = '0300'
(Data Control Language) 데이터 제어어는 데이터베이스 관리자(DBA)가 데이터 관리를 목적으로 사용한다.
[ 트랜잭션 ]
- 데이터베이스에서 하나의 논리적 기능을 수행하기 위한 일련의 연산 집합
- 작업의 단위, 작업의 논리적 단위
- 하나의 트랜잭션은 COMMIT되거나 ROLLBAK되어야 한다.
: 트랜잭션이 성공적으로 끝나면 데이터베이스가 새로운 일관성 상태를 가지기 위해 변경된 내용을 데이터베이스에 반영해야 한다.
: 아직 COMMIT되지 않은 변경된 모든 내용들을 취소하고 데이터베이스를 이전 상태로 되돌리는 명령어다.
[ 예시 ]
SAVEPOINT S1 DELETE*FROM DEPARTMENT WHERE DEPT_NO = '0100'
SAVEPOINT S2 DELETE*FROM DEPARTMENT WHERE DEPT_NO = '0200'
ROLLBACK TO S2
ROLLBACK TO S1