조건 검색 (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;
'Language > RDBMS' 카테고리의 다른 글
[DML_SELECT] SQL 연산자 (0) | 2023.03.02 |
---|---|
[DML_SELECT] ORDER BY 구문을 활용한 정렬 (0) | 2023.03.02 |
[DML_SELECT] SELECT 조작어를 활용한 데이터 조회 (0) | 2023.03.02 |
관계형 데이터베이스와 SQL (0) | 2023.03.02 |
Oracle DBMS 설치 및 설정 (0) | 2023.03.02 |