WHERE 조건을 만족하는 행만 질의하도록 제한
condition 열 이름, 표현식, 상수 및 비교 연산자로 구성
따라서, 기본 틀은
SELECT * or {[DISTINCT] column | expression [alias],...}
FROM table
[WHERE condition(s)];
연습하면서 알게된 것! 외우기
1. 빈 공백이 있으면 ""
2. 문자열,날짜, _ 가 있으면 ''
3. 숫자나 상수는 안해도됨
4. 중간에 어떤문자열을 포함한거 구하려면 LIKE '%어떤문자열%'
연산자 | 의미 |
---|---|
BETWEEN ... AND ... | 두 값 사이(지정한 값 포함) |
IN(set) | 값 목록 중의 값과 일치 |
LIKE | 문자 패턴 일치 |
IS NULL | 널 값 |
값이 목록에 있는지 확인할 수 있다.
모든 데이터 유형에 사용 가능.
select employee_id, last_name, salary, manager_id
from employees
where manager_id in (100,101,201);
''
사용select employee_id, last_name, salary, manager_id
from employees
where last_name in ('Hartstein', 'Vargas');
_
에는 문자가 하나만 올 수 있습니다._
는 _
당 문자 하나씩 와야한다.연습
%
와_
기호는 리터럴 문자를 결합할 때 사용된다.%
또는 _
자체를 검색할 수 있다.%
또는 _
문자가 포함된 경우 ESCAPE 옵션을 사용해서 이스케이프 문자를 지정한다.select employee_id, last_name, job_id
from employees
where job_id like 'SA\_%' escape '\';
ESCAPE 옵션은 백슬래쉬()를 이스케이프 문자로 식별한다. 그래서 이스케이프 문자가 밑줄_
앞에 있으므로 오라클 서버가 밑줄을 리터럴로 해석한다.연산자 | 의미 |
---|---|
AND | 구성 요소 조건이 모두 TRUE면 TRUE를 반환 |
OR | 구성 요소 조건 중 하나라도 TRUE면 TRUE를 반환 |
NOT | 뒤따르는 조건이 FALSE면 TRUE를 반환 |
... WHERE job_id NOT IN ('AC_ACCOUNT', 'AD_VP')
... WHERE job_id NOT BETWEEN 10000 AND 15000
... WHERE job_id NOT LIKE '%A%'
... WHERE commission_pct IS NOT NULL
괄호를 사용하여 기본 순서 무시하고 우선순위를 변경할 수 있다.
우선순위 예제
예제1)
select last_name, job_id, salary
from employees
where job_id = 'SA_REP'
or job_id = 'AD_PRES'
and salary > 15000;
예제에는 두가지 조건이 있다
AND
가 우선순위!따라서 'AD_PRES'(사장)이면서 급여가 $15,000을 넘는 사람 또는 'SA_REP'(영업사원)인 사람의 행들을 SELECT!
예제2)
select last_name, job_id, salary
from employees
where (job_id = 'SA_REP'
or job_id = 'AD_PRES')
and salary > 15000;
예제에는 두가지 조건이 있다
( )
가 우선순위!따라서 'AD_PRES'(사장)이거나 'SA_REP'(영업사원)인 사람이면서 급여가 $15,000을 넘는 사람의 행들을 SELECT!
ORDER BY를 사용해서 행을 정렬
ORDER BY 절은 SELECT문의 가장 끝 에 둔다.
정렬 조건으로 표현식, 별칭, 또는 열 위치를 지정할 수 있다.
데이터 기본 정렬
열 별칭을 기준으로 정렬
select employee_id, last_name, salary*12 annsal
from employees
order by annsal;