SQL - WHERE
WHERE
FROM에서 선택된 TABLE에서 SELECT로 지정된 열을 어떤 조건을 통해 걸러낼 것인지 정하는 부분
생략하면 거르는 조건 없이 지정된 테이블에 지정된 열 전체가 출력된다.
아래의 표를 예시로 설명을 계속 하도록 하겠다.
비교 연산자
- =
Equal, 같을 경우1 2 3 4
SELECT * FROM STUDENT WHERE user='tom'; -- user가 tom인 행
- <> 혹은 !=
Not Equal, 같지 않은 경우1 2 3 4
SELECT * FROM STUDENT WHERE user!='tom'; -- user가 tom이 아닌 행
- >
Greater than, 클 경우1 2 3 4
SELECT * FROM STUDENT WHERE score>70; -- score가 70 초과인 행
- <
Less than, 작을 경우1 2 3 4
SELECT * FROM STUDENT WHERE score<70; -- score가 70 미만인 행
- >=
Greater than or equal to, 크거나 같을 경우1 2 3 4
SELECT * FROM STUDENT WHERE score>=70; -- score가 70 이상인 행
- <=
Less than equal to, 작거나 같을 경우1 2 3 4
SELECT * FROM STUDENT WHERE score<=70; -- score가 70 이하인 행
- Between …And
구간 사이에 있을 경우1 2 3 4
SELECT * FROM STUDENT WHERE score between 60 and 70; -- score가 60 이상 70 이하인 행
- IN
집합의 원소 중 하나인지 체크할 경우1 2 3 4
SELECT * FROM STUDENT WHERE user in ('tom','dave'); -- user에 tom 혹은 dave가 포함된 행
- IS (NOT) NULL
Null 인지 아닌지 체크할 경우1 2 3 4
SELECT * FROM STUDENT WHERE user is null; -- user가 null인 행
- LIKE
문자열의 패턴을 검사할 경우1 2 3 4
SELECT * FROM STUDENT WHERE user like '%e'; -- user의 끝 문자가 e인 행
논리 연산자
- AND
모든 조건이 만족할 경우1 2 3 4
SELECT * FROM STUDENT WHERE user like '%e' AND (score >= 80); -- user의 끝 문자가 e이면서 score가 80 이상인 행
- OR
하나 이상의 조건이 만족할 경우1 2 3 4
SELECT * FROM STUDENT WHERE (score <= 40) OR (score >= 80); -- score가 40 이하거나 80 이상인 행
- NOT
주어진 조건을 부정할 경우1 2 3 4
SELECT * FROM STUDENT WHERE score not between 60 and 70; -- score가 60 이상 70 이하가 아닌 행
※ 연산자의 우선순위
- 모든 비교 연산자는 동일한 우선 순위
- NOT
- AND
- OR
높은 순위의 연산자가 만족하면 결과가 그대로 확정된다.
참고자료
- 위키백과 - 데이터베이스
- 대학생 시절 강의 자료
- 데이터베이스, 이한출판사, 김경창 외 2명
This post is licensed under CC BY 4.0 by the author.