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

SQL 독학: 조건문과 필터링

by davi_kr 2023. 4. 22.

목차

    반응형

    SQLD 공부 및 데이터 분석을 하기 위해 DB에 있는 값들을 불러올 때, SQL을 많이 활용했습니다.

    이전에 독학하면서 공부했던 내용을 기록으로 남겨둡니다.

     

    WHERE 절
    WHERE 절은 SELECT, UPDATE, DELETE 문에서 특정 조건을 만족하는 데이터만 조회, 수정, 삭제하고자 할 때 사용합니다. 

     

    예시: customers 테이블에서 age가 18 이상인 고객 정보만 조회하는 쿼리입니다.

    SELECT *
    FROM customers
    WHERE age >= 18;

     

    1. 비교 연산자

    비교 연산자를 사용하여 특정 값과 컬럼 값을 비교해 필터링할 수 있습니다. 주요 비교 연산자는 다음과 같습니다.
    등호(=): 같음
    부등호(!= 또는 <>): 같지 않음
    작다(<), 크다(>), 작거나 같다(<=), 크거나 같다(>=)


    예시: products 테이블에서 가격이 10000원 이상인 상품만 조회합니다.

    SELECT *
    FROM products
    WHERE price >= 10000;

     

    2. 논리 연산자

    조건을 더 복잡하게 조합하려면 논리 연산자를 사용합니다. 주요 논리 연산자는 다음과 같습니다.
    AND: 두 조건이 모두 참일 때 참
    OR: 두 조건 중 하나 이상이 참일 때 참
    NOT: 조건이 참이면 거짓, 거짓이면 참


    예시 1: customers 테이블에서 age가 18 이상이고, city가 'Seoul'이거나 'Busan'인 고객 정보만 조회합니다.

    SELECT *
    FROM customers
    WHERE age >= 18 AND (city = 'Seoul' OR city = 'Busan');

     

    예시 2: customers 테이블에서 age가 18 미만이거나, city가 'Seoul'이 아닌 고객 정보만 조회합니다.

    SELECT *
    FROM customers
    WHERE age < 18 OR NOT (city = 'Seoul');

     

    예시 3: products 테이블에서 price가 10000 이상 50000 이하이며, category가 'Electronics'이거나 'Furniture'인 상품만 조회합니다.

    SELECT *
    FROM products
    WHERE (price BETWEEN 10000 AND 50000) AND (category = 'Electronics' OR category = 'Furniture');

     

    예시 4: customers 테이블에서 city가 'Seoul'이고, 전화번호가 없거나 이메일이 '@gmail.com'으로 끝나는 고객 정보만 조회합니다.

    SELECT *
    FROM customers
    WHERE city = 'Seoul' AND (phone_number IS NULL OR email LIKE '%@gmail.com');

     

    3. IN 연산자

    IN 연산자는 컬럼 값이 지정한 값들 중 하나와 일치하는지 확인할 때 사용합니다. (여러개 있으면 하나만 일치하면 됨)


    예시: products 테이블에서 category가 'Electronics', 'Furniture', 'Toys' 중 하나에 속하는 상품만 조회합니다.

    SELECT *
    FROM products
    WHERE category IN ('Electronics', 'Furniture', 'Toys');

     

    4. BETWEEN 연산자

    BETWEEN 연산자는 컬럼 값이 지정한 범위 내에 있는지 확인할 때 사용합니다.


    예시: products 테이블에서 가격이 10000원 이상 50000원 이하인 상품만 조회합니다.

    SELECT *
    FROM products
    WHERE price BETWEEN 10000 AND 50000;

     

    5. LIKE 연산자

    LIKE 연산자는 문자열 패턴 매칭에 사용되며, 와일드카드 문자를 사용하여 다양한 패턴을 표현할 수 있습니다. 주요 와일드카드 문자는 다음과 같습니다.
    %: 0개 이상의 임의의 문자를 나타냅니다.
    _: 임의의 단일 문자를 나타냅니다.


    예시: customers 테이블에서 이메일이 '@gmail.com'으로 끝나는 고객 정보만 조회합니다.

    SELECT *
    FROM customers
    WHERE email LIKE '%@gmail.com';

     

    6. NULL 값 다루기

    데이터베이스에서 NULL은 값이 없거나 알 수 없는 값을 나타냅니다. NULL 값을 필터링하려면 IS NULL 또는 IS NOT NULL을 사용해야 합니다.


    예시: customers 테이블에서 전화번호가 없는 고객 정보만 조회합니다.

    SELECT *
    FROM customers
    WHERE phone_number IS NULL;

     

     

    반응형

    댓글