WHERE절 사용하기
SELECT employee_id, last_name, job_id, department_id
FROM employees
WHERE department_id = 90;
- where절에 조건을 걸어서 원하는 데이터를 찾을 수 있음
- 조건이 참일 경우에 조건을 만족하는 행이 반환 됨
SELECT last_name, job_id, department_id
FROM employees
WHERE last_name = 'Whalen';
- 문자열 및 날짜는 작은 따옴표, 숫자는 작은 따옴표로 묶지 않음
- "last_name"에 해당하는 모든 이름이 대소문자가 혼합되어 있으면 구분해줘야 함
- 오라클 데이터베이스에서 기본 날짜 표기 형식은 "DD-MON-RR"
비교조건
SELECT last_name, salary
FROM employees
WHERE salary <= 3000;
비교 조건을 사용하게 된다면 급여가 3000 이하인 사원의 이름과 급여를 검색할 수 있음
SELECT last_name, salary
FROM employees
WHERE salary BETWEEN 2500 AND 3500;
- 급여가 $2,500 이상이고 $3,500 이하인 사원의 행을 반환함
- BETWEEN 범위 조건을 사용하게 되면 지정 범위 하한값과 상한값이 포함된 값을 찾을 수 있음
SELECT employee_id, last_name, salary, manager_id
FROM employees
WHERE manager_id IN (100, 101, 201);
- 사원번호가 100, 101, 201인 사원 번호, 이름, 급여 및 관리자의 사원 번호를 반환
- 값이 특정 값 집합에 확인하려면 IN 조건을 사용함
SELECT employee_id, manager_id, department_id
FROM employees
WHERE last_name IN ('Hartstein', 'Vargas');
- - IN 조건은 모든 데이터 유형에서 사용할 수 있음
- - IN 조건에 문자 또는 날짜를 사용할때는 작은 따옴표(' ')로 묶어야 함
SELECT first_name
FROM employees
WHERE first_name LIKE 'S%';
- LIKE 조건을 사용하여 원하는 문자를 검색할 수 있음
- 찾으려는 컬럼에 대소문자가 혼합되어 있다면 구분해서 검색해야 함
SELECT last_name
FROM employees
WHERE last_name LIKE '_o';
SELECT lst_name, manager_id
FROM employees
WHERE manager_id IS NULL;
- 관리자가 없는 모든 사원의 이름과 관리자를 검색함
3. 논리조건
SELECT employee_id, last_name, job_id, salary
FROM employees
WHERE salary >= 10000
AND job_id LIKE '%MAN%';
- 업무 ID 문자열에 "MAN"이 포함되고 급여가 $10,000 이상인 사원만 선택
- 모든 문자 검색은 대소문자를 구분하여 작성
SELECT employee_id, last_name, job_id, salary
FROM employees
WHERE salary >= 10000
OR job_id LIKE '%MAN%';
- 업무 ID 문자열에 "MAN"이 포함되거나 급여가 $10,000 이상인 즉 둘중에 하나라도 포함되는 사원 선택
4. ORDER BY
SELECT last_name, job_id, department_id, hire_date
FROM employees
ORDER BY hire_date;
- ORDER BY 절은 SELECT 문의 가장 끝에 위치
- 질의 결과로 반환되는 행의 순서는 정의되어 있지 않아서 ORDER BY 절을 사용하여 행을 정렬해야 함
5. 실습
1) 20번 및 50번 부서에 근무하며, 연봉이 200,000 ~ 250,000 사이인 사원들의 이름 및 연봉을 출력
SELECT last_name, salary * 12
FROM employees
WHERE department_id IN(20, 50)
AND salary * 12 BETWEEN 200000 AND 250000;
2) 2006년도에 고용된 모든 사람들의 이름 및 고용일을 출력
SELECT last_name, hire_date
FROM employees
WHERE hire_date LIKE '06%';
3) 매니저가 없는 사람들의 이름 및 업무를 출력
SELECT last_name, job_id
FROM employees
WHERER manager_id IS NULL;
4) 커미션을 받는 모든 사원들의 이름, 연봉 및 커미션을 출력
SELECT last_name, salary * 12 AS ANNSAL, COMMISSION_PCT
FROM employees
WHERE commission_pct IS NOT NULL
ORDER BY ANNSAL desc;
728x90
반응형
'언어 > SQL' 카테고리의 다른 글
SELECT (0) | 2022.06.13 |
---|---|
예명(Alias) (0) | 2022.06.13 |
[USER] USER 권한 설정 (0) | 2022.06.09 |
[USER] USER 생성/변경/삭제 (0) | 2022.06.09 |
SQL 종류 (0) | 2022.06.09 |