본문 바로가기

항해99

23.08.03 항해 99 16기 개강준비과정 1일차 엑셀보다 쉬운 SQL 항해 1, 2주차

드디어 긴 항해의 시작이다

웹개발 강의를 들으면서 자신감이 조금 떨어진건 사실이다 

과연 내가 이 항해를 끝낼 수 있을까... 하지만 해보려한다 

늦은 나이의 도전이지만 힘내보길 바라며 1일차 일지를 써본다

 

오늘은 엑셀보다 쉬운 SQL에 대해 공부하였다

SQL 중 저장된 데이터에서 필요한 것을 불러오는 것에 대해 공부하였다

 

테이블 데이터가 담겨져 있는 표

 

필드 테이블안에 있는 목차

 

테이블 목록 보는 법 show tables 실행->SQL문 실행

 

선택하기 select () from ()

 

* 모든필드

 

조건 WHERE payment_method ='kakaopay' (조건 부분 ‘ ’=문자열이라는 뜻)

WHERE point >=5000 (5000점 이상)

WHERE course_title ='웹개발 종합반' and payment_method ='card'(앱개발 종합반 이면서, 결제수단 카드인 것)

 

같지 않다 !=

WHERE course_title !='웹개발 종합반' (웹개발 종합반 아닌것만 나옴)

 

범위 between

WHERE created_at BETWEEN '2020-07-13' and '2020-07-15' (20713일부터 20715일꺼 까지 나옴 다만 숫자는 ‘ ’ 안함)

 

포함 in

WHERE week in (1,3) (위크가 1, 3일인 것만 나오게)

 

패턴 like

WHERE email like '%daum.net' (daum.net 인것만 나오게, %는 앞에 뭐가 있든 중간에 뭐가있든 상관없다는 뜻)

WHERE email like 'a%t' (a로 시작해서 t로 끝나는 것)

 

limit 숫자 SELECT * FROM orders

                 WHERE payment_method ='kakaopay'

                 LIMIT 5 (원하는 개수의 줄만 보기)

 

DISTINCT SELECT DISTINCT(payment_method) from orders (중복되는거 제외하고 가지고오기)

 

COUNT 숫자세기 SELECT COUNT(*) from orders (orders에 있는 숫자)

                             WHERE payment_method ='KAKAOPAY' (kakaopay가 있는 숫자)

DISTINCT 와 COUNT 함께 SELECT count(DISTINCT(name)) FROM users (중복되는 성을 지우고 그 성이 몇 개인지)

 

GROUP BY 동일한 범주의 데이터를 묶어줌

 

서로 다른 성이 몇 개인지 보여줌 SELECT NAME, COUNT(*) FROM users

                                                    GROUP BY name (name으로 묶은 걸 count로 세줌)

 

min 최소값 SELECT week, min(likes) FROM checkins

                   group by week (week likes의 최소값)

 

max 최대값 SELECT week, max(likes) FROM checkins

                    group by week (week likes의 최대값)

 

avg 평균값 SELECT week, avg(likes) FROM checkins

                    group by week (week likes의 평균값)

 

                    SELECT week, round(avg(likes),2) FROM checkins

                    group by week (소수점 없애기 round 숫자는 소수점 자리수)

 

sum 합계 SELECT week, sum(likes) FROM checkins

                 group by week (likes 합계)

  

ORDER BY 깔끔하게 데이터 정리

 

서로 다른 성이 몇 개인지 보여줌 SELECT name, count(*) FROM users

                                                     group by name

                                                     order by COUNT(*) or asc (오름차순 정렬)

                                                     order by COUNT(*) desc (내림차순 정렬)

 

웹개발 종합반의 결제수단별 주문건수 세어보기 SELECT payment_method, COUNT(*) from orders

                                                                             WHERE course_title ='웹개발 종합반'

                                                                             group by payment_method

                                                                             order by COUNT(*)

 

gmail을 사용하는 성씨별 회원수 세어보기 SELECT name, COUNT(*) from users

                                                                     WHERE email like '%gmail.com'

                                                                     group by name

 

 

course_id 별 오늘의 다짐에 달린 평균 like 개수 구하기 SELECT course_id, avg(likes) from checkins

                                                                                          group by course_id

 

Alias 별칭

SELECT * FROM orders o order oo 라고 부르겠다

WHERE o.course_title ='앱개발 종합반' o.course_title order o 에 있는 o.course_title라는 의미

 

 

암기력이 좋지 않음으로 공부를 하면서 필요한 부분들을 정리해두었다

과연 이것이 나중에 도움이 될지는 모르겠지만.. 그래도 참고 할수 있을 것이라 생각한다

시작이 반이라고 남은 과정도 힘내보자!