DB

[sql] WHERE 절 문법

초코파이쩡 2023. 3. 14. 16:17
반응형

1. 사용자들은 자신이 원하는 자료만을 검색하기 위해서 SQL 문장에 WHERE 절을 이용하여 자료들에 대하여 제한할 수 있다. 

2. 두 개 이상의 테이블에 대한 INNER JOIN을 지원하는 다른 기능도 가지고 있다.

3. WHERE 절은 조회하려는 데이터에 특정 조건을 부여할 목적으로 사용하기 때문에 FROM 절 뒤에 오게 된다.

 

WHERE 절 사용법

SELECT [DISTINCT/ALL] 칼럼명 [ALIAS명]
FROM 테이블명
WHERE 조건식;

 

연산자 종류

 

구분 연산자 연산자의 의미
비교
연산자
= 같다.
> 보다 크다.
>= 보다 크거나 같다
< 보다작다
<= 보다 작거나 같다
SQL
연산
BETWEEN a AND b a와 b의 값 사이에 있으면 된다.(a와 b 값이 포함됨)
IN (list) 리스트에 있는 값 중에서 어느 하나라도 일치하면 된다.
LIKE '비교문자열' 비교문자열과 형태가 일치하면 된다.(%, _ 사용)
IS NULL NULL 값인 경우
논리
연산자
AND 앞에 있는 조건과 뒤에 오는 조건이 참(TRUE)이 되면 결과도 참(TRUE)이 된다
즉 앞의 조건과 뒤의 조건을 동시에 만족해 논리 연산자 AND 참(TRUE)이 된다.
즉, 앞의 조건과 뒤의 조건을 동시에 만족해 야 한다.
OR 앞의 조건이 참(TRUE)이거나 뒤의 조건이 참(TRUE)이 되어야
결과도 참(TRUE)이 된다. 즉, 앞뒤의 조건 중 하나만 참(TRUE) 이면 된다.
NOT 뒤에 오는 조건에 반대되는 결과를 되돌려 준다.
부정
비교 연산자
!= 같지 않다.
^= 같지 않다.
<> 같지 않다. (ISO 표준, 모든 운영체제에서 사용 가능)
NOT 칼럼명 = ~와 같지 않다
NOT 칼럼명 > ~보다 크지 않다.
부정
SQL 연산자
NOT BETWEEN
a AND b
a와 b의 값 사이에 있지 않다. (a, b 값을 포함하지 않는다)
a보다 작거나 b보다 크거나 조건으로 바꿀 수 있다.
NOT IN (list) list 값과 일치하지 않는다.
IS NOT NULL NULL 값을 갖지 않는다

 

연산자 우선 순위

연산 우선 순위 설명
1 괄호 ()
2 NOT 연산자
3 비교 연산자, SQL 비교 연산자
4 AND
5 OR

실수하기 쉬운 비교 연산자와 논리 연산자의 경우 괄호를 사용해서 우선 순위를 표시하는 것을 권고한다.

 

WHERE 조건 - LIKE

와일드 카드의 종류

 

와일드 카드 설명
% 0개 이상의 어떤 문자를 의미한다.
_ 1개인 단일 문자를 의미한다.

 

WHERE 조건 – IS NULL

1. NULL : 아직 정의되지않은 미지의 값, 또는 현재 알수 없는 값

2. ' '(공백, ASCII 32) , ASCII 32)이나 0(Zero, ASCII 48) 0(Zero, ASCII 48)와는 다른 값이다.

3.  NULL 값과의 수치연산은 NULL 값을 리턴한다.

4.  NULL 값과의 비교연산은 거짓( ) FALSE 를 리턴한다.

cf) 오라클의 경우 문법적으로 ‘= NULL’ 조건에서 오류가 발생하지는 않지만, 데이터는 1건도 검색되지 않는다.

5. NULL 값의 비교 연산은 IS NULL(값이 없는), IS NOT NULL (값이 있는)이라는 정해진 문구를 사용해야 제대로 된 결과를 얻을 수 있다. (ANSI 기준)

 

 


출처 : 한국데이터베이스 진흥

반응형