3. WHERE절을 이용한 데이터 필터링 (논리연산자)
- AND, OR, NOT, IN
(1) AND, OR
EX.1 AND
SELECT product_id, product_price, product_name
FROM Products
WHERE vendor_id = 'S001' AND product_price <= 500 ;
* Products 테이블에서 product_id, product_price, product_name 필드를 가져온다.
단, vendor_id가 S001 이고 product_price가 500 이하인 것에 한한다.
* AND로 연결된 두 조건을 모두 만족하는 레코드만 가져온다.
EX.2 OR
SELECT product_id, product_price, product_name
FROM Products
WHERE vendor_id = 'S001' OR product_price <= 500 ;
* Products 테이블에서 product_id, product_price, product_name 필드를 가져온다.
단, vendor_id가 S001 이거나 product_price가 500 이하인 것에 한한다.
* OR로 연결된 두 조건 중 하나라도 만족하는 레코드는 다 가져온다.
EX.3 AND와 OR의 우선순위
SELECT product_price, product_name
FROM Products
WHERE vendor_id = 'S001' OR vendor_id = 'S002' AND product_price <= 500 ;
* Products 테이블에서 product_id, product_price, product_name 필드를 가져온다.
단, [vendor_id가 S001] 이거나 [vendor_id가 S002 이고 product_price가 500 이하인] 것에 한한다.
* 일반적으로 AND와 OR 연산자의 경우 괄호( )로 묶여있지 않을 경우 AND 연산자를 먼저 처리한다.
따라서 [vendor_id가 S001 이거나 vendor_id가 S002] 이고 [product_price가 500 이하]인 레코드로 필터링을
하기 위해서는 괄호로 우선 처리될 조건들을 묶어주어야 한다.
EX.4 괄호로 묶어서 우선순위 지정
SELECT product_price, product_name
FROM Products
WHERE (vendor_id = 'S001' OR vendor_id = 'S002') AND product_price <= 500 ;
* Products 테이블에서 product_id, product_price, product_name 필드를 가져온다.
단, [vendor_id가 S001 이거나 vendor_id가 S002] 이고 [product_price가 500 이하]인 것에 한한다.
'Database > SQL' 카테고리의 다른 글
6. SQL SELECT문 - 5.와일드카드를 이용한 필터링 (0) | 2019.03.25 |
---|---|
5. SQL SELECT문 - 4.WHERE절을 이용한 데이터 필터링 (IN. NOT) (0) | 2019.03.25 |
3. SQL SELECT문 - 2.WHERE절을 이용한 데이터 필터링 (연산자) (0) | 2019.03.25 |
2. SQL SELECT문 - 1.기본 (0) | 2019.03.24 |
1. Database 용어정리 (0) | 2019.03.24 |