728x90
반응형
조건 검색 (WHERE)

 

- 특정 조건을 만족하는 데이터만 조회

- 연산자, 컬럼명, 표현식, 숫자, 문자 등을 이용한 조건 제시

- 연산자:

  • 산술 연산자: +, -, *, /
  • 비교 연산자: =, <>, !=, >, >=, <, <=)
  • 논리 연산자: AND, OR, NOT
  • 집합 연산자: UNION, UNION ALL, INTERSECT, MINUS
    여러개의 질의의 결과를 연결하여 하나로 결합하는 방식
    두 개 이상의 테이블에서 조인을 사용하지 않고 연관된 데이터를 조회하는 방법
    집합 연산자를 사용하기 위해서는 SELECT 절의 컬럼 수가 동일하고,
    동일 위치에 존재하는 컬럼의 데이터 타입이 상호 호환 가능해야 함
  • SQL 연산자: BETWEEN, IN, LIKE, IS NULL

- 숫자 뿐 아니라 문자나 날짜 값을 비교하는 것도 가능

  • 'A' < 'C'
  • '2019-12-01' < '2019-12-02'

- 조건에서 문자나 날짜 값은 작은 따옴표로 묶어서 표현

 


> 비교연산자 활용

 

- employee_id 가 110과 같다.(110만 출력)

SELECT *
FROM employees
WHERE employee_id = 110;

 

- employee_id 가 110과 다르다.(110 제외 전부 출력)

SELECT *
FROM employees
WHERE employee_id <> 110;

 

- employee_id 가 110보다 작다.(미만)

SELECT *
FROM employees
WHERE employee_id < 110;

 

- employee_id 가 110보다 크다.(초)

SELECT *
FROM employees
WHERE employee_id > 110;

 

- employee_id 가 110보다 작거나 같다.(이하)

SELECT *
FROM employees
WHERE employee_id <= 110;

 

- employee_id 가 110보다 크거나 같다.(이상)

SELECT *
FROM employees
WHERE employee_id >= 110;

> 논리연산자 활용

 

- 여러 조건을 논리 연산자로 연결시켜 데이터 조회

 

AND: 모든 조건을 만족해야 조회 (True : True)

OR: 여러 조건 중 하나만 만족해도 조회 (True : False)

NOT: 조건을 만족하지 않는 것만 조회 (False : False)

 

- employee_id가 120보다 크거나 같고, 130보다 작거나 같다. (120 ~ 130) *두개의 조건 모두를 만족

SELECT *
FROM employees
WHERE employee_id >= 120 AND employee_id <= 130;

 

- salary 가 10,000 보다 크거나 같고, 12,000보다 작거나 같다. (10,000 ~ 12,000) *두개의 조건 모두를 만족

SELECT *
FROM employees
WHERE salary >= 10000 AND salary <= 12000;

 

- manager_id 가 100 또는 120 인 것 (100, 120) * 두개의 조건 중 하나만 맞아도 만족

SELECT *
FROM employees
WHERE manager_id = 100 OR manager_id = 120;

 

- last_name 이 'King' 또는 'Smith' 인 모든 것

SELECT *
FROM employees
WHERE last_name = 'King' OR last_name = 'Smith';

 

- department_id 가 50이 아닌 것 모두 출력 (NOT)

SELECT *
FROM employees
WHERE NOT department_id = 50;

 

- department_id 가 50이 아닌 것과 department_id가 80 이 아닌 두개 모두를 만족하지 않는 것 전부 출력

SELECT *
FROM employees
WHERE NOT department_id = 50 AND NOT department_id = 80;

[실습] 비교, 논리 연산자

 

- employees 테이블에서 first_name이 'David'인 직원 조회

SELECT *
FROM employees
WHERE first_name = 'David';

 

- jobs 테이블에서 최소 월급이 4,000 달러인 직업 조회

SELECT *
FROM jobs
WHERE MIN_SALARY = 4000;

 

- jobs 테이블에서 최소 월급이 8,000 달러 초과인 직업 조회

SELECT *
FROM jobs
WHERE min_salary > 8000;

 

- jobs 테이블에서 최대 월급이 10,000 이하인 직업 조회

SELECT *
FROM jobs
WHERE max_salary <= 10000;

 

- jobs 테이블에서 최소 월급이 4,000불 이상이고 최대 월급이 10,000불 이하인 직업 조회

SELECT *
FROM jobs
WHERE min_salary >= 4000 AND max_salary <= 10000;

 

- employees 테이블에서 job_id가 'IT_PROG'이면서 salary가 5,000불 초과인 직원 조회

SELECT *
FROM employees
WHERE job_id = 'IT_PROG' AND salary > 5000;

 

 

728x90
반응형

+ Recent posts