article thumbnail image
Published 2022. 9. 16. 17:47
728x90

항상 접속부터 시작하자!

<where절>

- 행을 제한하는 조건절(조건문/조건식)

 

규칙)

1. 조건문을 작성하자 => (where column 연산자 값)

2. 값 명시할때 문자/날짜일 경우 반드시  '  ' 붙여야한다.

3. 값을 명시할때 반드시 테이블에 저장된 데이터 형식 그대로(아스킬코드) 사용해야한다.(연산자'='때문에)

- from절 다음 위치

- 순서 : from절 -> where절 -> select list절

예제) 90번 부서에 근무하는 사원의 이름과 급여를 출력

select last_name, salary
from employees
where department_id = 90

예제 결과

●연산자

단일 비교 연산자(한 개의 값만 비교한다)

ex)

where hire_date = '01-JAN-95'

where salary>=6000

where last_name='Smith'

 

select last_name, salary*12 as annsal
from employees
where annsal > 5000
/

==> 순서상으로 where절이 select절보다 순서가 먼저기때문에 alias절을 사용 할 수 없다.

select last_name, salary*12 as annsal
from employees
where salary*12 > 5000
/

다른 예

select last_name
from employees
where salary*12 > 5000
/

==>  가능하다

 

●비교연산자

* between A and B : 두 값 사이(범위)

* in : =(같다)(복수)

* like : 일부만 알고 있을때

* is null : 널값을 알때

 

- between a and b

between a and b 예제 결과 화면

모든 데이터 타입(숫자, 문자, 날짜)에 사용가능하다

 

- in

in 예제 결과화면

- like

첫번째가 대문자 S인 사원을 찾아내라는 뜻

기호 설명
% 1개 이상의 문자
_ 문자 하나를 나타낸다

S로 시작 : 'S%'

S로 끝 : '%S'

S가 사이에 : '%S%'

'%o_' : 뒤에서 두번째 글자가 'o'인 것을 찾아라.

 

- is null

null값을 찾을 때 사용

is null 예제 결과 화면

● 논리 조건

where절에 조건문(col 연산자 값)이 추가 되었을때 사용

ex) did = 90 and 50(X)

did = 90 and did=50(O)

예제) 90번 부서에 근무하는 사원들 중에 급여가 5000 이상인 사원의 이름과 급여를 출력하세요

select last_name, salary
from employees
where department_id = 90 and salary>=5000
/

- and 연산자

and 연산자  예제 결과 화면

 

- or 연산자

or 연산자 예제 결과 화면

- not연산자

부정연산자

not 연산자 예제 결과화면

■  ORDER by 절

실행순서 : from절 -> where절 -> select절 -> order by절 순으로 실행한다.

 

order by 절에는 실행순서가 select list절 다음이므로 alis를 사용할 수있다

- select 절에 사용한 alias는 order by절에도 똑같이 쓰여야 한다.

 

성능을 많이 떨어 뜨리게 한다!

예제)

 

틀렷다

오답)

select last_name, department_id
from employees
where department_id = 20
or department_id = 50
order by department_id
/

* 복수연산자 in을 사용하여 코드 길이를 줄일 수 있다.

* department_id 는 숫자이므로 last_name으로 정렬한다.

정답)

select last_name, department_id
from employees
where department_id in (20,50)
order by last_name
/

PS. 에러가 발생할때 에러메세지를 잘보고 저장해놓자!

728x90
복사했습니다!