Post

SQL - WHERE

WHERE

FROM에서 선택된 TABLE에서 SELECT로 지정된 열을 어떤 조건을 통해 걸러낼 것인지 정하는 부분
생략하면 거르는 조건 없이 지정된 테이블에 지정된 열 전체가 출력된다.

아래의 표를 예시로 설명을 계속 하도록 하겠다.

img.png

비교 연산자

  • =
    Equal, 같을 경우
    1
    2
    3
    4
    
    SELECT *
    FROM STUDENT
    WHERE user='tom';
    -- user가 tom인 행
    

    img_1.png

  • <> 혹은 !=
    Not Equal, 같지 않은 경우
    1
    2
    3
    4
    
    SELECT *
    FROM STUDENT
    WHERE user!='tom';
    -- user가 tom이 아닌 행
    

    img_2.png

  • >
    Greater than, 클 경우
    1
    2
    3
    4
    
    SELECT *
    FROM STUDENT
    WHERE score>70;
    -- score가 70 초과인 행
    

    img_3.png

  • <
    Less than, 작을 경우
    1
    2
    3
    4
    
    SELECT *
    FROM STUDENT
    WHERE score<70;
    -- score가 70 미만인 행
    

    img_4.png

  • >=
    Greater than or equal to, 크거나 같을 경우
    1
    2
    3
    4
    
    SELECT *
    FROM STUDENT
    WHERE score>=70;
    -- score가 70 이상인 행
    

    img_5.png

  • <=
    Less than equal to, 작거나 같을 경우
    1
    2
    3
    4
    
    SELECT *
    FROM STUDENT
    WHERE score<=70;
    -- score가 70 이하인 행
    

    img_6.png

  • Between …And
    구간 사이에 있을 경우
    1
    2
    3
    4
    
    SELECT *
    FROM STUDENT
    WHERE score between 60 and 70;
    -- score가 60 이상 70 이하인 행
    

    img_7.png

  • IN
    집합의 원소 중 하나인지 체크할 경우
    1
    2
    3
    4
    
    SELECT *
    FROM STUDENT
    WHERE user in ('tom','dave');
    -- user에 tom 혹은 dave가 포함된 행
    

    img_8.png

  • IS (NOT) NULL
    Null 인지 아닌지 체크할 경우
    1
    2
    3
    4
    
    SELECT *
    FROM STUDENT
    WHERE user is null;
    -- user가 null인 행
    

    img_9.png

  • LIKE
    문자열의 패턴을 검사할 경우
    1
    2
    3
    4
    
    SELECT *
    FROM STUDENT
    WHERE user like '%e';
    -- user의 끝 문자가 e인 행
    

    img_10.png

논리 연산자

  • AND
    모든 조건이 만족할 경우
    1
    2
    3
    4
    
    SELECT *
    FROM STUDENT
    WHERE user like '%e' AND (score >= 80);
    -- user의 끝 문자가 e이면서 score가 80 이상인 행
    

    img_11.png

  • OR
    하나 이상의 조건이 만족할 경우
    1
    2
    3
    4
    
    SELECT *
    FROM STUDENT
    WHERE (score <= 40) OR (score >= 80);
    -- score가 40 이하거나 80 이상인 행
    

    img_12.png

  • NOT
    주어진 조건을 부정할 경우
    1
    2
    3
    4
    
    SELECT *
    FROM STUDENT
    WHERE score not between 60 and 70;
    -- score가 60 이상 70 이하가 아닌 행
    

    img_13.png

※ 연산자의 우선순위

  1. 모든 비교 연산자는 동일한 우선 순위
  2. NOT
  3. AND
  4. OR

높은 순위의 연산자가 만족하면 결과가 그대로 확정된다.

참고자료

This post is licensed under CC BY 4.0 by the author.