들어가기에 전에 용어정리~!
1. 데이터베이스(Database) : 여러 사람에게 공유되어 사용될 목적을 가지고, 구조적인 방식으로 관리되는 데이터의 집합
2. 데이터 베이스 관리 시스템(DBMS: Database Management System) : 데이터를 정리하고 보관하기 위한 용도로 사용되며 체계적으로 관리
3. SQL : 데이터베이스에서 데이터를 읽고 쓰기 위한 언어
4. 데이터베이스 스키마 : DB에서 데이터의 구조, 데이터의 표현 방법, 데이터 간의 관계를 형식언어로 정의한 구조
1. DB에 저장되어 있는 고객 데이터를 바탕으로 DB 스키마 정리
w3schools에서 제공하는 Databse를 토대로 진행하려고 한다.
https://www.w3schools.com/sql/trysql.asp?filename=trysql_select_all
(1) DB 파악하기
Tablename을 누르면 각 테이블에 대한 속성과 행을 알 수 있다.
(2) Table 별로 정리를 하고 Primary key 정하기
기본 키(Primary key) : 테이블에서 행의 식별자로 이용
PK를 정하는 법은 테이블에서 겹치지 않고 고유한 값을 가지는 속성으로 정한다.
(3) Table 간의 관계를 설계
1:N 관계를 그릴 때 필수를 나타내는 기호는 |이고 N(다수) 을 나타내는 기호는 <이다.
여기서 O를 추가할 수 있는데 O는 Optional로 관계가 있을 수도 없을 수도를 나타낸다.
고객과 주문의 관계는 주문은 고객이 필수로 있어야 하기 때문에 |, 고객은 주문을 할 수도, 안 할 수도 있고 여러 번 할 수도 있다. 그러므로 O,<를 추가한다.
이와 같이 모든 테이블의 관계를 설계한다.
(앗,, 솔직히 스키마 정리가 이해 가지않는다...ㅎㅎㅠㅠㅠ)
2. SQL 만들어보기
(1) 특정 국가(USA)의 고객의 수
SELECT * FROM customers WHERE country LIKE 'usa%';
WHERE : 조건 절로 원하는 데이터만 추출
LIKE : 문자형 데이터로 입력되어 있는 테이블에서 데이터를 추출할 때 쓰이는 연산자
% : 와일드카드(문자열에서 특정한 문자 또는 문자들을 대체하기 위해 사용하는 문자)
결과 : 고객 91명 중 USA 고객은 13명이다.
(2) 20 이상의 가격을 가지고 있는 제품을 오름차순으로 추출
SELECT * FROM Products WHERE price>=20 ORDER BY price;
WHERE : 조건 절로 원하는 데이터만 추출
ORDER BY : 특정 열을 기준으로 오름차순 정렬
결과 : 가격이 20 이상인 제품은 77개 중 38개가 있다.
(3) 제품의 평균 가격
SELECT AVG(COALESCE(price,0)) AS price_avg FROM Products;
AVG : 행의 평균
COALESCE : NULL 값을 0으로 치환해 주는 함수
AS : 별칭
결과 : 제품의 평균 가격은 28.86이다.
이해가 될 듯 말 듯 해서 죽겠다...
데이터들을 이해하고 데이터 간의 연관성을 잘 알고 있다면 스키마 설계도 더 쉽게 할 수 있을 것 같다.
그리고 이 데이터들을 이용해 목표하는 지표 설정과 의미 있는 관계를 찾아내는 방법도 많이 공부해야 할 것 같다.
SQL 너무 어렵지만 결과가 짠하고 나타나면 재밌,,,,긴하다,,ㅎㅎㅎㅎ
하 공부해야 할 미래의 나 파이팅~!
ㅎㅎ,,,ㅜ
'Product manager' 카테고리의 다른 글
[코드스테이츠 PMB 6기] W6L1 스타벅스, 앱 서비스 분석 (0) | 2023.12.20 |
---|---|
[코드스테이츠 PMB 6기] W5L2 빅쿼리, SQL을 이용한 데이터 분석 (0) | 2023.10.12 |
[코드스테이츠 PMB 6기] 삼쩜삼, 세금 환급 무야호~ (0) | 2023.10.04 |
[코드스테이츠 PMB 6기] 포스타입, 넌 누구니,, (0) | 2023.09.22 |
[코드스테이츠 PMB 6기] 왓챠, 구독자 겟챠 (0) | 2023.09.21 |