데이터베이스를 구축, 활용, 관리를 위해 DB 관리 시스템에 부탁할 때 사용하는 언어
데이터 언어는 사용 목적에 따라 3가지로 구분된다.
독립적인 언어가 아니라 하나의 데이터 언어를 기능에 따라 구분한 것이다.
DDL을 통해 스키마 정의 -> 스키마에 따라 실제 인스턴스 저장 -> DML로 사용자가 실제 인스턴스 활용
관계 데이터베이스를 위한 표준 질의어로 많이 사용되는 언어
데이터베이스 스키마를 정의하거나, 기존 스키마의 정의를 삭제하거나 수정하기 위해 사용하는 데이터 언어
새로 만들 DB의 스키마 설명 (CREATE)
이미 정의된 스키마의 구조나 제약조건 등을 삭제 또는 수정 (DROP, ALTER)
DB 사전에 생성, 삭제, 수정된 스키마가 저장된다.
CREATE
DB 개체 생성
create table instructor(
ID char(5) //무조건 5자
name varchar(20) //var는 변경 가능함을 의미
dept_name varchar(20) //최대 20자까지
salary numeric(8,2) //유효숫자 8개, 소수점 2째 자리까지
)
DROP
: 테이블 혹은 DB를 삭제
drop table instructor
ALTER
: 테이블 수정
alter table instructor add column salary numeric(8, 2)
alter table instructor drop column salary
설명 방식에 따라 절자척 DML과 비절차적 DML로 나뉜다.
절차적 DML
어떤 데이터를 원하는지, 해당 데이터를 얻으려면 어떻게 처리해야 하는지 구체적으로 설명
비절차적 DML
어떤 데이터를 원하는지만 설명
어떻게 처리하는지는 DBMS에 맡기고 선언만 한다 (선언적 언어라고도 함)
SELECT
데이터 조회
select ID, name, salary/12 as monthly_salary
from instructor
INSERT
데이터 삽입
insert into course
values ('CS-437', 'Databse Systems', 'Comp.Sci.', 4);
UPDATE
데이터 수정
update instructor
set salary = salary * 1.05
where salary < 70000;
DELETE
데이터 삭제
delete from instructor
where dept_name='Finance';
DB에 저장된 데이터를 여러 사용자가 사용해도 무결성, 일관성을 유지하며 공유할 수 있도록 내부 규칙을 정의하는 데 사용하는 데이터 언어
DB 관리를 위해 DCL로 DBMS에 규칙을 설명하면 DBMS가 DB를 제어하고 보호한다
COMMIT, ROLLBACK, GRANT, REVOKE
DCL을 이용해 다음과 같은 DBMS의 특성을 보장한다
COMMIT
트랜잭션 작업이 정상적으로 완료되었음을 관리자에게 알림
ROLLBACK
트랜잭션 작업이 비정상적으로 종료되었을 때 원래 상태로 되돌림
GRANT
사용자에게 특정 작업에 대한 수행 권한 부여
REVOKE
사용자에게 특정 작업에 대한 수행 권한 박탈 및 회수