반응형
--4)IN 연산자
--특정 집합(컬럼 혹은 리스트)에서 특정 집합 혹은 리스트가 존재하는지 판단하는 연산자.
--(1)IN 연산자 문법
--SELECT *
--FROM TABLE_NAME
--WHERE COLUMN_NAME IN(VALUE1, VALUE2,...); --COLUMN_NAME이 가지고 있는 집합에서 VALUE1, VALUE2등의 값이 존재하는지 확인
--SELECT *
--FROM TABLE_NAME
--WHERE COLUMN_NAME IN
--(SELECT CULUMN_NAME2 FROM TABLE_NAME2); --COLUMN_NAME이 가지고 있는 집합에서 TABLE_NAME2테이블의 COLUMN_NAME2의 집합이 존재하는지 확인
select CUSTOMER_ID, RENTAL_ID, RETURN_DATE
from rental r
where CUSTOMER_ID in (1,2) --1 혹은 2
order by return_date desc;
--가독성, 알아보기 쉽다
--(DBMS 최적화기, SQL 최적화)옵티마이저의 특정상 IN조건이 성능상 유리할 때가 많다.
--OR의 사용
--IN연산자는 OR && = 과 같다
select CUSTOMER_ID, RENTAL_ID, RETURN_DATE
from rental r
where CUSTOMER_ID = 1
or CUSTOMER_ID = 2 --1혹은 2
order by return_date desc;
--(2)NOT IN의 사용
select CUSTOMER_ID, RENTAL_ID, RETURN_DATE
from rental r
where CUSTOMER_ID not in (1,2) --1 혹은 2가 아닌 다른 수 == 1과 2를 제외한 나머지 전부
order by return_date desc;
--NOT IN 은 AND와 같다
select CUSTOMER_ID, RENTAL_ID, RETURN_DATE
from rental r
where CUSTOMER_ID != 1
AND CUSTOMER_ID <> 2 --1 과 2가 아닌
order by return_date desc;
--(3)서브쿼리
select CUSTOMER_ID
from rental r
where
CAST(RETURN_DATE as DATE) = '2005-05-27'; --RETURN_DATE가 2005년 5월 27일인 CUSTOMER_ID를 출력
select FIRST_NAME, LAST_NAME
from customer
where customer_id IN( --RETURN_ID가 2005년 5월 27일인 CUSTOMER_ID의
select customer_id --FITST_DATE, LAST_DATE를 출력한다.
from rental r
where
CAST(RETURN_DATE as DATE)='2005-05-27');
반응형
'DataBase' 카테고리의 다른 글
[postgreSQL][데이터 필터링]LIKE연산자 (0) | 2021.09.13 |
---|---|
[postgreSQL][데이터 필터링]BETWEEN 연산자 (0) | 2021.09.13 |
[postgreSQL][데이터 필터링]FETCH절 (0) | 2021.09.13 |
[postgreSQL][데이터 필터링]LIMIT절 (0) | 2021.09.13 |
[postgreSQL][데이터 필터링]WHERE절 (0) | 2021.09.13 |
댓글