DML (Data Munipulation Language)
- 데이터 조작 언어로 테이블의 값을 삽입, 수정, 삭제하는 구문
1) 삽입 (INSERT)
: 테이블에 새로운 행을 추가하여 테이블의 행 개수를 증가시키는 구문
2) 수정 (UPDATE)
: 테이블에 기록된 컬럼 값을 수정하는 구문 (테이블의 전체 행 개수는 변화X)
3) 삭제 (DELETE)
: 테이블의 행을 삭제하는 구문으로 테이블의 행 개수가 줄어듬
(원하는 데이터만 삭제 가능, 되돌리는 것 가능)
4) TRUNCATE
: 테이블 전체 행 삭제시 사용하며 DELETE보다 속도가 빠르다
(원하는 데이터 지정 불가, 되돌리기 불가)
DDL (Data Definition Language)
- 데이터 정의 언어로 객체(OBJECT)를 만들고, 수정하고, 삭제하는 구문
1) CREATE
: 테이블이나 인덱스, 뷰 등 데이터베이스 객체를 생성하는 구문
2) ALTER
: 테이블에 정의된 내용을 수정할 때 사용하는 데이터 정의어
컬럼의 추가/삭제, 제약조건의 추가/삭제, 컬럼의 자료형 변경, DEFAULT값 변경, 테이블 명/컬럼 명/제약조건 명 변경 등을 할 수 있음
(추가/삭제/변경은 ALTER로 다 한다고 생각하면 된다)
3) DROP
: 데이터베이스 객체를 삭제하는 구문 (되돌리기 불가)
제약조건(CONSTRAINT)이란?
- 사용자가 원하는 조건의 데이터만 유지하기 위해서 특정 컬럼에 설정하는 제약
데이터 무결성을 지키기 위해 제한된 조건
입력 데이터에 문제가 없는지에 대한 검사와 데이터 수정/삭제 가능 여부 검사1) NOT NULL
: 해당 컬럼에 반드시 값이 기록되어야 하는 경우 사용 (특정 컬럼에 NULL값 불가)
2) UNIQUE
: 컬럼 입력 값에 대해 중복을 제한하는 제약조건 (컬럼 레벨과 테이블 레벨에 설정 가능)
3) PRIMARY KEY
: 테이블에서 한 행의 정보를 구분하기 위한 고유 식별자 역할
NOT NULL의 의미와 UNIQUE의 의미를 모두 가지고 있다
한 테이블당 하나만 설정 가능 (컬럼 레벨과 테이블 레벨에 설정 가능)4) FOREIGN KEY
: 참조 무결성을 위한 제약조건으로
참조된 다른 테이블이 제공한 값만 사용하도록 제한을 거는 것
참조할 테이블의 참조할 컬럼명의 생략할 경우
PRIMARY KEY로 설정된 컬럼이 자동으로 참조할 컬럼이 된다5) CHECK
: 해당 컬럼에 입력 되거나 수정되는 값을 체크하여 설정된 값 이외의 값이면 에러 발생
ex) CHECK(GENDER IN('남','여'))
TCL (Transaction Control Language)
- 트랜잭션 관리 처리 언어
- 트랜잭션이란?
: 한꺼번에 수행되어야 할 최소의 작업 단위 (논리적 작업 단위)
하나의 트랜잭션으로 이루어진 작업들은 반드시 한꺼번에 완료가 되어야 하며,
그렇지 않은 경우에는 한꺼번에 취소 되어야 함1) COMMIT
: 트랜잭션 작업이 정상 완료 되면 변경 내용을 영구히 저장
(모든 SAVEPOINT 삭제)2) ROLLBACK
: 트랜잭션 작업을 모두 취소하고 최근 COMMIT 시점으로 이동
3) SAVEPOINT (SAVEPOINT명)
: 현재 트랜잭션 작업 시점에 이름을 지정함
하나의 트랜잭션 안에서 구역을 나눌 수 있음4) ROLLBACK TO (SAVEPOINT명)
: 트랜잭션 작업을 취소하고 SAVEPOINT 시점으로 이동
DCL (Data Control Language)
- 데이터베이스에 대한 보안, 무결성, 복구 등 DBMS를 제어하기 위한 언어
GRANT (유저 권한 생성) / REVOKE (유저 권한 삭제)
: 사용자의 권한이나, 관리자 설정 등을 처리
COMMIT(실행), ROLLBACK(복구) 은 트랜잭션에 관련된 언어로
TCL로 구분하기도 함