WHERE 절 개념에 대해서 이야기해봅시다.
WHERE 절 개념에 대해 알기
WHERE 절은 SQL(Structured Query Language)에서 DML(Data Modification Language) 문을 수행할 때 사용자가 원하는 데이터만 골라서 수행할 수 있도록 해주는 역할을 하는 구문입니다. SQL에서 SELECT 문과 FROM 문과 함께 가장 대표적인 조건을 부여하는 절입니다.
WHERE 절은 SQL 쿼리를 동작시키기 위해서 필수는 아니고 선택입니다. SQL 쿼리 구문에서 SELECT와 FROM은 필수절이지만 WHERE 절은 필수절이 아닙니다.
WHERE 절은 SELECT, INSERT, UPDATE, DELETE 중 SELECT, INSERT, DELETE에서는 사용할 수 있지만 INSERT에서는 사용할 수 없습니다.
WHERE절에는 다양한 WHERE 절이 있으며 비교 연산자, 부정 비교 연산자, SQL 연산자, 부정 SQL 연산자, 논리 연산자가 있습니다. 연산자 간에는 우선순위도 존재합니다.
WHERE 절은 SQL을 사용하여 데이터베이스(Data Base)로 부터 데이터를 검색할 때 조회 되어야 하는 데이터를 필터링 하는데 사용합니다.
WHERE 절 개념에 대한 설명
WHERE 절 개념은 DML(Data Modification Language) 문을 수행할 때 SELECT, INSERT, UPDATE, DELETE 중 INSERT를 제외하고 원하는 데이터만 골라서 수행할 수 있도록 해주는 구문입니다.
WHERE 절은 데이터베이스(DB)에서 조회 되는 데이터에 대한 조건을 설정하여 원하는 데이터 만을 검색하거나 처리할 수 있도록 사용하는 절입니다.
WHERE 절은 FROM 절 다음에 위치하며 조건식은 아래의 내용으로 구성됩니다.
[WHERE 절 구성 요소]
구분 | 내용 |
1 | 컬럼(Column) 명(일반적으로 조건식의 왼쪽에 위치함) |
2 | 비교 연산자 |
3 | 문자, 숫자, 표현식(일반적으로 저건식의 오른쪽에 위치함) |
4 | 비교 컬럼명(SQL JOIN을 사용할 경우) |
WHERE 절을 통해서 특정 테이블의 특정 컬럼에 특정 조건에 해당하는 데이터만 조회할 수 있고 업데이트하거나 삭제할 수도 있습니다.
WHERE 절은 INSERT를 제외하고 SELECT, UPDATE, DELETE에서 활용할 수 있습니다.
WHERE 절은 필수가 아니므로 생략 가능한 구문입니다.
[WHERE 절 활용 예시]
1. SELECT 사용
SELECT 컬럼명1, 컬럼명2
FROM 테이블명
WHERE 조건절 ;
2. UPDATE 사용
UPDATE 테이블명
SET 컬럼명 = 새로운 데이터
WHERE 조건절 ;
3. DELETE 사용
DELETE FROM 테이블명
WHERE 조건절 ;
WHERE절에는 다양한 WHERE 절이 있습니다. WHERE 절은 5가지 유형으로 분류할 수 있습니다. WHERE 절의 5가지 유형은 비교 연산자, 부정 비교 연산자, SQL 연산자, 부정 SQL 연산자, 논리 연산자입니다.
[WHERE 절의 5가지 유형]
구분 | 내용 |
1 | 비교 연산자 |
2 | 부정 비교 연산자 |
3 | SQL 연산자 |
4 | 부정 SQL 연산자 |
5 | 논리 연산자 |
비교 연산자에는 아래와 같은 연산자로 구성되어 있습니다.
[비교 연산자]
비교 연산자 | 의미 | 사용 예시 |
= | 같음 | WHERE 컬럼명 = 조건 |
< | 작음 | WHERE 컬럼명 < 조건 |
<= | 작거나 같음 | WHERE 컬럼명 <= 조건 |
> | 큼 | WHERE 컬럼명 > 조건 |
>= | 크거나 같음 | WHERE 컬럼명 >= 조건 |
부정 비교 연산자에는 아래와 같은 연산자로 구성되어 있습니다.
[부정 비교 연산자]
부정 비교 연산자 | 의미 | 사용 예시 |
!= | 같지 않음 | WHERE 컬럼명 != 조건 |
^= | 같지 않음 | WHERE 컬럼명 ^= 조건 |
<> | 같지 않음 | WHERE 컬럼명 <> 조건 |
NOT 컬럼명 = | 같지 않음 | WHERE NOT 컬럼명 = 조건 |
NOT 컬럼명 > | 크지 않음 | WHERE NOT 컬럼명 > 조건 |
SQL 연산자에는 아래와 같은 연산자들로 구성되어 있습니다.
[SQL 연산자]
SQL 연산자 | 의미 | 사용 예시 |
BETWEEN A AND B | A와 B의 사이(A와 B를 포함함)의 조건 | WHERE 컬럼명 BETWEEN A AND B |
LIKE ‘비교 문자열’ | 비교 문자열을 포함하도록 하는 조건 | WHERE 컬럼명 LIKE ‘%A%’ |
IN(LIST) | LIST 중 하나와 일치하는 조건 | WHERE 컬럼명 IN (A, B, C) |
IS NULL | NULL 값인 것을 찾는 조건 | WHERE 컬럼명 IS NULL |
부정 SQL 연산자에는 다양한 연산자들이 있습니다.
[부정 SQL 연산자]
SQL 연산자 | 의미 | 사용 예시 |
NOT BETWEEN A AND B | A와 B 사이가 아님(A와 B 미포함) | WHERE 컬럼명 NOT BETWEEN A AND B |
NOT IN(LIST) | LIST 중 일치하는 것이 없는 조건 | WHERE 컬럼명 NOT IN (A, B, C) |
IS NOT NULL | NULL 값이 아닌 것을 찾는 조건 | WHERE 컬럼명 IS NOT NULL |
논리 연산자에는 다양한 연산자들이 존재합니다.
[논리 연산자]
논리 연산자 | 의미 | 사용 예시 |
AND | 모든 조건이 TRUE 이어야 함 | WHERE 컬럼명 > 1 AND 컬럼명 < 10 |
OR | 하나 이상의 조건이 TRUE 이어야 함 | WHERE 컬럼명 = 1 OR 컬럼명 = 10 |
NOT | TRUE면 FALSE 이고 FASLE 이면 TRUE | WHERE NOT 컬럼명 < 10 |
논리 연산자에서는 처리 순서가 존재합니다. 논리 연산자의 처리 순서는 SQL 쿼리 구문에 명시한 순서랑 상관 없이 (), NOT, AND, OR 순으로 처리됩니다.
[논리 연산자 처리 순서]
구분 | 내용 |
1순위 | () |
2순위 | NOT |
3순위 | AND |
4순위 | OR |
전체 연산자의 우선순위는 아래와 같습니다.
[전체 연산자의 우선순위]
구분 | 내용 |
1순위 | 산술 연산자 |
2순위 | 연결 연산자 |
3순위 | 비교 연산자 |
4순위 | IN, LIKE, BETWEEN, IS NULL |
5순위 | NOT |
6순위 | AND |
7순위 | OR |
NULL 값을 조건절에서 사용하는 경우 IS NULL 또는 IS NOT NULL 키워드를 사용하게 됩니다.
WHERE 절에서는 집계 함수를 사용할 수 없습니다.