🔴🟠
in ( ) : 원하는 특정 집합을 찾는 조건문
( = where - or - )
not in ( ) : 원하는 특정 집합을 제외하고 찾는 조건문
select *
from
customer
where
first_name
in
(Jennifer, John)
;
=> customer 테이블에서, first_name 컬럼에서
'Jennifer' 혹은 'John'이라는 결과값을 만족하는 모든 row (*) 를 반출한다.
위의 쿼리는 하기 쿼리와 동일하다.
select *
from
customer
where
first_name = 'Jennifer"
or
first_name = 'John'
;
부정으로 사용하는 경우는 다음과 같다.
select *
from
customer
where
first_name
not in
(Jennifer, John)
;
=> customer 테이블에서, first_name 컬럼에서
'Jennifer' 혹은 'John'을 제외한 모든 row (*) 를 반출한다.
between - and - : 특정 범위 안의 집합 출력
not between - and - : 특정 범위를 포함하지 않는 집합 출력
select *
from
customer
where
customer_id
between
1 and 100
;
=> customer 테이블에서 customer_id가 1~100 사이인 모든 컬럼(*)을 반출한다.
select *
from
customer
where
customer_id
not between
1 and 100
;
=> customer 테이블에서 customer_id가
1~100 사이인 것을 제외한 모든 컬럼(*)을 반출한다.
* between - and와 함께 자주 쓰이는, 날짜 표현
cast( - as date) : 데이터 타입을 'date'로 변환
to-char( - as YYYY-MM-DD) : number/date 타입을 character 타입으로 변환
- 두 함수의 성격은 약간 다르나, 두 가지 다 날짜 변환에 사용할 수 있다.
select
customer_id
from
payment
where
cast (payment_date as date)
between
'2007-02-07' and '2007-02-15'
;
=> ① timestamp 형태의 payment_date 컬럼을 date로 변환한다.
② date로 변환된 payment_date 컬럼에서 '2007-02-07'~'2007-02-15' 사이의
payment 테이블의 customer_id를 출력한다.
select
customer_id
from
payment
where
to-char (payment_date as YYYY-MM-DD)
between
'2007-02-07' and '2007-02-15'
;
=> ① timestamp 형태의 payment_date 컬럼을 YYYY-MM-DD 형태의 문자열로 변환한다.
② YYYY-MM-DD 형태로 변환된 payment_date 컬럼에서
'2007-02-07'~'2007-02-15' 사이의 payment 테이블의 customer_id를 출력한다.
오늘도 열심히군요! 스터디에서 SQL 강의 해주실 의향 있으신가요?