오늘은 “한 번에 끝내는 파이썬 웹 개발 초격차 패키지 Online” 의 파트 2의 SQL GROUP BY, JOIN을 듣고 정리해보았다. 참고로 이 포스팅은 공부용으로 강의 내용을 요약한 것으로 자세한 강의 내용은 위 링크를 참조 할 것.



아래는 공부 인증 사진.


2022-06-17-Python-Photo1

2022-06-17-Python-Photo2



04. SQL GROUP BY, JOIN

1. user 테이블 수정

  • 이전 실습에서 생성한 테이블을 아래와 같이 변경해보자.
email passwd gender age
appple@naver.com apple123 female 20
grape@naver.com grape123 male 41
peach@naver.com peach123 female 27
startcoding@naver.com startcoding123 male 30

내 풀이

DROP table user;
CREATE TABLE user (email text primary key, passwd text NOT NULL, gender text, age INTEGER);
INSERT INTO user (email, passwd, gender, age) VALUES('appple@naver.com', 'apple123', 'female', 20);
INSERT INTO user (email, passwd, gender, age) VALUES('grape@naver.com', 'grape123', 'male', 41);
INSERT INTO user (email, passwd, gender, age) VALUES('peach@naver.com', 'peach123', 'female', 27);
INSERT INTO user (email, passwd, gender, age) VALUES('startcoding@naver.com', 'startcoding123', 'male', 30);

강의 풀이

  • DROP으로 테이블 삭제
DROP table user;

  • UI를 통해 테이블 수정(Browse Data에서 수정할 수 있음)



2. post 테이블 수정

  • 이전 실습했던 post 테이블을 변경해보자.
id title content author
1 스타트코딩 강의 정말 재미있어요! appple@naver.com
2 돈버는코딩 코딩으로 돈을 쉽게 벌 수 있습니다. grape@naver.com
3 시간을 버는 코딩 코딩으로 시간을 벌 수 있습니다. peach@naver.com
4 startcoding은? 누구나 쉽게 코딩으로 돈과 시간을 벌 수 있게 만들어 드립니다. startcoding@naver.com
5 파이썬 배우는 애유 쉬우니까 startcoding@naver.com

내 풀이

DROP table post;
CREATE TABLE post (id integer primary key, title text NOT NULL, content text NOT NULL, author text NOT NULL);
INSERT INTO post (id, title, content, author) VALUES('1', '스타트코딩', '강의 정말 재미있어요!', 'appple@naver.com');
INSERT INTO post (id, title, content, author) VALUES('2', '돈버는코딩', '코딩으로 돈을 쉽게 벌 수 있습니다.', 'grape@naver.com');
INSERT INTO post (id, title, content, author) VALUES('3', '시간을 버는 코딩', '코딩으로 시간을 벌 수 있습니다.', 'peach@naver.com');
INSERT INTO post (id, title, content, author) VALUES('4', 'startcoding은?', '누구나 쉽게 코딩으로 돈과 시간을 벌 수 있게 만들어 드립니다.', 'startcoding@naver.com');
INSERT INTO post (id, title, content, author) VALUES('5', '파이썬 배우는 애유', '쉬우니까', 'startcoding@naver.com');

강의 해설

  • Database structure에서 컬럼(열) 및 컬럼의 데이터 타입을 수정한다.
  • Browse Data 탭에서 레코드(행)를 수정한다.



3. Group by

  • 그룹화해서 계산하는 명령
SELECT count(*) FROM 테이블명 GROUP BY 컬럼명;
SELECT gender, count(*) FROM user GROUP BY gender;
SELECT gender, avg(age) FROM user WHERE age > 20 GROUP BY gender;
  • Group by 명령어를 실습해보자.
SELECT gender , count(*) FROM user GROUP BY gender;
  • gender별로 user를 묶어서 카운트를 해주는 쿼리문

  • 실행 결과

gender count(*)
female 2
male 2
  • WHERE문으로 제약 조건을 설정할 수도 있다.
SELECT gender, avg(age) FROM user WHERE age > 20 GROUP BY gender;
  • 실행 결과
gender avg(age)
female 27.0
male 35.5

4. JOIN

  • 두 테이블을 묶어 조회할 때
SELECT * FROM 테이블명1 INNER JOIN 테이블명2 WHERE 조건;
SELECT * FROM post INNER JOIN user WHERE post.author = user.email;

  • post 테이블의 author와 user테이블의 email이 같을 때 테이블을 합친다.
id title content author email passwd gender age
1 스타트코딩 강의 정말 재미있어요! appple@naver.com appple@naver.com apple123 female 20
2 돈버는코딩 코딩으로 돈을 쉽게 벌 수 있습니다. grape@naver.com grape@naver.com grape123 male 41
3 시간을 버는 코딩 코딩으로 시간을 벌 수 있습니다. peach@naver.com peach@naver.com peach123 female 27
4 startcoding은? 누구나 쉽게 코딩으로 돈과 시간을 벌 수 있게 만들어 드립니다. startcoding@naver.com startcoding@naver.com startcoding123 male 30
5 파이썬 배우는 애유 쉬우니까 startcoding@naver.com startcoding@naver.com startcoding123 male 30

  • inner join은 , 로 대체할 수 있다.
SELECT * FROM post INNER JOIN user WHERE post.author = user.email;



이번 포스팅에서는 강의의 파트 2의 SQL GROUP BY, JOIN을 알아보았다. 다음 포스팅에서는 에 Python에서 SQLite 사용법에 대해 알아보도록 하자.


본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성되었습니다.



#패스트캠퍼스 #패캠챌린지 #직장인인강 #직장인자기계발 #패스트캠퍼스후기 #캐시백챌린지 #캐시백 #환급챌린지 #한번에끝내는파이썬웹개발초격차패키지Online