251117 TIL : SQL로 데이터를 한 번 뽑아보자

| 강의명 : 엑셀보다 쉽고 빠른 SQL

1강. 데이터 조회하기

SQL란 데이터베이스와 대화하기 위한 '일종의 언어' = Query

  1. DBeaver 설치하기 (Window / Mac)
    https://dbeaver.io/download/

데이터베이스는 쉽게 말해 '데이터가 저장되어있는 큰 폴더'이다

  1. 테이블 > 컬럼(필드) 개념
  • 데이터의 세로 열: 테이블에서 각 행(레코드)에 포함되는 특정 속성의 데이터를 저장하는 세로 부분을 말합니다.
  • 다른 용어: '속성(attribute)'이나 '필드'라고도 불리며, 종종 혼용됩니다.
  • 구조: 데이터 테이블은 행(Row)과 열(Column)로 구성되며, 각 행은 하나의 개별 레코드(Record)를 나타냅니다.

(기타 의미)

  • 기고글: 신문·잡지 등에서 특정 주제에 대한 저자의 의견을 담은 글을 의미합니다.
  • 표기: '칼럼'으로 표기하는 것이 표준어입니다.
  • 기둥: 영어 'column'의 원래 뜻으로, 건물 등의 기둥을 의미하기도 합니다
  1. 데이터 불러오기 실습

모든 Query 는 이래의 구조를 갖는다.
select *
from food_orders

데이터 불러오기 단축키
ctrl + enter

본 명령어 한 눈에 보기

  • SELECT : 데이터를 가져오는 기본 명령어로, 데이터를 조회하는 모든 Query 에 사용됨
  • FROM : 데이터를 가져올 테이블을 특정해주는 문법
  • *: 모든 컬럼을 가져와준다는 의미
  1. 원하는 컬럼을 불러오기

ex)
select restaurant_name, addr
from food_orders

  1. 컬럼에 별명(alias) 주기 > 내가 보기 편하도록
  • 방법1 : 컬럼1 as 별명1
  • 방법2 : 컬럼2 별명2

cf. 별명 작성시 유의사항

영문, 언더바 -> 별명만 적음
특수문자, 띄어쓰기, 한글 -> "별명"으로, 큰 따옴표 안에 적음

  1. 조건에 맞는 데이터로 필터링하기

select *
from customers
where age=21

  1. 같음, 큼, 작음 등의 조건을 지정해보기

select *
from customers
where age<21

  1. 다양한 조건의 종류 (BETWEEN, IN, LIKE)

나이가 10 과 20 사이
where age between 10 and 20

나이가 15, 21, 31 세인 경우
where age in (15, 21, 31)

‘김’ 으로 시작하는 이름
where name like '김%'

‘임’ 으로 끝나는 이름
where name like '%임'**

식당 이름에 ‘Next’ 를 포함하는 경우
where restaurant name like '%Next%'

  1. 여러 조건을 필터링에 적용할 때 논리연산자 사용하기

    나이가 20세 이상이거나, 여성
    select *
    from customers
    where age>20 or gender=’female’

    select *
    from customers
    where age>=21
    and gender = 'male'

  1. 전문가도 자주 보기 때문에 에러메세지에 당황하지 마라.

일반적인 SQL의 에러문은 아래와 같이 나온다.

>>>1강 실습 문제

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

A1. select restaurant_name, customer_id
from food_orders
where food_preparation_time between 20 and 30
(오답)

A2. select restaurant_name, customer_id
from food_orders
where food_preparation_time between 20 and 30 and cuisine_type='korean'
(정답)

오답노트 : 한국음식점을 필터링하는 조건을 적지 않음. 조회한 값에 한국식당인지 여부가 보이지는 않기 때문에, 놓치기 쉽다. 데이터분석가는 진짜 꼼꼼해야 하겠구나...

0개의 댓글