1. WHERE 조건절 개요
- 사용자들은 자신이 원하는 자료만을 검색하기 위해 SQL 문장에 WHERE 절을 이용해 자료를 제한할 수 있음
- WHERE 절에는 두 개 이상의 테이블에 대한 조인 조건을 기술하거나 결과를 제한하기 위한 조건을 기술할 수 있음
- 현실의 데이터베이스는 많은 사용자나 프로그램들이 동시에 접속해 다량의 트랜잭션을 발생시키고 있음
- 만약 WHERE 조건절을 사용하지 않을 경우 필요 없는 많은 자료를 DB로부터 요청하는 SQL 문장은 대량의 데이터를 검색하기 위해 DB가 설치된 서버의 CPU나 메모리 등의 시스템 자원을 과다하게 사용하게 됨
- 이런 문제점을 방지하기 위해 WHERE 절에 조건이 없는 Full Table Scan 문장은 SQL 튜닝의 1차적인 검토 대상이 됨 (물론 병렬 처리 등을 이용해 FTS를 유용하게 사용하는 케이스도 있음)
- 기본적인 SQL 문장은 Oracle의 경우 필수적으로 SELECT 절과 FROM 절로 이루어져 있음
- SQL Server와 Sybase 문장은 SELECT 목록에 상수, 변수, 산술식만 포함되는 경우는 FROM 절이 필요 없지만, 테이블의 칼럼이 사용된 경우는 FROM 절이 필요함
- WHERE 절은 조회하려는 데이터에 특정 조건을 부여할 목적으로 사용하기 때문에 FROM 절 뒤에 오게 되며 조건식은 아래 내용으로 구성됨
- 칼럼명 (보통 조건식의 좌측에 위치)
- 비교 연산자
- 문자, 숫자, 표현식 (보통 조건식의 우측에 위치)
- 비교 칼럼명 (JOIN 사용 시)
2. 연산자의 종류
- WHERE 절에 사용되는 연산자는 세 가지 종류가 있음
- 비교 연산자 (부정 비교 연산자 포함)
- SQL 연산자 (부정 SQL 연산자 포함)
- 논리 연산자
- 연산자의 우선순위는 다음과 같음
- 괄호로 묶은 연산이 제일 먼저 연산 처리됨
- 연산자들 중에는 비교 연산자 (=, >, >=, <, <=)와 SQL 연산자 (BETWEEN a AND b, IN (list), LIKE, IS NULL)가 먼저 처리되고,
- 부정 연산자 (NOT)가 처리되고
- 논리 연산 중에는 AND, OR가 순서대로 처리됨
3. 비교 연산자
- 비교 연산자의 종류는 다음과 같으면, 비교 연산자들을 적절히 사용해 다양한 조건을 구성할 수 있음
- 문자 유형 간 비교 조건이 발생하는 경우는 다음과 같이 처리함
- '=' 연산자를 사용할 때 CHAR 변수나 VARCHAR과 같은 문자형 타입을 가진 칼럼을 특정 값과 비교하기 위해서는 인용부호(작은따옴표, 큰 따옴표)로 묶어서 비교 처리를 해야 함
4. SQL 연산자
- SQL 연산자는 SQL 문장에서 사용하도록 기본적으로 예약돼 있는 연산자로서 모든 데이터 타입에 대해 연산이 가능한 네 가지 종류가 있음
5. 논리 연산자
- 논리 연산자는 비교 연산자나 SQL 연산들로 이루어진 여러 개의 조건들을 논리적으로 연결시키기 위해 사용되는 연산자
6. 부정 연산자
- 비교 연산자, SQL 연산자에 대한 부정 표현을 부정 논리 연산자, 부정 SQL 연산자로 구분할 수 있음
참고
SQL 전문가 가이드 2020 개정판 - 한국데이터산업진흥원
반응형
'DB > SQL 전문가 가이드' 카테고리의 다른 글
[과목 II 1장 6절] ORDER BY절 (0) | 2025.03.24 |
---|---|
[과목 II 1장 5절] GROUP BY, HAVING 절 (0) | 2025.03.23 |
[과목 II 1장 3절] 함수 (0) | 2025.03.22 |
[과목 II 1장 2절] SELECT 문 (0) | 2025.03.22 |
[과목 II 1장 1절] 관계형 데이터베이스 개요 (0) | 2025.03.22 |