언어/SQL

WHERE

asu2880 2022. 6. 13. 12:02

WHERE

SELECT, UPDATE, DELETE문 등에서 특정 레코드에 대한 조건을 설정할 때 사용되는 구문이다.
WHERE 구문 뒤에 조건 추가

🎓 단일 조건

-- 컬럼 ID가 1인 레코드 조건
SELECT * FROM Tab1
WHERE ID = 1
-- ID가 10 이하인 레코드들
SELECT * FROM Tab1
WHERE ID <= 10
-- ID가 10 이 아닌 모든 레코드들
SELECT * FROM Tab1
WHERE ID <> 10
-- 컬럼 NAME이 LEE인 레코드
SELECT * FROM Tab1
WHERE NAME = 'LEE'
-- NAME이 LEE가 아닌 레코드
SELECT * FROM Tab1
WHERE NAME <> 'LEE'
SELECT * FROM Orders
WHERE EmployeeID = 3;
SELECT * FROM OrderDetails 
WHERE Quantity < 5;

 

🎓 복수 조건

여러 개의 조건식을 WHERE절에서 표현할 경우는 조건식들을 AND나 OR로 연결한다.

-- 컬럼 ID가 1이상 10이하인 조건
SELECT * FROM Tab1
WHERE ID >= 1 
AND ID <= 10
-- QTY가 100이상이고 TOTAL값이 1000이상인 조건
SELECT * FROM Tab1
WHERE QTY >= 100
AND TOTAL >= 1000
-- CATEGORY가 VIP이거나 VVIP인 경우
SELECT * FROM Tab1
WHERE CATEGORY='VIP' 
OR CATEGORY='VVIP'
-- TYPE이 1 또는 2이고
-- 동시에 CITY가 SEOUL인 경우
SELECT * FROM Tab1
WHERE (TYPE=1 OR TYPE=2)
AND CITY='SEOUL'

 

🎓 WHERE : LIKE, IN, BETWEEN

WHERE CITY LIKE 'S%' 와 같이 쓰면, S로 시작되는 모든 CITY를 가리킨다.
WHERE CITY IN ('SEOUL', 'PUSAN', 'JEJU') 는 CITY가 서울,부산,제주인 경우를 나타낸다.
BETWEEN은 컬럼값이 BETWEEN...AND의 범위값에 든 경우를 나타낸다.

-- ZIP이 98으로 시작되는 조건
SELECT * FROM Tab1
WHERE ZIP LIKE '98%'
-- Category가 PC,NOTEBOOK,NETBOOK인 경우
SELECT * FROM Tab1
WHERE CATEGORY IN ('PC','NOTEBOOK','NETBOOK')
-- LastName이 Lee와 Park사이인 경우
SELECT * FROM Tab1
WHERE LastName BETWEEN 'Lee' AND 'Park'

 

🎓 WHERE : IS NULL

컬럼값이 널(NULL)인 경우를 체크하기 위해서는 IS NULL을 사용한다.
반대로 NULL이 아닌 경우는 IS NOT NULL을 사용한다.

-- SCORE컬럼값이 널인 경우
WHERE SCORE IS NULL
-- SCORE컬럼값이 널이 아닌 경우
WHERE SCORE IS NOT NULL

 

🎯 WHERE절에 사용될 수 있는 SELECT 연산자

BETWEEN a AND b a와 b사이의 데이터를 출력.(a, b값 포함)
IN (list) list의 값 중 어느 하나와 일치하는 데이터를 출력
LIKE 문자 형태로 일치하는 데이터를 출력(%, _사용)
IS NULL NULL값을 가진 데이터를 출력 합니다.
NOT BETWEEN a AND b a와 b사이에 있지않은 데이터를 출력(a, b값 포함하지 않음)
NOT IN (list) list의 값과 일치하지 않는 데이터를 출력
NOT LIKE 문자 형태와 일치하지 않는 데이터를 출력
IS NOT NULL NULL값을 갖지 않는 데이터를 출력

 

728x90
반응형

'언어 > SQL' 카테고리의 다른 글

GROUP BY / HAVING / DISTINCT / WITH ROLLUP  (0) 2022.06.13
ORDER BY  (0) 2022.06.13
SELECT  (0) 2022.06.13
예명(Alias)  (0) 2022.06.13
데이터 제한 및 정렬  (0) 2022.06.10