데이터 분석/SQL

[ORACLE/SQL]WHERE 절의 이용

22rodnjf 2021. 4. 20. 23:53

SQL에서 SELECT와 FROM을 통해서 원하는 테이블의 원하는 값을 가져오는 방법에 대해서는 설명드렸습니다.

그럼 데이터를 가져오는 과정에서 원하는 조건의 값만 가져오려면 어떻게 해야 될까요

WHERE 절을 통해서 테이블 안에서 필요한 값만 가져오는 법을 설명드리겠습니다.


간단하게 설명하자면 SELECT / FROM / WHERE가 각각 하는 역할은 아래와 같습니다.

그럼 이 규칙에 맞춰서 아래 테이블의 데이터를 불러와 보겠습니다.


1. IN_DATE가 20210403 이하인 값만 불러오기

이렇게 입력할 경우 IN_DATE가 '20210403'보다 작은 모든 값을 불러오게 됩니다.

DATE 서식 IN_DATE를 작업할 수 있지만 보기 편하게 숫자 값으로 작업하였습니다.

SELECT *

FROM HOTEL_DATA

WHERE IN_DATE < '20210403'

아래와 같이 데이터가 불러와지게 됩니다.

2. DAVE와 WANG이라는 이름을 가진 사람을 불러오기

데이터를 불러오다 보면 하나의 데이터가 아닌 몇 개의 데이터를 불러와야 할 수 있습니다.

이럴 때는 IN 명령어를 사용할 수 있습니다.

SELECT *

FROM HOTEL_DATA

WHERE USER_NAME IN ('WANG','DAVE')

아래와 같이 불러와지게 됩니다.

3. 값의 범위를 지정해서 불러오기

IN_DATE의 범위를 지정해서 값을 불러올 수 있습니다.

20210403~20210408 안에 IN_DATE가 들어오는 값만 불러올 수도 있습니다.

SELECT *

FROM HOTEL_DATA

WHERE IN_DATE BETWEEN '20210403' AND '20210408'

아래와 같이 불러와지게 됩니다.

4. 유사한 값 불러오기

USER_ROOM_NO에서 10으로 나오는 값을 모두 불러오는 형태로도 쿼리를 구성할 수 있습니다.

아래와 같이 쿼리를 구성할 경우 USER_ROOM_NO에 10X 값이 나온다면 모두 불러와지게 됩니다.

SELECT *

FROM HOTEL_DATA

WHERE USER_ROOM_NO LIKE '10%'

아래와 같이 불러와지게 됩니다.


WHERE 절을 사용하게 될 경우 이와 같이 FROM으로 불러온 테이블을 정리해서 원하는 값만 추출할 수 있습니다.

데이터 테이블이 많아지게 되면 그만큼 WHERE 절에 다양한 추출 조건이 들어가게 됩니다.

기본적인 조건은 익숙해지는 것이 좋습니다.