1. SQL
- Structured Querty Language
- 많은 회사에서 관계형 데이터베이스(RDB) 지원 언어로 채택
- 관계대수와 관계해석 기초로 한 혼합 데이터 언어
- 질의어(Query Language)에 데이터 구조 정의 / 조작 / 제어 기능도 갖춤
2. DDL
- Data Define Language(데이터 정의어)
- SCHEMA, DOMAIN, TABLE, VIEW, INDEX 정의 / 변경 / 삭제 시 사용
- 논리적 데이터 구조 및 물리적 데이터 구조의 사상 정의
- DB 관리자 혹은 설계자가 사용
- CREATE: 정의
- ALTER: TABLE의 정의 변경
3. DROP
- 스키마, 도메인, 기본 테이블, 뷰 테이블, 인덱스, 제약 조건 등 제거
- DROP SCHEMA 스키마명 [CASCADE | RESTRICTED];
- DROP DOMAIN 도메인명 [CASCADE | RESTRICTED];
- DROP TABLE 테이블명 [CASCADE | RESTRICTED];
- DROP VIEW 뷰명 [CASCADE | RESTRICTED];
- DROP INDEX 인덱스명 [CASCADE | RESTRICTED];
- DROP CONSTRAINT 제약조건명;
4. DCL
- Data Control Language(데이터 제어어)
- 데이터의 보안, 무결성, 회복, 병행 제어 등을 정의
- DBA(관리자)가 사용
- REVOKE: 권한 취소
- COMMIT: 트랜잭션(Transaction) 성공 후 DB의 일관성(Consistency) 위해 변경 내용 반영
- ROLLBACK: COMMIT 안 된 변경 내용 취소
- SAVEPOINT: ROLLBACK할 위치(저장점) 지정
5. GRANT
- 권한 부여
- GRANT 사용자등급 TO 사용자ID리스트 [IDENTIFIED BY 암호];
- GRANT 권한_리스트 ON 개체 TO 사용자 [WITH GRANT OPTION];
6. DML
- Data Manipulation Language(데이터 조작어)
- 사용자가 저장 데이터를 응용 프로그램이나 질의어로 실질적 관리
- 사용자와 DBMS 간 인터페이스 제공
- INSERT: 테이블에 새로운 튜플 삽입
- UPDATE: 튜플 내용 갱신
7. DELETE
- 테이블에서 특정 튜플(행) 삭제
- DELETE FROM 테이블명 [WHERE 조건];
8. SELECT
- 테이블에서 튜플 검색
- SELECT [PREDICATE][테이블명.]속성명 [AS 별칭], [테이블명.]속성명, ...] [,그룹함수(속성명) [AS 별칭]][, Window함수 OVER (PARTITION BY 속성명3, 속성명4, ...)] FROM 테이블명[, 테이블명, ...][WHERE 조건] [GROUP BY 속성명, 속성명, ...][HAVING 조건] [ORDER BY 속성명 [ASC | DESC]];
- SELECT 속성명1, 속성명2, ... FROM 테이블명 UNION | UNION ALL | INTERSECT | EXCEPT SELECT 속성명1, 속성명2, ... FROM 테이블명 [ORDER BY 속성명 [ASC | DESC]];
9. DISTINCT
- PREDICATE(불러 올 튜플 수 제한하는 명령어)의 하나
- 중복 튜플 있으면 첫 번째 한 개만 검색
10. JOIN
- 2개의 테이블의 연관 튜플을 결합해 릴레이션 반환
- INNER JOIN
- EQUI JOIN
- SELECT [테이블명1.]속성명, [테이블명2.]속성명, ... FROM 테이블명1, 테이블명2, ... WHERE 테이블명1.속성명 = 테이블명2.속성명;
- SELECT [테이블명1.]속성명, [테이블명2.]속성명, ... FROM 테이블명1 NATURAL JOIN 테이블명2;
- SELECT [테이블명1.]속성명, [테이블명2.]속성명, ... FROM 테이블명1 JOIN 테이블명2 USING(속성명);
- NON-EQUI JOIN
- SELECT [테이블명1.]속성명, [테이블명2.]속성명, ... FROM 테이블명1, 테이블명2, ... WHERE (NON-EQUI JOIN 조건);
- OUTER JOIN
- LEFT OUTER JOIN
- SELECT [테이블명1.]속성명, [테이블명2.]속성명, ... FROM 테이블명1 LEFT OUTER JOIN 테이블명2 ON 테이블명1.속성명 = 테이블명2.속성명;
- SELECT [테이블명1.]속성명, [테이블명2.]속성명, ... FROM 테이블명1, 테이블명2 WHERE 테이블명1.속성명 = 테이블명2.속성명(+);
- RIGHT OUTER JOIN
- SELECT [테이블명1.]속성명, [테이블명2.]속성명, ... FROM 테이블명1 RIGHT OUTER JOIN 테이블명2 ON 테이블명1.속성명 = 테이블명2.속성명;
- SELECT [테이블명1.]속성명, [테이블명2.]속성명, ... FROM 테이블명1, 테이블명2 WHERE 테이블명1.속성명(+) = 테이블명2.속성명;
- FULL OUTER JOIN
- SELECT [테이블명1.]속성명, [테이블명2.]속성명, ... FROM 테이블명1 FULL OUTER JOIN 테이블명2 ON 테이블명1.속성명 = 테이블명2.속성명;
- SELF JOIN
- SELECT [별칭1.]속성명, [별칭2.]속성명, ... FROM 테이블명1 [AS] 별칭1 JOIN 테이블명1 [AS] 별칭2 ON 별칭1.속성명 = 별칭2.속성명;
- SELECT [별칭1.]속성명, [별칭2.]속성명, ... FROM 테이블명1 [AS] 별칭1, 테이블명1 [AS] 별칭2 WHERE 별칭1.속성명 = 별칭2.속성명;