연산자 | 의미 |
---|---|
AND | 조건을 모두 만족하는 경우 TRUE |
OR | 하나의 조건이라도 만족하는 경우 TRUE |
NOT | 조건을 만족하지 않는 경우 TRUE |
BETWEEN | 조건값이 범위 사이에 있으면 TRUE |
IN | 조건값이 목록에 있으면 TRUE |
LIKE | 조건값이 패턴에 맞으면 TRUE |
논리 연산자 중 AND
, OR
, NOT
은 여기를 클릭하면 더 자세히 알 수 있다.
BETWEEN 문법
SELECT column1, column2, ... FROM tablename WHERE column1 BETWEEN value1 AND value2;
Example 1: 나이가 25세에서 31세 사이의 데이터 검색하기
SELECT * FROM family
WHERE age BETWEEN 25 AND 31;
똑같은 결과값을 가져오는 다른 query문은 다음과 같다.
SELECT * FROM celeb WHERE age>=25 AND age<=31;
Example 2: 생년월일이 1990년에서 2000년 사이가 아니면서 여자인 데이터 검색하기
SELECT * FROM family
WHERE (NOT birthday BETWEEN 19900101 AND 20001231) AND sex='F';
IN 문법
SELECT column1, column2, ... FROM tablename WHERE column IN (value1, value2, ...);
Example 1: 나이가 30세, 54세 중 하나인 데이터 검색하기
SELECT * FROM family
WHERE age IN (30, 54);
나이가 30세, 54세 중 하나인 데이터이기에 IN
문법 말고도 OR
문법을 써도 결과 값은 같다.
SELECT * FROM family WHERE age=30 OR age=54;
LIKE 문법
SELECT column1, column2, ... FROM tablename WHERE column LIKE pattern;
Example 1: 직업이 '직장인'인 데이터 검색하기
SELECT * FROM family
WHERE occupation LIKE '직장인';
참고:아래 문제풀이를 보면 해당 문제는 LIKE와 같은 결과값을 가져온다.
SELECT * FROM family WHERE occupation='직장인';
Example 2: '직'으로 시작하는
직업을 가진 데이터 검색하기
SELECT * FROM family
WHERE occupation LIKE '직%';
문자열 내에서
%(percentage)
를 사용하면 개수에 관계없이모든 문자
를 의미한다.
Example 3: 장인'으로 끝나는
직업을 가진 데이터 검색하기
SELECT * FROM family
WHERE occupation LIKE '%장인';
Example 4: 직업명에 '직장인'이 포함된
데이터 검색하기
SELECT * FROM family
WHERE occupation LIKE '%직장인%';
이 예시에서
00이 포함된
은00의 앞과 뒤
에 문자가 포함될 수 있다는 의미한다.
Example 5: 직업명의 두번째 글자가 '장'인 데이터 검색하기
SELECT * FROM family
WHERE occupation LIKE '_장%';
문자열 내에서 _(underscore)를 사용하면 문자 상관없이
하나의 문자
만을 의미한다.
Example 6: 직업명이 '직'로 시작하고 최소 2글자 이상
인 데이터 검색하기
SELECT * FROM family
WHERE occupation LIKE '직_%';
Example 7: 직업명이 '직'으로 시작하고 '인'로 끝나는 데이터 검색하기
SELECT * FROM family
WHERE occupation LIKE '직%인';