[SQL] 07. Logical Operators_ BETWEEN,IN,LIKE

hhyun·2024년 6월 5일

[SQL]

목록 보기
7/20

📖 Logical Operators

🌟 논리 연산자

AND : 조건을 모두 만족하는 경우 TRUE
OR : 하나의 조건이라도 만족하는 경우 TRUE
NOT : 조건을 만족하지 않는 경우 TRUE
BETWEEN : 조건값이 범위 사이에 있으면 TRUE
IN : 조건값이 목록에 있으면 TRUE
LIKE : 조건값이 패턴에 맞다면 TRUE


📖 BETWEEN

🌟 BETWEEN : 조건값이 범위 사이에 있으면 TRUE

SELECT column1, column2, ...
FROM tablename
WHERE condition1 BETWEEN value1 AND value2; 

🌟 BETWEEN 예제

• 나이가 20세에서 40세 사이의 data 검색

💡 비교연산자로도 가능 (age >= 30 AND age <= 40)
SELECT * 
FROM celeb
WHERE age BETWEEN 20 AND 40;
+----+--------+------------+------+------+-----------+------------+
| ID | NAME   | BIRTHDAY   | AGE  | SEX  | JOB_TITLE | AGENCY     |
+----+--------+------------+------+------+-----------+------------+
|  1 | 아이유 | 1993-05-16 |   29 | F    | 가수,배우 | EDAM엔터   |
|  2 | 이미주 | 1994-09-23 |   28 | F    | 가수      | 안테나     |
|  3 | 송강   | 1994-04-23 |   28 | M    | 배우      | 나무엑터스 |
|  7 | 이수현 | 1999-05-04 |   23 | F    | 가수      | YG         |
+----+--------+------------+------+------+-----------+------------+

📖 IN

🌟 IN : 조건값이 목록에 있으면 TRUE

SELECT column1, column2, ...
FROM tablename
WHERE column IN (value1,value2, ...); 

🌟 IN 예제

•나이가 28세, 48세 중 하나인 data 검색

💡 비교연산자로도 가능 (age = 28 OR age = 48)
SELECT * 
FROM celeb
WHERE age IN (28,48);

📖 LIKE

🌟 LIKE : 조건값이 패턴에 맞다면 TRUE

SELECT column1, column2, ...
FROM tablename
WHERE column LIKE pettern; 

🌟 pettern

SQL의미
A%A로 시작하는 문자열
%AA로 끝나는 문자열
%A%A를 포함한 문자열
_A%두번째 글자가 A인 문자열
A_%A로 시작하고 최소 2글자 이상인 문자열
A____%A로 시작하고 최소 5글자 이상인 문자열
A%BA로 시작해 B로 끝나는 문자열

🌟 LIKE 예제

• 영화배우와 텔런트를 병행하는 data 검색

SELECT * 
FROM celeb
WHERE job_title LIKE '%가수%' AND job_title LIKE '%배우%';
+----+--------+------------+------+------+-----------+----------+
| ID | NAME   | BIRTHDAY   | AGE  | SEX  | JOB_TITLE | AGENCY   |
+----+--------+------------+------+------+-----------+----------+
|  1 | 아이유 | 1993-05-16 |   29 | F    | 가수,배우 | EDAM엔터 |
+----+--------+------------+------+------+-----------+----------+

• 직업이 하나 이상인 연예인 중 배우 혹은 가수가 아닌 연예인 검색

SELECT * 
FROM celeb
WHERE job_title LIKE '%,%' 
AND NOT (job_title LIKE '%배우%' OR job_title LIKE '%가수%');
+----+--------+------------+------+------+-----------+--------+
| ID | NAME   | BIRTHDAY   | AGE  | SEX  | JOB_TITLE | AGENCY |
+----+--------+------------+------+------+-----------+--------+
|  5 | 유재석 | 1972-08-14 |   50 | M    | 개그맨,MC | 안테나 |
+----+--------+------------+------+------+-----------+--------+

0개의 댓글