SQL 부트캠프 (1) 기본구조

Chihuahua·2023년 12월 18일

이직 기간을 효율적으로 활용하기 위해 데이터 분석 부트캠프를 신청했다. 공부한 내용을 조금씩 정리해보려고 한다.


(0) 개요

  • SQL 문의 기본 구조
    • SQL 문이란 : DB 에서 데이터를 조회하기 위한 언어로,
      SQL 문법을 이용하여 DB에 명령을 내리는 것을 Query 한다고 합니다.
    • SQL 문의 기본 구조
      select # '데이터 조회' 의 명령어로 필수 구문
      from   # '어디에서 데이터를 조회할까' 의 명령어로 필수 구문 
      where  # 조건을 지정해주는 구문
    • 조건을 지정하는 방법
      • 비교연산자 : <, >, =, <>
      • 다양한 구문 : IN, BETWEEN, LIKE
      • 여러가지 조건의 적용 : AND, OR, NOT

(1) SQL 의 가장 기본구조인 SELECT 와 FROM의 개념

<Query 를 작성하기 전에 생각해 볼 사항>

  1. SQL 은 ‘코드’ 가 아니라 데이터베이스에 요청을 하기 위한 ‘언어’ 이므로, 작성 전에 어떤 요청을 할 지 생각해봐야 합니다.
  2. 가장 기본적인 사항은 ‘어느 테이블에서 데이터를 가져올까’ 입니다.


✔️ 실행 단축어: Ctrl + Enter

⬆️ 실행 테이블 예시


(2) 테이블에서 원하는 컬럼만 선택하는 방법을 배워봅시다

  • 1) 원하는 컬럼을 선택하기
    • 테이블의 모든 컬럼이 필요하지 않을 때, 필요한 것만 선택하여 조회 가능합니다.
    • 모든 것을 조회한다는 ‘*’ 대신에, 필요한 컬럼만 적어줍니다.

select 컬럼1, 컬럼2
from 테이블

  • 2) 컬럼에 별명(alias) 을 주기
    • 원하는 컬럼만 뽑았지만, 평소에 사용하는 명칭과 다를 때가 있습니다.
      이럴 때 컬럼 명에 별명을 지정하여 변경할 수 있습니다.
    • 별명 지정 방법 : 컬럼 옆쪽에 별명을 적어줍니다. (아래 두 가지 방법 모두 가능합니다)
  • 방법1(as) : 컬럼1 as nickname
  • 방법2(공백) : 컬럼2 "별명"

⬆️ 영문, 언더바는 그대로 적고 한글, 특수문자는 큰 따옴표 안에 적을 것


(3) 조건에 맞는 데이터만 필요할 때, SQL 로 필터링하기 (WHERE 이란)

  • 1) WHERE 절의 개념
    • 데이터 중에 특정 조건을 필터링 해야할 때가 있습니다.
      ’나이가 21살인 사람’ 과 같은 경우 엑셀 필터링을 한 경험이 있으실겁니다.
    • SQL 의 ‘WHERE’ 문법을 이용하면 전체 데이터 중 원하는 데이터만 필터링을 할 수 있습니다.
    • WHERE 의 구조

select *
from 테이블
where 필터링 조건 (eg. 20살 이상)

select *
from customers
where age=21

  • 필터링은 숫자가 아닌 문자에도 사용 가능합니다. 문자를 사용할 때는 작은 따옴표를 사용합니다. 고객 (customers) 테이블에서 여성을 필터링하면 아래와 같습니다.

select *
from customers
where gender='female'


(4) 필터링을 할 때 유용한 표현 알아보기 (비교연산, BETWEEN, IN, LIKE)

  1. 비교 연산자 사용 (<,=,> 등)
  2. 조건 문법 사용하기 (BETWEEN, IN, LIKE)
  • BETWEEM : A 와 B 사이
    • 기본 문법 : between a and b
    • 예시 : 나이가 10 과 20 사이
      where age between 10 and 20
  • IN : ‘포함’ 하는 조건 주기
    • 기본 문법 : in (A, B, C)
    • 예시1 : 나이가 15, 21, 31 세인 경우
      age in (15, 21, 31)
    • 예시2 : 음식 종류가 한식, 일식인 경우
         ```sql
         cuisine_type in ('Korean', 'Japanese')
         ```
      ⬆️ 형식이 Between, Like와 다르므로 주의해서 기억할 것
  • LIKE : 비슷한 값을 조건으로 주기
    1) 특정한 문자로 시작하는 경우
    예시 : ‘김’ 으로 시작하는 이름

name like '김%'

2) 특정한 문자를 포함하는 경우
예시 : 식당 이름에 ‘Next’ 를 포함하는 경우

restaurant_name like '%Next%'


(5) 예제

상품 준비시간이 20~30분 사이인, 한국음식점의 식당명과 고객번호 조회하기

Select restaurant_name as '식당명', customer_ID as '고객번호'
From food_orders
Where food_preparation_time between 20 and 30
and cuisine_type='Korean'

⬆️ 한국 음식점 조건 잊지말 것!


(6) 후기

테이블에서 원하는 컬럼을 필터 걸어서 불러오는 개념에 대해서 배웠다.
문제 풀이를 할 때 유의할 점은 중첩 필터를 사용할때 and를 사용해서 추가 나열하는 것을 잊지만 않으면 좋을 것 같다.

마음에 드는 주요 기능

  • in (A,B,C) ➡️ 엑셀에서 잘 보지 못한 기능이라 포함 연산이 흥미롭다.
  • like '%뭐뭐%' ➡️ 활용이 어려울 듯 싶다.
  • 별명 지을때 ➡️ "큰 따옴표"
  • 연산안의 한글 ➡️ '작은 따옴표'
profile
더 나은 세상을 향하는 길에 한 스푼 관심을 보태고 삽니다.

0개의 댓글