DB를 구축하거나 수정할 목적으로 사용하는 언어
유형
- CREATE : SCHEMA, DOMAIN, TABLE, VIEW, INDEX 정의
- ALTER : TABLE에 대한 정의를 변경하는 데 사용
- DROP : SCHEMA, DOMAIN, TABLE, VIEW, INDEX를 삭제
CREATE
스키마를 정의하는 명령문
# 표기 형식
CREATE SCHEMA 스키마명 AUTHORIZATION 사용자_id;
도메인을 정의하는 명령문
# 표기 형식
CREATE DOMAIN 도메인명 [AS] 데이터_타입 [DEFAULT 기본값] [CONSTRAINT 제약조건명 CHECK (범위값)];
- 데이터 타입 : SQL에서 지원하는 데이터 타입
- 기본값 : 데이터를 입력하지 않있을 때 자동으로 입력되는 값
테이블을 정의하는 명령문
# 표기 형식
CREATE TABLE 테이블명 (속성명 데이터_타입 [DEFAULT 기본값][NOT NULL]), ... [, PRIMARY KEY(기본기_속성명, ...)] [, UNIQUE(대체키_속성명, ...)] [,FOREIGN KEY(외래키_속성명, ...) REFERENCES 참조테이블(기본키_속성명, ...)] [ON DELETE 옵션] [ON UPDATE 옵션] [, CONSTRAINT 제약조건명][CHECK (조건식)]);
PRIMARY KEY : 기본키로 사용할 속성 지원
UNIQUE : 대체키로 사용할 속성 지정, 중복된 값 불가
FOREIGN KEY ~ REFERENCES ~ : 외래키로 사용할 속성 지정
- ON DELETE 옵션 : 참조 테이블의 튜플이 삭제될 때 테이블에 취해야 할 사항 지정
- ON UPDATE 옵션 : 참조 테이블의 참조 속성 값이 변경될 때 기본 테이블에 취해야할 사항 지정
CONSTRAINT : 제약 조건의 이름 지정
CHECK : 속성 값에 대한 제약 조건 지정
뷰(view)를 정의하는 명령문
# 표기 형식
CREATE VIEW 뷰명[(속성명[, 속성명, ...])] AS SELECT문;
인덱스를 정의하는 명령문
# 표기 형식
CREATE [UNIQUE] INDEX 인덱스명 ON 테이블명(속성명 [ASC | DESC] [, 속성명[ASC | DESC]]) [CLUSTER];
UNIQUE
- 사용된 경우 : 중복값이 없는 속성으로 인덱스를 생성
- 생략된 경우 : 중복값을 허용하는 속성으로 인덱스 생성
정렬여부 지정
- ASC : 오름차순 정렬
- DESC : 내림차순 정렬
- 생략된 경우 : 오름차순 정렬
CLUSTER : 사용하면 인덱스가 클러스터드 인덱스로 설정
ALTER
테이블에 대한 정의 변경 명령문
# 표기 형식
ALTER TABLE 테이블명 ADD 속성명 데이터_타입 [DEFAULT '기본값'];
ALTER TABLE 테이블명 ALTER 속성명 [SET DEFAULT '기본값'];
ALTER TABLE 테이블명 DROP COLUMN 속성명 [CASCADE];
- ADD : 새로운 속성(열)을 추가 시 사용
- ALTER : 특정 속성의 Default 값 변경 시 사용
- DROP COLUMN : 특적 속성 삭제 시 사용
DROP
스키마, 도메인, 기본 테이블, 뷰 테이블, 인덱스, 제약 조건 등을 제거하는 명령문
# 표기 형식
DROP SCHEMA 스키마명 [CASCADE | RESTRICT];
DROP DOMAIN 도메인명 [CASCADE | RESTRICT];
DROP TABLE 테이블명 [CASCADE | RESTRICT];
DROP VIEW 뷰명 [CASCADE | RESTRICT];
DROP INDEX 인덱스명 [CASCADE | RESTRICT];
DROP CONSTRAINT 제약조건명;
- CASCADE : 제거 요소를 참조하는 다른 모든 개체를 함께 제거
- RESTRICT : 다른 개체가 제거할 요소를 참조중인 경우 제거 취소
데이터의 보안, 무결성, 회복, 병행 제어 등을 정의하는 데 사용하는 언어
- COMMIT : 수행 결과를 실제 물리적 디스크로 저장하고 작업이 완료되었음을 알림
- ROLLBACK : 조작 작업이 비정삭적으로 종료된 경우 원래 상태로 복구
- GRANT : 사용자에게 사용 권한 부여
- REVOKE : 사용자의 사용 권한 취소
# 표기 형식
GRANT 사용자등급 TO 사용자_ID_리스트 [IDENTIFIED BY 암호];
REVOKE 사용자등급 FROM 사용자_ID_리스트;
# 표기 형식
GRANT 권한_리스트 ON 개체 TO 사용자 [WITH GRANT OPTION];
REVOKE [GRANT OPTION FOR] 권한_리스트 ON 개체 FROM 사용자 [CASCADE];
- 권한 종류 : ALL, SELECT, INSERT, DELETE, UPDATE 등
- WITH GRANT OPTION : 부여받은 권한을 다른 사용자에게 다시 부여할 수 있는 권한 부여
- GRANT OPTION FOR : 디른 사용자에게 권한을 부여할 수 있는 권한 취소
- CASCADE : 권한 취소 시 권한을 부여받았던 사용자가 다른 사용자에게 부여한 권한도 연쇄적으로 취소
트랜잭션이 수행한 내용을 데이터베이스에 반영하는 명령
변경되었으나 아직 COMMIT되지 않은 모든 내용들을 취소하고 데이터베이스를 이전 상태로 되돌리는 명령어
트랜잭션 내에 ROLLBACK할 위치인 저장점을 지정하는 명령어
저장된 데이터를 실질적으로 관리하는데 사용되는 언어
- SELECT : 튜플 검색
- INSERT : 새로운 튜플 삽입
- DELETE : 튜플 삭제
- UPDATE : 튜플의 내용 갱신
# 표기 형식
INSERT INTO 테이블명([속성명1, 속성명2, ...]) VALUES (데이터1, 데이터2, ...)
# 표기 형식
DELETE FROM 테이블명 [WHERE 조건];
# 표기 형식
UPDATE 테이블명 SET 속성명 = 데이터[, 속성명 = 데이터, ...] [WHERE 조건];