where 절 :
where 뒤에 조건을 두어 데이터와 반환 되는 행을 제한한다.
▶ 기본
select *
from table
where condition(s);
where 절을 from 다음에 온다
where 절에는 열 겂, 리터럴 값, 산술식 또는 함수를 비교 할 수 있다.
예시)
select employee_id , last_name, job_id
from employees
where department_id = 90;
사원번호, 이름, 직업 아이디를 select 할 껀데
사원테이블에서
부서아이디가 90인것들 중에
▶ where 절의 문자열 및 날짜 사용
select last_name, job_id, department_id
from employees
where last_name = 'Whalen' ;
이름, 직업아이디, 부서 아이디를 뽑아낼껀데
어디서? 사원테이블에서
이름이 'Whalen' 인 사람의
▶ 비교 조건을 조건문에 사용하여 제한을 둬도 된다.
연산자 | 의미 |
= | 같음 |
> | 보다 큼 |
>= | 크거나 같음 |
< | 보다 작음 |
<= | 작거나 같음 |
<> | 같지 않음 |
select *
from employees
where salary<=3000;
모든 열을 선택하여 보여줘라
어디서? 사원테이블에서
뭐가? 셀러리가 3000보다 작거나 같은 사람
▶ 다른 비교 조건
연산자 | 의미 | 사용 | 해설 |
between .. and ... | ...과 ... 사이의 값 | where salary between 2500 and 3500; | 2500과 3500 사이 |
in (set) | 값 목록 중의 값과 일치 | where manager_id in (100,101,201); | manager_id에 100,101,201이 있는 것 |
like | 문자패턴 일치 | where last_name like '%s-' | % , - : 패턴 일치 문자 |
is null | 널 값 | where manager_id is null; | 널 인것 / is not null : 널이 아닌 것 |
* 패턴 일치 문자 *
like 로 문자열 패턴이 일치한지 찾기 위해 % 와 _ 를 사용 해줄 수 있다.
% 는 와일드 카드로 % s % 이렇게 사용 한다면 어떤 글자에도 s 가 포함 되면 검색이 된다. ex) qwoerusrqweiuro
_s 이렇게 사용 되면 _ 하나당 문자를 뜻하여 is,as 와 같이 한문자(_) 다음에 s 가 오는 것만 찾을 수 있다.
%s_ 는 앞에 어떤 문자들이 오고 s 뒤에 _ 한 문자만 오면 검색이 된다.
아래 블로그에서 엄청 상세하게 작성 해주셨다
그런데 만약에 문자에 % 와 _ 이 사용 되면 어떻게 찾아야 하는걸까?
▶ 이걸 해결 하기 위해 ESCAPE 이라는 식별자를 사용 하여 자체 검색을 할 수 있다.
select *
from employees
where job_id like '%sa\_%' escape '\' ;
where 절 만 살펴보면, \를 탈츨 표식으로 사용 할 것이라는 뜻이다.
따라서 문자열을 비교하는 것을 \ 기준으로 사용하지 않고
_ 는 비교문자가 아닌 포함 문자로 검색 할 것이라는 것.
▶ 논리 조건
연산자 | 의미 | 사용 |
and | 구성 요소 조건이 모두 true 면 ture 를 반환 | where salary >= 10000 and job_id like '%man%' ; |
or | 구성 요소 조건 중 하나라도 true 면 ture를 반환 | where salary >= 10000 or job_id like '%man%' ; |
not | 뒤따르는 조건이 false 면 true 를 반환 | where manager_id not in (100,101,201); |
▶ 우선순위 규칙
순위가 높은 것 부터 낮은 순서대로. 괄호를 사용하여 조절 하여 사용 할 수 있다.
연산자 |
산술 연산자 |
산술 연산자 || |
비교 조건 |
is(not) null, like, (not) in |
(not) between |
not 논리 조건 |
and 논리 조건 |
or 논리 조건 |
'SQL' 카테고리의 다른 글
SQL 문법 _ 오라클 9i introduction 2장 문제 (0) | 2023.03.19 |
---|---|
SQL 문법 _ ③ order by (0) | 2023.03.19 |
SQL 문법 _ 오라클 9i introduction 1장 문제 (0) | 2023.03.14 |
SQL 문법 _ ① select (1) | 2023.03.14 |
RDBMS 관계형 데이터베이스 관리 시스템 (0) | 2023.03.14 |