Nested Queries
SELECT-FROM-WHERE의 쿼리 블럭이 다른 쿼리의 WHERE절에 들어 가는 것. WHERE절 안에 있는 쿼리를 Inner query라고 하고, 이것을 감싸는 본체를 Outer query라고 한다.
Comparison Operators
- IN: 값 v가 집합 V에 속한다면 True, 그렇지 않다면 False
- = ANY: 집합 V에 v와 같은 값이 하나라도 존재한다면 True, 그렇지 않다면 False. = 말고도 >, >=, <, <=, <>도 가능하다.
- = ALL: 집합 V에 있는 모든 값이 v와 같다면 True, 그렇지 않다면 False, = 말고도 >, >=, <, <=, <>도 가능하다.
Avoiding Ambiquities
Inner query와 outer query에 같은 이름의 attribute가 존재할 수 있다. 별칭이 없을 경우 이름이 겹치는 attribute를 unqualified attribute라고 하는데, 이는 가장 안쪽에 있는 nested query에서 선언된 relation을 참조한다.
EXISTS and UNIQUE Functions
- EXISTS: nested query의 결과 tuple이 하나라도 존재하면 True, 그렇지 않다면 False
- NOT EXISTS: nested query의 결과 tuple이 하나도 존재하지 않는다면 True, 그렇지 않다면 False
- UNIQUE: Query의 결과 중복되는 tuple이 없으면 True, 그렇지 않다면 False
Explicit Sets and NULL
- Explicit Sets: WHERE절에 명시적인 집합을 만들 수 있다.
- IS NULL: Attribute의 값이 존재하지 않아서 NULL이라면 True, 그렇지 않다면 False. NULL 값은 존재하지 않는 것이니까 NULL인 것 끼리는 비교연산자가 성립하지 않는다.
Aggregate Functions
다수의 tuple들에 대한 요약된 정보를 단일 tuple로 얻기 위한 집계함수이다.
COUNT: tuple의 수를 반환
SUM: 모든 tuple의 해당 attribute 값의 합을 반환
MAX: 모든 tuple의 해당 attribute 값 중 최댓값을 반환
MIN: 모든 tuple의 해당 attribute 값 중 최솟값을 반환
AVG: 모든 tuple의 해당 attribute 값의 평균을 반환
Grouping
GROUP BY: GROUP BY절 이하에 있는 attribute로 그룹을 나누고, 그 그룹에 대해 Aggregate funciton을 적용할 때 사용된다.
Having Clause
HAVING: GROUP BY로 Aggregate function을 적용한 GROUP들 중에 HAVING절 이하 조건을 만족하는 것만 고를 때 사용된다.
Substring Pattern Matching
LIKE: String pattern matching에 사용된다.
'%': %로 둘러싸인 문자열(패턴)이 존재하면 True, 그렇지 않다면 False
'_': _칸은 don't care로 취급하고, _이 아닌 칸에 있는 값이 겹치면 True, 그렇지 않으면 False
Arithmetic Operators
SELECT 절에 +, -, *, / 등의 연산을 포함해서 결과를 나타낼 수 있다.
Ordering of Query Results
ORDER BY: DESC면 해당 attribute에 대해 내림차순, ASC면 해당 attribute에 대해 오름차순으로 tuple의 순서를 정한다. ASC가 기본값이다. 예는 다음과 같다.
'Computer Science > Database Systems' 카테고리의 다른 글
[Database Systems] Database Design, Functional Dependencies (0) | 2025.02.05 |
---|---|
[Database Systems] SQL (3) (0) | 2025.02.04 |
[Database Systems] SQL (1) (0) | 2025.01.30 |
[Database Systems] Relational algebra (0) | 2025.01.28 |
[Database Systems] ER to Relational model (0) | 2025.01.26 |