본문 바로가기

데이터베이스/SQL & PL/SQL

[SQL] WHERE 절을 활용하자, AND · OR!!


지금까지 WHERE절을 접할때 단순한 연산자
즉, 기본 수식 연산자(+, -, /, * )와 비교연산자(=, < , >,<=,>=) 를 이용하여
쿼리에 조건을 부여할 수 있었는데, 이것들 말고도 다른 표현식들이 있습니다.

이를테면, 이번에 소개할 "AND"와 "OR"이 그것인데,
의미는 우리가 알고있는 영어식 표현과 동일합니다.

AND는 당연히 '그리고~' 라는 표현이 되겠고
OR은 '또는, 그렇지 않으면' 라는 표현으로 해석할 수 있겠습니다.

이것들을 이용해서 WHERE절에 한개 이상의 조건을 부여할 수 있는데,
다음 실습문을 통해서 차례대로 AND · OR 에 대해서 알아봅시다.
SELECT department_id, manager_id, first_name
FROM    hr.employees
WHERE  department_id=100
AND      manager_id=108;

위는 AND를 써서 부서아이디가 100 이고 매니저의 아이디가 108 두 조건을 만족하는 사원의 이름을 출력하는 쿼리입니다.
이렇게 AND를 사용한다고 하면 두가지 조건에 부합하는 결과가 조회됩니다.


OR도 같은 방식으로 쿼리를 작성하면 됩니다.
다만 조건을 이해할때 '또는'이라는 의미로 주어진 조건에 하나만 부합하면 된다는 것을 인식합시다.
SELECT department_id, first_name, salary
FROM hr.employees
WHERE department_id=100
OR department_id=110;

그렇다면 위의 쿼리는 부서아이디가 100 이거나(!) 110 이거나 둘중에 아무곳이나 속하기만 한다면 조건에 부합됩니다.
그러므로 결과는 다음과 같습니다.



위에 쿼리 등은 단순히 어떻게 쓰여지나를 보여주기 위해 작성한 것이였고,
AND나 OR을 여러번 기술해줌으로써 조건을 다양하게 표현할 수 있다는 것을 명심합시다.
이를테면 다음과 같습니다.

SELECT department_id, first_name, salary
FROM hr.employees
WHERE (department_id=100 AND salary>8000)
OR (department_id=110 AND salary>8000);

해석은 보는 이에게 맡기겠습니다.