SQL -DDL (Data Define Language, 데이터 정의어)

: DB를 구축하거나 수정할 목적으로 사용하는 언어

CREATE SCHEMA 스키마명 AUTHORIZATION 사용자_id;

CREATE DOMAIN 도메인명 [AS] 데이터_타입  -- 지원하는 기본 데이터 타입
			[DEFAULT 기본 값] --데이터를 입력하지 않았을 경우
			[CONSTRAINT 제약조건명 CHECK (범위값)];

CREATE TABLE 기본테이블
		([속성명 데이터_타입 [DEFALUT 값] [NOT NULL], ...
		[PRIMARY KEY(기본키_속성명)],
		[UNIQUE(대체키 속성, ...)],
		[FOREIGN KEY(속성명),
				REFERENCES 참조테이블[(기본키_속성명)]
				[ON DELETE 옵션]
				[ON UPDATE 옵션]
		[,CONSTRAINT 제약조건명]**[CHECK(조건식)]);**
		
CREATE VIEW 뷰명[(속성명[,속성명])]
AS SELECT문;
[WITH CHECK OPTION] 
-- WITH CHECK OPTION : 갱신이나 삽입시 뷰의 정의 조건을 따름

CREATE [UNIQUE] INDEX 인덱스명
ON 테이블명(속성명 [ASC|DESC] [,속성명 [ASC|DESC]]) --생략된 경우 오름차순
[CLUSTER]; -- 클러스터 사용시 클러스터드 인덱스로 설정 : 인덱스 순서에 따라 데이터가 정렬
ALTER TABLE 테이블_이름 ADD 열_이름 데이터_타입 [DEFAULT 기본_값];
ALTER TABLE 테이블_이름 ALTER 열_이름 [SET DEFAULT 기본_값]; --default 값 변경
ALTER TABLE 테이블_이름 DROP 열_이름 [CASCADE]; --속성 삭제  [제약조건 있으면 같이 삭제]

SQL - DCL (Data Control Language, 데이터 제어어)

: 데이터의 보안, 무결성, 회복, 병행 제어등을 정의하는데 사용하는 언어

DROP SCHEMA 스키마명 [CASCADE|RESTRICT];
DROP DOMAIN 도메인명 [CASCADE|RESTRICT];
DROP TABLE 테이블명 [CASCADE|RESTRICT];
DROP VIEW 뷰명 [CASCADE|RESTRICT];
DROP INDEX 인덱스명 [CASCADE|RESTRICT];
DROP CONSTRAINT 제약조건명;
-- CASCADE : 참조하는 다른 모든 개체를 함께 제거
-- RESTRICT : 참조중일 때는 제거를 취소
-- 사용자 등급 지정, 해제
GRANT 사용자등급 TO 사용자_ID_LIST [IDENTIFIED BY 암호];
REVOKE 사용자등급 FROM 사용자_ID_LIST;

-- 테이블 및 속성에 대한 권한 부여, 취소
GRANT 권한_리스트 ON 개체 TO 사용자 [WITH GRANT OPTION];
REVOKE [GRANT OPTION FOR] 권한_리스트 FROM 개체 사용자 [CASCADE];
-- 권한 종류 : ALL, SELECT,INSERT,DELETE,UPDATE

SQL - DML(Data Manipulation Language, 데이터 조작어)

: 저장된 데이터를 실질적으로 관리하는데 사용되는 언어