일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- 키메라연구
- 빡빡이아저씨
- 초사회화
- 올가토카르추크
- 유발하라리
- 히치하이커를위한안내서
- 크리스퍼카스9
- 하이프머신
- 은하수를여행하는히치하이커
- 방랑자들
- 신체증강
- 호모데우스
- 분자생물학
- 북트레일러
- 해달책방
- 근위축증
- 책리뷰
- 애덤피오리
- 데이터보호
- 2018노벨문학상
- 관심경제
- 유전자가위
- Hypemachine
- 북튜버
- 뒤센형근위축증
- 신체설계자
- 스파르타코딩클럽
- 시난아랄
- 북리뷰
- 유튜버
- Today
- Total
해달책방
스파르타코딩클럽 SQL 개발일지 Day1 본문
● SQL(Structured Query Language)이란?
주문 데이터가 많아지면서 엑셀이 버거워지기 시작했을 때, SQL을 이용해보자!
여러 사람이 작업하다가 '엑셀 원본 열고 계신 분 누구실까요? 닫아주세요' 한 기억이 있는가?
SQL은 데이터베이스에 저장한 정보를 충돌없이 끌어와 분석가능하기 때문에 빠르고 오류가 없다.
분석해야 할 주문이 50만건 100만건이 넘어간다면 SQL은 필수!
스파르타 코딩클럽에서는 SQL의 4가지 기능 중 읽기(Read)에 집중!
C(create) / R(read) / U(update) / D(delete)
● 1주차 핵심 명령어 select* from where 테이블명
자세한 내용은 스파르타 코딩클럽 강의를 들으면 알 수 있어서,
강의 중에 헷갈렸던 코드를 분석해보려고 함
select * from users
where email like '%gmail.com'
보통 '문자' 코드 앞에는 = 가 붙지만 테이블명 like 뒤에는 붙지 않음
select email from users
where created_at between '2020-07-12' and '2020-07-14'
and email like '%@gmail.com'
2020년 7월 12일부터 2020년 7월 13일에 가입하고
이메일이 gmail.com인 사람의 주문데이터 중 email만 보이게 하라는 의미
13일까지인데 14일로 끝을 낸 이유는 14시 00분으로 설정해야 13시 59분까지의 데이터가 나오기 때문
select count(email) from users
where created_at between '2020-07-12' and '2020-07-14'
and email like '%@gmail.com'
2020년 7월 12일부터 2020년 7월 13일에 가입하고
이메일이 gmail.com인 사람의 주문데이터 중 gmail.com의 갯수를 세는 명령
select count(*) from users
where created_at between '2020-07-12' and '2020-07-14'
and email like '%@gmail.com'
라고 쓰는게 정석인 듯
select * from orders
where email like '%@naver.com'
and course_title ='웹개발 종합반' and payment_method ='kakaopay'
이메일이 naver.com이면서
웹개발 종합반을 듣고 kakaopay로 결제한 주문 불러오기
select * from checkins
where week in (2,3)
checkins 테이블에서 week필드 중 2,3주차인 건들만 포함하기
select * from orders
where payment_method = 'kaokaopay'
limit 5
orders 테이블에 행이 너무 많아서 버벅일 경우
5행만 예시로 어떻게 생긴 테이블인가 보고 싶을 때 limit 5라고 씀
select * from orders
where payment_method != 'kaokaopay'
orders 테이블에서 카카오페이가 아닌 결제수단만 불러오기
!= 는 아니다 라는 뜻
select distinct(payment_method) from orders
orders테이블의 payment_method 필드에 있는 여러 결제수단 e.g) kakaopay, CARD, cash, taxbill 등 여러 txt의 중복을 제거하고 각각 하나씩만 볼 수 있도록 distinct(필드) 쿼리 입력
select count(*) from orders
orders의 행(주문 수)을 세어줌
count(*) 이용 = 286개
select count(*) from orders
where payment_method = 'kakaopay'
orders 테이블의 전체 주문 수 286개 중 kakaopay 결제로 한 주문은 50여개
select count(distinct(name)) from users
users 테이블에서 이름의 중복을 제거한 겹치지 않는 이름의 총 갯수 count
생각보다 어렵지 않다
다만 우리회사에 데이터베이스의 환경이 따라갈 수 있으려나 걱정이 될 따름...