본문 바로가기
SQL/SQL 스터디

Where 파헤치기 - 문과생 SQL 독학 시리즈3

by davi_kr 2023. 4. 29.

목차

    반응형

    "Everything is available basically for free. You can learn anything you want for free." - Elon Musk의 인터뷰 중

    머스크의 말처럼 모두 무료로 접할 수 있고 무엇이든 할 수 있으니..

    무료로 접할 수 있는 정보들을 제게 맞게 최적화해서 정리해보려고 합니다.

     

    이 글에서는 WHERE를 어떻게 사용하는지 좀 더 자세히 알아보겠습니다.

    아래는 예시로 사용할 animals 테이블입니다.

    id name species age weight zoo_name
    1 Lucy 코끼리 10 5000 Dream Zoo
    2 Benny 펭귄 3 15 Happy Zoo
    3 Coco 고릴라 7 200 Dream Zoo
    4 Dori 인어공주 4 45 Ocean Park
    5 Elly 코끼리 12 5200 Happy Zoo

     

    where은 조건을 적는 곳으로 이해할 수 있는데, 이때 사용할 수 있는 연산자가 있습니다.

    1. SQL 연산자의 종류

     
    연산자 종류
    *, / 산술 연산자
    +, - 산술 연산자
    =, !=, ^=, <>, >, >=, <, <= 대소 비교 연산자
    IS (NOT) NULL, (NOT) LIKE, (NOT) IN 비교 연산자
    BETWEEN A AND B 범위 비교 연산자
    NOT 논리 연산자
    AND 논리 연산자
    OR 논리 연산자

    위에서부터 연산자 기준으로 조건 연산을 시작하며 ()로 묶어주면 위의 우선순위와는 별도로 먼저 수행을 합니다.

     

    아래는 위와 관련된 몇가지 예시입니다.

    2. 비교 연산자만 사용

    SELECT * 
    FROM animals 
    WHERE species = '코끼리';

     

    해석 > animals 테이블에서 species가 '코끼리'인 모든 데이터를 조회해줘

    결과)

    id name species age weight zoo_name
    1 Lucy 코끼리 10 5000 Dream Zoo
    5 Elly 코끼리 12 5200 Happy Zoo

     

    SELECT * 
    FROM animals 
    WHERE age > 5;

    해석 > animals 테이블에서 age가 5 초과인 모든 데이터를 조회해줘

    결과)

    id name species age weight zoo_name
    1 Lucy 코끼리 10 5000 Dream Zoo
    3 Coco 고릴라 7 200 Dream Zoo
    5 Elly 코끼리 12 5200 Happy Zoo

     

    SELECT * 
    FROM animals 
    WHERE zoo_name IN ('Dream Zoo', 'Happy Zoo');

    해석 > animals 테이블에서 zoo_name이 'Dream Zoo', 'Happy Zoo' 중 하나에 해당하면 모든 데이터를 조회해줘

    결과)

    id name species age weight zoo_name
    1 Lucy 코끼리 10 5000 Dream Zoo
    2 Benny 펭귄 3 15 Happy Zoo
    3 Coco 고릴라 7 200 Dream Zoo
    5 Elly 코끼리 12 5200 Happy Zoo

     

    3. 비교 연산자와 논리 연산자 사용

    SELECT * 
    FROM animals 
    WHERE age > 5 AND weight < 500;

    해석 > animals 테이블에서 age가 5 초과이고 weight가 500 미만인 모든 데이터를 조회해줘

    결과)

    id name species age weight zoo_name
    3 Coco 고릴라 7 200 Dream Zoo

     

    SELECT * 
    FROM animals 
    WHERE name LIKE '%B%' and age < 5;

    해석 > animals 테이블에서 name에 B를 포함하고 age는 5 미만인 모든 데이터를 조회해줘

    결과)

    id name species age weight zoo_name
    2 Benny 펭귄 3 15 Happy Zoo

    LIKE 뒤에 '%B%' 에서 %는 임의의 문자열을 의미합니다. 따라서 앞뒤에 B가 있는 경우, B를 포함하고 앞이나 뒤에는 어떤 글자가 와도 상관 없다는 의미가 됩니다.

     

    산술 연산자는 간단한 내용이라 별도로 예시를 들지는 않았습니다.

     

    4. 참고 문헌

    통계 교육원 SQL 강의: 데이터 분석을 위한 SQL 입문(2023) - https://sti.kostat.go.kr/coresti/site/main.do

    부스트코스 SQL 강의: 기초 데이터 분석을 위한 핵심 SQL - https://www.boostcourse.org/

    반응형

    댓글