sql where 조건절 02

WHRER 조건 절을 활용한 데이터 검색 02

  1. 논리 연산자 : 조건 논리를 계속 연결하기

AND(교집합) : 앞의 조건과 뒤의 조건을 동시에 만족해야 한다.
OR(합집합) : 앞의 조건과 뒤의 조건 중 한쪽이라도 참이면 참이다.
NOT : 뒤의 조건에 대해 반대 결과를 반환한다.

(1) employees 테이블에서 salary가 4000을 초과하면서 job_id가 IT_PROG인 값을 조회하세요.

SELECT *
FROM employees
WHERE salary > 4000
AND job_id = ‘IT_PROG’;

(2) employees 테이블에서 salary가 4000을 초과하면서, job_id가 IT_PROG거나 FI_ACCOUNT인 경우를 조회하세요.

SELECT *
FROM employees
WHERE salary > 4000
AND job_id = ‘IT_PROG’
OR job_id = ‘FI_ACCOUNT’;

  1. 부정 연산자의 종류
  • 부정 비교

!= : 같지 않다.
<> : 같지 않다(ISO 표준).
NOT 열 이름 = : ~와 같지 않다.
NOT 열 이름 > : ~보다 크지 않다.

  • 부정 SQL

NOT BETWEEN a AND b : a와 b 사이에 값이 없다.
NOT IN (list) : list 값과 일치하지 않는다.
IS NOT NULL : null 값을 갖지 않는다.

(1) employees 테이블에서 employee_id가 105가 아닌 직원을 조회해보세요.

SELECT *
FROM employees
WHERE employee_id <> 105;

(2) employees 테이블에서 manager_id가 null 값이 아닌 직원을 조회해 보세요.

SELECT *
FROM employees
WHERE manager_id IS NOT NULL;

자료출처: 모두의 SQL

sql where 조건절 01

WHERE 조건 절을 활용한 데이터 검색 01

  • 사용자가 원하는 데이터를 조회할 때 사용하는 것이 where절
  • ‘어디에서 어떻게’ 가져올지 정함

데이터가 조회되는 논리 순서

  • 참조하려는 테이블로부터 (FROM)
  • 해당 조건식으로 (WHERE)
  • 열을 선택(SELECT)하여 조회합니다.

연산자 우선순위

  • 괄호 > 부정 연산 > 비교 연산 > SQL 연산 순으로 처리
  • 논리 연산자는 NOT, AND, OR 순으로 처리
  1. 비교 연산자 : 비교 조회 조건 주기

    등호 연산자 =

    (1) employee_id가 100인 직원 정보를 출력하세요.

    SELECT *
    FROM employees
    WHERE employee_id = 100;

    (2) employees 테이블에서 first_name이 David인 직원 정보를 출력하세요.

    SELECT *
    FROM employees
    WHERE first_name = ‘David’;

    (3) employees 테이블에서 employee_id가 105이상인 직원 정보를 출력하세요.

    SELECT *
    FROM employees
    WHERE employee_id >= 105;

  2. SQL 연산자 : 조회 조건 확장하기

    BETWEEN a AND b : a와 b 사이에 값이 있다.(a, b를 포함)
    IN(list) : list 중 어느 값이라도 일치한다. 여러개의 값을 지정할 수 있다.
    LIKE’비교 문자’ : 비교 문자와 형태가 일치한다(%, _ 사용)
    IS NULL : null 값을 갖는다.

    (1) employees 테이블에서 salary가 10000 이상이고, 20000 이하인 직원 정보를 출력하세요.

    SELECT *
    FROM employees
    WHERE salary BETWEEN 10000 AND 20000;

    (2) employees 테이블에서 salary가 10000, 17000, 24000인 직원 정보를 출력하세요.

    SELECT *
    FROM employees
    WHERE salary IN (10000, 17000, 24000);

    (3) employees 테이블에서 job_id 값이 AD를 포함하는 모든(%) 데이터를 조회하세요.

    SELECT *
    FROM employees
    WHERE job_id LIKE ‘AD%’;

    (4) employees 테이블에서 AD를 포함하면서 AD 뒤에 따라오는 문자열이 3자리인 데이터 값을 갖는 직원 정보를 조회하세요.

    SELECT *
    FROM employees
    WHERE job_id LIKE ‘AD___‘;

    (5) employees 테이블에서 manager_id가 null 값인 직원 정보를 출력해 보세요.

    SELECT *
    FROM employees
    WHERE manager_id IS NULL;

자료출처: 모두의 SQL