Logical Operators

JERRY·2025년 2월 26일

SQL

목록 보기
7/18
post-thumbnail

1. 실습환경 만들기

  • 실습할 데이터 베이스로 이동 : zerobase 사용 (이동)
USE zerobase;

  • 실습할 테이블 정보 확인
DESC celeb;

  • 실습할 데이터 확인
SELECT *
FROM celeb;


2. Logical Operators

  • 논리 연산자

2-1 AND

  • AND 문법 : 조건을 모두 만족하는 경우 TRUE
SELECT column1, column2, ...
FROM tablename
WHERE condition1 AND condition2 ...;
  • AND 예제1 : 나이가 29세이고 성별이 여성인 데이터 검색
SELECT *
FROM celeb
WHERE age=29 AND sex='F';

  • AND 예제2 : 성별이 남자이고 나이가 40세 보다 큰 데이터를 이름의 역순으로 정렬하여 검색
SELECT *
FROM celeb
WHERE sex='M' AND age>40
ORDER BY name;

2-2 OR

  • OR 문법 : 하나의 조건이라도 만족하는 경우 TRUE
SELECT column1, column2, ...
FROM tablename
WHERE condition1 OR condition2 ...;
  • OR 예제1 : 나이가 25세보다 작거나 30세보다 큰 데이터 검색
SELECT *
FROM celeb
WHERE age<25 OR age>30
ORDER BY age;

  • OR 예제2 : 나이가 29세 보다 작고 여자이거나, 나이가 30세 보다 크고 남자인 데이터를 나이와 성별 순으로 정렬하여 검색
SELECT *
FROM celeb
WHERE (age<29 AND sex='F') OR (age>30 AND sex='M')
ORDER BY age, sex;

  • OR 예제3 : YG엔터테이먼트 소속이거나 나무엑터스 소속인 연예인 중, 나이가 30세 보다 작은 데이터를 검색
SELECT *
FROM celeb
WHERE (agency='YG엔터테이먼드' OR agency='나무엑터스') AND age<30;

2-3 NOT

  • NOT 문법 : 조건을 만족하지 경우 TRUE
SELECT column1, column2, ...
FROM tablename
WHERE NOT condition;
  • NOT 예제1 : 성별이 여자가 아닌 데이터 검색
SELECT *
FROM celeb
WHERE NOT sex='F';

  • NOT 예제2 : 소속사가 YG엔터테이먼트이면서 남자가 아니거나 직업이 가수이면서 소속사가 YG엔터테이먼트가 아닌 데이터 검색
SELECT *
FROM celeb
WHERE (agency='YG엔터테이먼트' AND NOT sex='M') 
OR (job_title='가수' AND NOT agency='YG엔터테이먼트');

  • NOT 예제3 : 생일이 1990년 이후이면서 여자가 아니거나, 생일이 1979년 이전이면서 소속사가 안테나가 아닌 데이터 검색
SELECT *
FROM celeb
WHERE (birthday > 19891231 AND NOT sex='F') 
OR (birthday < 19800101 AND NOT agency='안테나');

2-4 BETWEEN

  • BETWEEN 문법 : 조건값이 범위 사이에 있으면 TRUE
SELECT column1, column2, ...
FROM tablename
WHERE column1 BETWEEN value1 AND value2;
  • BETWEEN 예제1 : 나이가 20세에서 40세 사이의 데이터 검색
SELECT *
FROM celeb
WHERE age BETWEEN 20 AND 40;

  • BETWEEN 예제2 : 생년월일이 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);

2-5 IN

  • IN 문법 : 목록 안에 조건이 존재하는 경우 TRUE
SELECT column1, column2, ...
FROM tablename
WHERE column IN (value1, value2, ...);
  • IN 예제1 : 나이가 28세, 48세 중 하나인 데이터 검색
SELECT *
FROM celeb
WHERE age IN (28, 48);

SELECT *
FROM celeb
WHERE age=28 OR age=48;

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

2-6 LIKE

  • LIKE 문법 : 조건값이 패턴에 맞으면 TRUE
SELECT column1, column2, ...
FROM tablename
WHERE column LIKE pettern;
  • LIKE 예제1 : 소속사 이름이 ‘YG엔터테이먼트’ 인 데이터를 검색
SELECT *
FROM celeb
WHERE agency LIKE 'YG엔터테이먼트';

SELECT *
FROM celeb
WHERE agency='YG엔터테이먼트';

  • LIKE 예제2 : ‘YG’로 시작하는 소속사 이름을 가진 데이터를 검색
SELECT *
FROM celeb
WHERE agency LIKE 'YG%';

  • LIKE 예제3 : ‘엔터테이먼트’로 끝나는 소속사 이름을 가진 데이터를 검색
SELECT *
FROM celeb
WHERE agency LIKE '%엔터테이먼트';

  • LIKE 예제4 : 직업명에 ‘가수’가 포함된 데이터를 검색
SELECT *
FROM celeb
WHERE job_title LIKE '%가수%';

  • LIKE 예제5 : 소속사 이름의 두번째 글자가 G인 데이터를 검색
SELECT *
FROM celeb
WHERE agency LIKE '_G%';

  • LIKE 예제6 : 직업명이 ‘가' 로 시작하고 최소 2글자 이상인 데이터 검색
SELECT *
FROM celeb
WHERE job_title LIKE '가_%';

  • LIKE 예제7 : 직업명이 '가' 로 시작하고 최소 5글자 이상인 데이터 검색
SELECT *
FROM celeb
WHERE job_title LIKE '가____%';

  • LIKE 예제8 : 직업명이 ‘영'으로 시작하고 '모델’로 끝나는 데이터 검색
SELECT *
FROM celeb
WHERE job_title LIKE '영%모델';

  • LIKE 예제9 : 영화배우와 텔런트를 병행하는 연예인 검색
SELECT *
FROM celeb
WHERE job_title LIKE '%영화배우%'
AND job_title LIKE '%텔런트%;

  • LIKE 예제10 : 직업이 하나 이상인 연예인 중 영화배우 혹은 텔런트가 아닌 연예인 검색
SELECT *
FROM celeb
WHERE job_title LIKE '%,%'      
AND NOT (job_title LIKE '%영화배우% OR job_title LIKE '%텔런트%);

0개의 댓글