연산자 | 의미 |
---|---|
AND | 조건을 모두 만족하는 경우 TRUE |
OR | 하나의 조건이라도 만족하는 경우 TRUE |
NOT | 조건을 만족하지 않는 경우 TRUE |
BETWEEN | 조건값이 범위 사이에 있으면 TRUE |
IN | 조건값이 목록에 있으면 TRUE |
LIKE | 조건값이 패턴에 맞으면 TRUE |
AND 문법
SELECT column1, column2, ... FROM tablename WHERE condition1 AND condition2 AND condition3 ...;
- 여러 조건을 모두 만족해야 True
- 하나의 조건이라도 만족하지 못한다면 False
Example 1: 나이가 40세이고 성별이 남자인 데이터 검색하기
SELECT * FROM family
WHERE age=40 AND sex='M';
Example 2: 성별이 여자이고 나이가 25세 보다 큰 데이터를 이름의 역순으로 정렬하여 검색하기
SELECT * FROM family
WHERE sex='F' AND age>25
ORDER BY name DESC;
OR 문법
SELECT column1, column2, ... FROM tablename WHERE condition1 or condition2 or condition3 ...;
Example 1: 나이가 30세보다 작거나 40세보다 큰 데이터 검색하기
SELECT * FROM family
WHERE age<30 or age>40
ORDER BY age;
Example 2: 나이가 28세보다 작고 여자이거나, 나이가 40세 보다 크고 남자인 데이터를 나이와 성별 순으로 정렬하여 검색하기
1) 나이가 28세보다 작고 여자인 데이터 검색하기
SELECT * FROM family
WHERE age<28 AND sex='F';
2) 나이가 40세 보다 크고 남자인 데이터 검색하기
SELECT * FROM family
WHERE age>40 AND sex='M';
3) 나이가 28세보다 작고 여자이거나, 나이가 40세 보다 크고 남자인 데이터 검색하기
SELECT * FROM family
WHERE (age<28 AND sex='F') or (age>40 AND sex='M');
4) 나이가 29세보다 작고 여자이거나, 나이가 30세 보다 크고 남자인 데이터를 나이와 성별 순으로 정렬하여 검색하기
SELECT * FROM family
WHERE (age<28 AND sex='F') or (age>40 AND sex='M')
ORDER BY age, sex;
AND
와OR
연산자를 같이 쓸 경우,AND
의 우선순위가 높기 때문에AND
조건이 먼저 처리되기에괄호( )
가 필요는 없지만 가독성을 높이기 위해서 괄호( )를 넣는게 좋다.- 한가지 주의할 점은 OR문에 괄호( )를 안치면 AND문이 우선순위이기에 문제와 다른 결과값이 나올 수 있으니 꼭 ( )를 써야한다.
NOT 문법
SELECT column1, column2, ... FROM tablename WHERE NOT condition;
Example 1: 성별이 남자가 아닌 데이터 검색하기
SELECT * FROM family
WHERE NOT sex='M';