카테고리 없음

데이터 분석 공부 일지 1일차 20250421 (월)

elya0919 2025. 4. 23. 13:51

엑셀보다 쉽고 빠른 SQL - 1주차

오늘의 학습목표 = SQL강의 1주차를 모두 수강하고 SQL의 기초 습득

1-1

SQL은 무엇인가 ?

= 데이터베이스 명령을 내리기 위한 언어

1-2

설치, 테이블과 컬럼

- 학습을 위해 DBeaver를 설치 (DB 클라이언트 프로그램)

- MySQL과 연결 후 강의에서 제공하는 **연습용 데이터베이스** 연결

- 테이블이란 ? = 엑셀처럼 표 형태로 된 데이터베이스 안 형식, 로우와 컬럼으로 이루어져 있음

1-3

SELECT, FROM 그리고 *

SELECT ?

= 가져올 데이터를 선택

 

FROM ?

= 데이터를 가져올 테이블을 지정

* ?

= 모든 컬럼을 선택하겠다.

ex)

SELECT *

FROM food_orders

이 쿼리는 food_orders 테이블에서 전체 데이터를 가져온다.

*** 실습 ***

  1. payments 테이블 조회하기

SELECT *

FROM payments

2. customers 테이블 조회하기

SELECT *

FROM customers

1-4

필요한 항목 뽑아서 쓰기 + 별칭

== SELECT *은 모든 데이터를 가져오기 때문에

필요한 특정 항목만 불러오는게 가능

ex)

SELECT 컬럼1, 컬럼2

FROM 테이블

이런 구조를 가지고 있고

원하는 컬럼을 불러오고 그 컬럼에 별칭을 붙여 다른 이름으로 출력할 수 있는 2가지 방법

1. 컬럼 뒤 as를 붙이고 별칭 작성

2. 컬럼 뒤 한칸 띄어서 별칭 작성

** 한글, 특수문자가 들어가는 경우에는 "" 큰따옴표를 사용해야함 !

ex)

SELECT 컬럼1 as "음식점", 컬럼2 address

FROM 테이블

*** 실습 ***

1. 주문 (food_orders) 테이블에서 order_id, price, quantity 를 가져와서 ord_no, 가격, 수량 으로 별명

SELECT order_id as "ord_no", price as "가격", quantity as "수량"

FROM food_orders

2. 고객 (customers) 테이블에서 name, email 을 가져와서 이름, e-mail 으로 별명 지어주기

SELECT name as "이름", email as "e-mail"

FROM customers

 

1-5 where 필터

where은 테이블에 조건을 넣어서 특정 컬럼만 가지고 오는거

테이블에서 문자열이 있는 컬럼은 where절에 쓴다고 하면 ‘’ 작은따옴표 써야함

ex) 나이가 21살인 고객을 조회하라

SELECT * (컬럼 전체를)

FROM customers (customers 테이블에서 가져오고)

WHERE age = 21 ( 나이가 21살인 고객들만)

*** WHERE 절에 문자열이 들어간다면 '' 작은 따옴표 ***

ex) where gender = 'female'

*** 실습 ***

1.주문 (food_orders) 테이블에서 한국음식을 주문한 경우만 조회하기

SELECT *

FROM food_orders

where cuisine_type='Korean'

2.결제 (payments) 테이블에서 카드로 결제한 경우만 조회하기

SELECT *

FROM payments

WHERE pay_type = 'card'

1-6 비교연산자,BETWEEN, IN, LIKE

비교연산자

= 부등호

BETWEEN

= 사이 값 구하기

ex) WHERE age BETWEEN 20 and 30 = 20살 이상 30살 이하

IN

= 특정 값이 포함되어 있는지 **괄호 중요**

ex) WHERE age IN (6, 21) = 6살과 21살만 조회

LIKE

= 특정 값이 앞, 뒤, 중간에 포함 되어 있는지 '' 작은따옴표 중요

ex) WHERE restaurant_name LIKE 'b%' = b로 시작하는 식당이름

WHERE restaurant_name LIKE ' %b%' = 식당이름 중간에 b가 들어가는 식당이름

*** 실습 ***

1. 고객 (customers) 테이블에서 나이가 40세 이상인 객 조회하기

select *

from customers

where age >= 40

2. 주문 (food_orders) 테이블에서 주문 금액이 15,000원 미만인 고객 조회하기

select *

from food_orders

where price < 15000

3. 주문 (food_orders) 테이블에서 주문 금액이 20,000~30,000원 사이인 고객 조회하기

select *

from food_orders

where price between 20000 and 30000

4. 주문 (food_orders) 테이블에서 B 로 시작하는 상점의 주문 조회하기

select *

from food_orders

where restaurant_name like 'b%'

1-7 논리연산자

AND

= 모든 조건 만족하면

ex) WHERE age >= 20 and gender 'female' = 나이가 20살 이상인 여성

OR

= 둘 중 하나라도 맞다면

ex) WHERE age >= 20 or gender 'female' = 나이가 20살 이거나 여성

NOT

= 아닌거

ex) WHERE NOT gender 'female' = 여성이 아닌

*** 실습 ***

주문 (food_orders) 테이블에서 한국음식이면서, 가격이 30,000원 이상인 경우 조회

select *

from food_orders

where cuisine = 'Korean' and price >= 30000

결제 (payments) 테이블에서 카드로 결제했거나, vat 율이 0.2 이하인 경우 조회

select *

from payments

where pay_type = 'card' or vat <= 0.2

1-8 에러메시지

보통 에러코드 뒤 에러가 난 이유를 설명해줌

자주 만나는 에러메시지

  1. 테이블명 틀림
  2. 컬럼명 틀림
  3. 작은따옴표

막히면 구글링, 챗지피티 도움

1주차 숙제

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

select restaurant_name as "음식점", customer_id as "고객번호"

from food_orders

where

food_preparation_time between 20 and 30

and cuisine_type = 'Korean'