Dico

SQL WHERE

  • 민갤

WHERE절

조건 검색

SELECT *
 FROM 테이블
 WHERE 조건;

비교연산자

=, <, >, <=, >=, <>, !=

문자와 날짜 타입의 데이터는 반드시 작은따옴표('')로 묶어서 표현한다.

영문자는 대소문자를 구별한다.

SELECT salary * 100
 FROM employees
 WHERE employee_id = 100;
 
SELECT hire_date
 FROM employees
 WHERE hire_date >= '2008/01/01';
 
SELECT last_name
 FROM employees
 WHERE last_name = 'Chen';

논리연산자

  • AND : 두 조건을 모두 만족하는 행을 검색한다.
  • OR : 두 조건 중 한 가지라도 만족하는 행을 검색한다.
WHERE 조건1 < AND | OR > 조건2;

  • NOT : 조건을 만족하지 못하는 행을 검색한다.
WHERE NOT 조건;

BETWEEN 연산자

데이터가 하한값과 상한값 사이에 포함되는 행을 검색한다.

숫자 뿐만 아니라, 문자형, 날짜형에도 사용 가능하다.

단, 작은 따옴표('')로 둘러싼다.

WHERE 컬럼 BETWEEN 하한값 AND 상한값

IN 연산자

다중 OR문

조건 중에서 하나라도 일치하면 참이다.

조건을 몇 개 사용하든 상관 없다.

컬럼 IN (조건1, 조건2, ...);

  • NOT IN : 조건과 모두 일치하지 않으면 참이다.
    컬럼 NOT IN (조건1, 조건2, ...);

    LIKE 연산자

    특정 패턴을 검색한다.

    컬럼 LIKE '패턴'

    • 와일드 카드 : 검색하려는 값을 정확히 모를 때 사용한다.
    %  특정 문자를 포함한 데이터. 해당 위치에 어떠한 값이 오든 상관 없다.
    _  해당 위치에 어떤 값이든 하나의 문자만 올 수 있다.
      SELECT job_id
          , email
       FROM employees
       WHERE job_id LIKE '%PROG%'
          OR email LIKE '_M_L%';

      • NOT LIKE : 특정 패턴을 포함하지 않는 데이터를 검색한다.

      IS NULL

      NULL을 포함하는 행을 검색한다.

      컬럼 IS NULL

      • NULL : 미확정 값, 알 수 없는 값
      • IS NOT NULL : NULL을 포함하지 않는 행을 검색한다.
      SELECT commission_pct
       FROM employees
       WHERE commission_pct IS NOT NULL;