#1. SQL (Structured Query Language)
- SQL의 분류
| 데이터 정의어 (DDL) | 테이블 생성 / 변경 / 삭제하는 기능 제공 | CREATE, ALTER, DROP |
| 데이터 조작어 (DML) | 테이블에 새 데이터 삽입, 저장된 데이터를 수정/삭제/검색하는 기능 제공 | SELECT, INSERT, DELETE |
| 데이터 제어어 (DCL) | 보안을 위해 데이터에 대한 접근 및 사용 권한을 사용자별로 부여하거나 취소하는 기능 제공 | GRANT, REVOKE |
#2. 데이터조작어 - 검색
- SELECT 문: 데이터를 검색하는 기본 문장
| SELECT | 속성 이름 |
| FROM | 테이블 이름 |
| WHERE | 검색 조건 |
- SELECT 절에서 열 순서는 결과 테이블의 열 순서 결정
- 릴레이션의 모든 속성을 검색할 경우 *로 대체가능
| ALL | 결과 테이블이 투플의 중복을 허용하도록 지정/생략 가능 |
| DISTINCT | 결과 테이블이 투플의 중복 허용하지 않도록 지정 |
- WHERE: 조건으로 사용 - 비교, 범위, 집합, 패턴, NULL, 복합조건
| 비교 / 범위 | =, <>, <, <=, >=, > |
| 집합 | IN, NOT IN |
| 패턴 | LIKE + 와일드 문자 사용 , 문자열 검색 시 LIKE와 같이 사용할 수 있는 와일드 문자: %, [], [^}, _ |
| 복합조건 | AND, OR 연산자 사용 가능 |
- ORDER BY
- 정렬 검색
| 오름차순 (기본) | ASC |
| 내림차순 | DESC |
- 집계함수: 특정 속성 값을 통계적으로 계산하는 함수 - SUM, AVG, COUNT, MAX, MIN
- 열함수, NULL값은 제외하고 계산
- WHERE 절에는 사용불가, SELECT나 HAVING 절에서만 사용 가능
- AS 키워드: 속성이나 테이블에 별칭 부여
- COUNT: 행의 개수를 셈
- COUNT()의 괄호 안에는 * 혹은 특성 속성의 이름이 사용
- COUNT(*)는 NULL 여부와 관계 없이 전체 튜플의 개수를 카운트, COUNT(속성)은 NULL 제외
- GROUP BY: 특정 속성의 값이 같은 튜플을 모아 그룹을 만든 후 검색
- HAVING: GROUP BY 절의 결과에 나타나는 그룹 제한
- 조인: 한 테이블의 행을 다른 테이블의 행에 연결해 두 개 이상의 테이블을 결합하는 연산
- 외부 조인: 조인 조건을 만족하지 않는 투플에 대해서도 검색 수행 - LEFT | RIGHT | FULL OUTER JOIN, ON
- 부속 질의: SELECT 문 안에 또 다른 SELECT 문 포함하는 질의
- 부속 질의문 (서브 질의문) : 다른 SELECT 문 안에 들어있는 SELECT문
- 부속 질의문 먼저 수행 -> 그 결과 이용해 상위 질의문 수행
- 부속 질의문과 상위 질의문 연결하는 연산자 필요
- 상관(correlated, 연결) 부속 질의: 부속 질의 간에는 상하 관계가 있으며, 상위 부속 질의와 하위 부속 질의가 독립적이지 않고 서로 관련을 맺고 있음
- 집합 연산 - UNION / MINUS, INTERSECT -> NOT IN, IN
- EXISTS / NOT EXISTS: 상관 부속 질의문 형식으로 부속 질의의 결과가 존재하는지 여부 확인하는 연산자
#3. 데이터 정의어
- CREATE TABLE: 테이블 구성 - NULL | NOT NULL | DEFAULT
- 외래키 지정시: 참조 무결성 제약 조건 유지를 위해 참조되는 테이블에서 투플 삭제 시 처리 방법을 지정하는 옵션 - ON DELETE + CASCADE / SET NULL / RESTRICT / NO ACTION
- ALTER: 생성된 테이블의 속성 변경 및 속성에 관한 제약 변경, 기본키 및 외래키 변경
- DROP Table문: 테이블을 삭제하는 명령
#4. 데이터 조작어
| INSERT문 | 테이블에 새로운 투플 삽입하는 명령 |
| UPDATE문 | 특정 속성값을 수정하는 명령 |
| DELETE문 | 테이블에 있는 기존 투플 삭제하는 명령 |
'데이터베이스' 카테고리의 다른 글
| 데이터베이스 프로젝트1 - 동작 시나리오 작성하기 (0) | 2026.05.20 |
|---|---|
| 데이터베이스 4주차 이론 정리 (0) | 2026.03.30 |
| 2. 데이터베이스 2주차 이론 정리 (0) | 2026.03.14 |
| 1. 데이터베이스 1주차 이론 정리 (0) | 2026.03.07 |