※ 혼자 쓰는 개발 일지지만 누군가 보게 된다면
※ 저는 개발자가 아닌 마케터입니다
※ 개발 노베이스 비전공자
※ 주관 주의
※ 각종 용어 틀릴 수 있음 주의
스파르타 코딩클럽의
'[왕초보] 엑셀보다 쉬운, SQL'이라는 강의를 듣고 있고,
1주차 수강 완료.
이 강의를 그럼 왜 듣냐?
나는 이직에 필요한 SQLD 취득이 목표인데,
너무 의미를 못 찾겠어서,
SQLD 를 위한 강의는 아니지만
SQL 에 흥미를 붙여보고자 듣기 시작했다.
개발 일지는 뭔 지
어떻게 쓰는 지도 몰라서 서치해 봤다.
대충 위와 같은 것들이 있으면 좋다는데
업무에서 쓰는 게 아닌 강의 수강 중인 완전 생초보이기 때문에...
나는 당분간은
- 무엇을 했나
- 어떤 고민을 했나
- 무엇을 배웠나
이렇게 쓰는 걸로 시작해 보려고 한다.
데이터베이스란? 여러 사람들이 같이 사용할 목적으로 데이터를 담는 통.
DBeaver
라는 프로그램을 설치 했다.
여기에서 강의에 이용되는 DB 를 불러 오고
쿼리를 작성해서 데이터를 추출하는 툴인 것 같다.
Datagrip
(?) 등 다른 유료 프로그램들도 있는 것 같다.
모든 DB 는 C (Create), R (Read), U (Update), D (Delete) 를 지원한다. 학부 때 경영과데이터베이스 수업에서 입으로만 외웠었다.
아무튼 이 강의는 R (Read) 에 대해서만 다룬다고.
SQL은? R (Read)를 편하게 만들어준다.
열심히 저장된 데이터를 잘 가져다 써야하니까.
- 1주차: Select, Where
👉 데이터를 불러오고 (Select), 조건에 맞게 필터링 하는 것 (Where)!- 2주차: Group by, Order by
👉 데이터를 범주에 따라 묶어서 통계치를 구하고 (Group by), 정렬하는 것 (Order by)!- 3주차: Join
👉 여러 데이터를 합쳐서 분석하기 (Join), 더 쉽고 깔끔하게 원하는 데이터를 얻기 (Subquery)- 4주차: Subquery, 그 외
👉 실전의 데이터는 생각보다 잘 정리되어 있지 않답니다! 데이터 분석을 위해서 데이터를 원하는 형태로 정리하는 방법을 배워요.
1주차에서는 SELECT
와 WHERE
을 열심히 써 봤다.
머릿 속에서 떠오르는 것으로 적어보자면
SELECT *(뽑아 올 거)
FROM 어쩌구(테이블)
WHERE (조건)
이런 형태다.
매끄러운 말로 바꾸자면
Select 쿼리문은 1) 어떤 테이블에서 2) 어떤 필드의 데이터를 가져올지로 구성되고, Where 절은, Select 쿼리문으로 가져올 데이터에 조건을 걸어주는 것을 의미한다고.
-- 예) orders 테이블에서 결제수단이 카카오페이인 데이터만 가져와줘!
select * from orders
where payment_method = "kakaopay";
orders
라는 테이블에서 결제 수단이 카카오페이인 데이터만 가져와 달라는 건데, 이런 식의 명령(?) 추출(?) 은 내가 앰플리튜드 에서 너무 너무 너무 자주 하는 것들이라 신기했다. 이걸 개발 언어(?)로는 이렇게 쓰는 거였군.
문자는 ' ' 따옴표를 이렇게 붙여주지 않으면 컬럼으로 인식하기 때문에 꼭 붙여줘야하고,
숫자는 붙이지 않아도 된다고.
-- 예)
select * from point_users
where point > 20000;
이렇게 보유 포인트를 뽑았는데 ㅎㅎ 이것도 너무 앰플리튜드에서 내가 추출하는 값들이라 익숙했다.. 하긴 커머스 다 이렇겠지.
이 외에
WEHRE 조건과 같이 사용하는 '문법' 들
=
같음
!=
같지 않음
BETWEEN ~ AND
범위
IN (a, b, ...)
포함
LIKE
패턴
중복 제거 distinct
-- ex) 결제 수단이 뭐 있나 궁금할 때
SELECT DISTINCT(payment_method) FROM orders;
-- 몇 개 인지 셀 때 count
select count(*) from orders;
-- 둘을 섞어서 ex) 성씨가 몇 개인지?
SELECT count(distinct(name)) from users;
like
와 =
의 차이👉 Gmail을 사용하는 2020/07/12~13에 가입한 유저의 수를 세기
이 문제에서
select * from users
where created_at between "2020-07-12" and "2020-07-14"
and email like "%gmail.com"
여기까진 잘 썼는데,
마지막으로 '유저의 수를 세기' 인 COUNT
를 어디다 써야하는지 모르겠더라.
email 앞에 써야되는 건가....??
그러다가 결국
select count(*) from users
이렇게 셀렉트 뒤에 써야된다는 걸 깨달았다
내가 이해하기로는... 어쨋든 아래 쿼리대로 추출한 데이터의
전체 수를 세는 거니까? 맞길 바라며ㅎ.... 뽑긴 제대로 뽑았으니...
개발자인 남편 (ㅎㅎ) 에게도 엄청 물어보며
전체적인 흐름? 흐름을 익힐 수 있었다.
AWS 같은 클라우드에 여러 DB 가 올라가 있고,
그걸 디비버, 데이터그립같은 툴?로 불러오는 거고.
음 근데 디비버, 데이터그립은 SQL 전용인 건가....?
다른 언어로는 못 쓰는 건가?
개발 일지에는 아무거나 주저리 주저리 쓰는 거라길래
진짜 주저리 주저리 쓰는 중 🤔
학교 다닐 때 경영과데이터베이스 (이하 경데베..ㅎ) 수업에서
교수님이 앞으로 이게 진짜 중요할 거라 하셨는데
직감은 했지만 마케터로서도 너무 맞닥뜨리니 후회가 되지만ㅎ
현업에서 지금이라도 열심히 하는 게 어디야 ~~
그럼 2주차 수업도 가보자고!!
🤭