WHERE 절 개념? SQL의 1개 이상 조건 설정

WHERE 절 개념에 대한 설명
WHERE 절 개념에 대한 설명

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부정 비교 연산자
3SQL 연산자
4부정 SQL 연산자
5논리 연산자

비교 연산자에는 아래와 같은 연산자로 구성되어 있습니다.

[비교 연산자]

비교 연산자의미사용 예시
=같음WHERE 컬럼명 = 조건
<작음WHERE 컬럼명 < 조건
<=작거나 같음WHERE 컬럼명 <= 조건
>WHERE 컬럼명 > 조건
>=크거나 같음WHERE 컬럼명 >= 조건

부정 비교 연산자에는 아래와 같은 연산자로 구성되어 있습니다.

[부정 비교 연산자]

부정 비교 연산자의미사용 예시
!=같지 않음WHERE 컬럼명 != 조건
^=같지 않음WHERE 컬럼명 ^= 조건
<>같지 않음WHERE 컬럼명 <> 조건
NOT 컬럼명 =같지 않음WHERE NOT 컬럼명 = 조건
NOT 컬럼명 >크지 않음WHERE NOT 컬럼명 > 조건

SQL 연산자에는 아래와 같은 연산자들로 구성되어 있습니다.

[SQL 연산자]

SQL 연산자의미사용 예시
BETWEEN A AND BA와 B의 사이(A와 B를 포함함)의 조건WHERE 컬럼명 BETWEEN A AND B
LIKE ‘비교 문자열’비교 문자열을 포함하도록 하는 조건WHERE 컬럼명 LIKE ‘%A%’
IN(LIST)LIST 중 하나와 일치하는 조건WHERE 컬럼명 IN (A, B, C)
IS NULLNULL 값인 것을 찾는 조건WHERE 컬럼명 IS NULL

부정 SQL 연산자에는 다양한 연산자들이 있습니다.

[부정 SQL 연산자]

SQL 연산자의미사용 예시
NOT BETWEEN A AND BA와 B 사이가 아님(A와 B 미포함)WHERE 컬럼명 NOT BETWEEN A AND B
NOT IN(LIST)LIST 중 일치하는 것이 없는 조건WHERE 컬럼명 NOT IN (A, B, C)
IS NOT NULLNULL 값이 아닌 것을 찾는 조건WHERE 컬럼명 IS NOT NULL

논리 연산자에는 다양한 연산자들이 존재합니다.

[논리 연산자]

논리 연산자의미사용 예시
AND모든 조건이 TRUE 이어야 함WHERE 컬럼명 > 1 AND 컬럼명 < 10
OR하나 이상의 조건이 TRUE 이어야 함WHERE 컬럼명 = 1 OR 컬럼명 = 10
NOTTRUE면 FALSE 이고 FASLE 이면 TRUEWHERE 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 절에서는 집계 함수를 사용할 수 없습니다.