SQL

[SQL] WHERE절 정리

zzheng 2024. 10. 21. 19:55

WHERE절 

  • 특정 조건을 만족하는 행만을 대상으로 연산을 수행한다.
  • SELECT 뿐만 아니라 UPDATE, DELETE에도 사용할 수 있으나 INSERT에는 사용할 수 없다.
  • FROM절을 먼저 수행하므로 FROM절에서 정의한 테이블에 대한 별명은 사용할 수 있으나 SELECT절에서 정의한 칼럼에 대한 별명은 사용할 수 없다.

 

비교 연산자

- 단일행 비교연산자

  • 비교 대상이 단일행인 경우로 두 값이 같은지를 비교하거나, 첫 번째 값이 두 번째 값보다 작은지, 아니면 큰지를 비교하는 연산자이다. Null 값에 대해서는 비교연산자가 동작하지 않으므로 반드시 IS NULL을 사용해야한다.
연산자 설명
= 첫 번째 값과 두 번째 값이 같으면 참을 반환
< 첫 번째 값이 두 번째 값보다 작으면 참을 반환
<= 첫 번째 값이 두 번째 값보다 작거나 같으면 참을 반환
> 첫 번째 값이 두 번째 값보다 크면 참을 반환
>= 첫 번째 값이 두 번째 값보다 크거나 같으면 참을 반환
IS NULL NULL이면 참을 반환

 

- 다중행 비교연산자

  • 비교 대상이 다중행인 경우에는 복합적인 비교를 수행하는 별도의 연산자를 사용할 수 가 있다. 
연산자 설명
IN 리스트 중 동일한 값이 하나라도 있으면 참을 반환
EXISTS 서브쿼리의 결과가 한 건이라도 있으면 참을 반환(EXISTS는 서브쿼리를 대상으로만 사용가능)
예)WHERE EXISTS(SELECT*FROM TBL) ->TBL테이블에 데이터가 한건이라도 존재하는가
ALL 리스트 각각의 원소와 비교하여 모두 참이면 참을 반환한다. 단일행 비교 연산자와 결합하여 사용한다.
ANY 리스트 각각의 원소와 비교한 결과가 하나라도 참이면 참을 반환한다. 단일행 비교연산자와 결합하여 사용한다. 

 

부정 비교연산자

- 단일행 부정 비교연산자

  • 두 값이 서로 다른지를 비교할 때 사용한다. 비교연산자와 마찬가지로 NULL 값에 대해서는 IS NOT NULL을 사용해야한다.
연산자 설명
!= 두 값이 서로 다르면 참을 반환
^=
<>
IS NOT NULL NULL 이 아니면 참을 반환

 

- 다중행 부정 비교연산자

  • 다중행 비교연산자 IN과 EXISTS 앞에 NOT을 붙이면 반대의 의미가 된다. ALL과 ANY의 경우 바로 앞에는 NOT을 붙일 수 없고 전체 조건식 앞에 NOT을 붙여 부정을 나타낼 수 있다. 
연산자 설명
NOT IN 리스트 중 동일한 값이 하나도 없으면 참을 반환
NOT EXISTS 서브쿼리의 결과가 한 건도 없으면 참을 반환

 

SQL연산자

연산자 설명
BETWEEN A AND B A보다는 크거나 같고 B보다는 작거나 같으면 참을 반환
LIKE 패턴문자열로 문자 검색시 사용
(패턴문자 %는 0개 이상의 문자, _는 임의의 문자 1개를 의미한다.)

 

부정 SQL연산자

연산자 설명
NOT BETWEEN A AND B A보다 작거나 B보다 크면 참을 반환
NOT LIKE 패턴과 매칭되는 것이 하나도 없으면 참을 반환

 

논리연산자

연산자 설명
AND AND로 연결된 모든 조건이 참이면 참을 반환
OR OR로 연결된 조건 중에 하나가 참이면 참을 반환
NOT 뒤에 오는 식의 참/거짓의 반대를 반환