[SQL] Logical Operators

MJ·2024년 2월 5일

SQL

목록 보기
6/23

논리연산자

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



AND

SELECT col1 , col2
FROM table_name
WHERE condition1 AND condition2 AND condition3;



OR

AND 가 OR 보다 우선순위가 높음

SELECT col1 , col2
FROM table_name
WHERE condition1 OR condition2 OR condition3;
SELECT * 
FROM celeb 
WHERE (age<29 AND sex='F') OR (age >30 AND sex='M')
ORDER BY age;



NOT

SELECT col1, col2
FROM table_name
WHERE NOT condition1 ;
SELECT *
FROM celeb
WHERE NOT SEX = 'F';



BETWEEN

SELECT col1, col2
FROM table_name
WHERE col1 BETWEEN value1 AND value2 ;

생일이 1980년에서 1995년 사이가 아니면서 여자이거나, 소속사가 YG엔터테인먼트면서 나이가 20세에서 45세 사이가 아닌 데이터 검색
SELECT *
FROM celeb
WHERE (NOT BIRTHDAY BETWEEN 19800101 AND 19951231 AND SEX='F' )
   OR (AGENCY = 'YG엔터테인먼트' AND NOT AGE BETWEEN 20 AND 45);



IN

SELECT col1, col2
FROM table_name
WHERE col1 IN (value1, value2) ;

소속사가 나무엑터스 안테나 울림엔터테인먼트가 아니면서, 성별이 여자거나 나이가 45세 이상인 데이터 검색
SELECT *
FROM celeb
WHERE (NOT AGENCY IN ('나무엑터스','안테나','울림엔터테인먼트') AND (SEX = 'F' OR AGE >= 45);



LIKE

SELECT col1, col2
FROM table_name
WHERE col1 LIKE pattern;

직업명이 '가'로 시작하고 최소 5글자 이상인 데이터 검색
_ : 언더바는 글자 수 제한
% : 제한 없음, 앞이나 뒤에 글자가 없어도 되고 글자 수도 제한 없음
SELECT *
FROM celeb
WHERE JOB_TITLE LIKE '가____%';

탤런트와 영화배우를 병행하는 데이터 검색
SELECT *
FROM celeb
WHERE JOB_TITLE LIKE '%영화배우%' AND JOB_TITLE LIKE '%탤런트%';

0개의 댓글