Programming/SQL

[SQL] 복잡한 데이터 검색 ( between / in / is null )

reeme 2020. 12. 16. 17:08

BETWEEN a AND b

: 검색 조건의 상한과 하한을 지정함

예) 속성 X 가 10 보다 크거나 같고 50 보다 작거나 같음

X>=10 AND X<=50
X BETWEEN 10 AND 50

예) 사원 테이블(employee)에서 봉급이 400 보다 크거나 같고 600 보다는 작거나 같은 사원들의 정보 검색

select * from employee where salary between 400 and 600;

IN(a,b,c...)

: 속성값이 a, b, c ,… 중 하나라도 일치하면 참
예) 속성 X 가 10 이거나 20 이거나 30 

X IN(10, 20, 30);

예) 직급이 ‘section’이거나 ‘senior’인 사원들의 이름과 직급 검색

select ename, job from employee where job in('section', 'senior');

IS NULL

사원 테이블(employee)에서 COMMISSION(속성명) 값이 NULL 인 튜플들을 검색하는 경우

만약에 COMMISSION = null 이라고 해본다고 가정. 

select * from employee where commission=null;

COMMISSION = null -> COMMISSION항목의 값이 null값이어도 결과를 도출해내지 못함

이럴경우 is null을 이용한다

select * from employee where commission is null;

 

null값이 아닌 튜플들을 찾는 방법

is not null을 사용함

예) commission의 값이 null이 아닌 튜플을 찾아라

select * from employee where commission is not null;