※ 혼자 쓰는 개발 일지지만 누군가 보게 된다면
※ 저는 개발자가 아닌 마케터입니다
※ 개발 노베이스 비전공자
※ 주관 주의
※ 각종 용어 틀릴 수 있음 주의

스파르타 코딩클럽의
'[왕초보] 엑셀보다 쉬운, SQL'이라는 강의를 듣고 있고,
1주차 수강 완료.

이 강의를 그럼 왜 듣냐?
나는 이직에 필요한 SQLD 취득이 목표인데,
너무 의미를 못 찾겠어서,
SQLD 를 위한 강의는 아니지만
SQL 에 흥미를 붙여보고자 듣기 시작했다.

개발 일지는 뭔 지
어떻게 쓰는 지도 몰라서 서치해 봤다.
대충 위와 같은 것들이 있으면 좋다는데
업무에서 쓰는 게 아닌 강의 수강 중인 완전 생초보이기 때문에...
나는 당분간은

  1. 무엇을 했나
  2. 어떤 고민을 했나
  3. 무엇을 배웠나

이렇게 쓰는 걸로 시작해 보려고 한다.






1. 무엇을 했나

데이터베이스란? 여러 사람들이 같이 사용할 목적으로 데이터를 담는 통.

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주차에서는 SELECTWHERE 을 열심히 써 봤다.

머릿 속에서 떠오르는 것으로 적어보자면

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;







2. 어떤 고민을 했나

  • like= 의 차이
    어떤 것이 들어간 것을 찾아달라고 할 때(?)
    like 와 = 의 차이가 궁금했는데,
    = 는 완전히 일치해야 사용하는 것.
    like 는 그보다 유연하게 % 라든지 _ 을 사용함.
    지메일인 사람 찾을 때 %gmail.com 이런 식으로!
  • 에러가 났을 때 바로 답 보지 말고 생각해보기
    꽤 친절하게 어디서 에러가 났는지 알려주니까 뜯어보면서 고민해보기
    실제로 아래에서 에러가 났는데 고민에서 해결했다 (뿌듯)

👉 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

이렇게 셀렉트 뒤에 써야된다는 걸 깨달았다
내가 이해하기로는... 어쨋든 아래 쿼리대로 추출한 데이터의
전체 수를 세는 거니까? 맞길 바라며ㅎ.... 뽑긴 제대로 뽑았으니...







3. 무엇을 배웠나

개발자인 남편 (ㅎㅎ) 에게도 엄청 물어보며
전체적인 흐름? 흐름을 익힐 수 있었다.
AWS 같은 클라우드에 여러 DB 가 올라가 있고,
그걸 디비버, 데이터그립같은 툴?로 불러오는 거고.
음 근데 디비버, 데이터그립은 SQL 전용인 건가....?
다른 언어로는 못 쓰는 건가?
개발 일지에는 아무거나 주저리 주저리 쓰는 거라길래
진짜 주저리 주저리 쓰는 중 🤔

학교 다닐 때 경영과데이터베이스 (이하 경데베..ㅎ) 수업에서
교수님이 앞으로 이게 진짜 중요할 거라 하셨는데
직감은 했지만 마케터로서도 너무 맞닥뜨리니 후회가 되지만ㅎ
현업에서 지금이라도 열심히 하는 게 어디야 ~~
그럼 2주차 수업도 가보자고!!

🤭

profile
개발도 잘 하고 싶은 마케터

0개의 댓글