
3주차가 시작되는 오늘, 드디어 파이썬을 학습하기 시작했다. SQL과 마찬가지로 이름만 들어봤지 실행해보는 것은 처음이라서 프로그램 설치부터 굉장히 헷갈렸다. 설치를 완료하고, 첫 파이썬 코드를 작성해서 실행해봤다. 제대로 잘 동작하는 듯하여 한시름 마음을 덜어 놓았다.
한 편으로는 SQL을 아직 끝마치지 못했는데, 파이썬을 공부해도 될까 걱정되기 시작했다. 이러나저러나 최선을 다할 뿐이지만, 걱정이 앞서는 건 어쩔 수 없나 보다.
오늘 학습 키워드
간단한 파이썬 코드 작성해보기, SQL join문 이론 정복하기
오늘 학습한 내용을 나만의 언어로 정리하기
오늘은 간단한 파이썬 함수들과 SQL의 join의 이론에 대해서 학습했다. 파이썬은 SQL과는 또다른 느낌의 프로그램이었다. 둘 다 데이터를 조회하기 위해 코드를 짠다는 것은 동일하다. 하지만 파이썬은 기존에 학습했던 SQL과는 작동 방식이 많이 다르다고 느꼈다. 파이썬에 새로 적응하는 데 시간이 조금 걸릴 것 같다.
학습 내용
SQL의 join문은 지난 시간에 배웠듯이 두 개 이상의 테이블을 가로로 연결하는 역할을 한다. join에는 몇 가지 종류가 있는데, 그 중 inner join과 left join을 가장 많이 사용한다. 나머지는 실제 연산 비용이나 실효성 등의 문제로 거의 사용하지 않는다.
inner join은 두 테이블 간의 공통된 컬럼만을 선택해서 출력해준다. 두 테이블의 교집합 부분을 추출한다고 생각하면 된다.
다음은 "name"이라는 콩통 컬럼을 가진 두 테이블의 정보이다.
s1 테이블
s2 테이블
이 두 테이블을 inner join으로 묶을 경우, 쿼리는 다음과 같다.
SELECT
*
FROM
basic.s1 AS a
INNER JOIN basic.s2 AS b
ON
a.name = b.name
;
이를 실행해보면 아래와 같이 출력된다.
s1 inner join s2
이처럼 두 테이블 중 공통된 컬럼 중 일치하는 데이터를 가진 부분만 출력된 것을 확인할 수 있다.
left join을 묶을 경우의 쿼리는 다음과 같다.
SELECT
*
FROM
basic.s1 AS a
left JOIN basic.s2 AS b
ON
a.name = b.name
;
해당 쿼리를 실행하면 다음과 같이 출력된다.
s1 left join s2
사진에서 보이듯이, 두 테이블의 공통 컬럼에 대한 정보가 모두 추출된 것을 알 수 있다.
s1 테이블의 정보는 모두 출력된 반면, s2 테이블의 정보는 겹치는 부분만 정상적으로 출력되고 존재하지 않는 데이터는 모두 NULL로 표기되었다.
이처럼 join문은 내가 필요한 정보의 내용에 따라 inner join을 사용할 지, left join을 사용할 지 잘 선택해야 한다.
이번에 적은 예시는 간단한 형태로 작성된 쿼리지만, 실제로는 보다 복잡한 형식을 가지게 될 가능성이 크다. 따라서 반복 연습을 통해서 join이라는 개념을 정확히 숙지하고 있어야 후추 실수를 할 가능성을 크게 줄일 수 있다.
마치며 : 벌써 2025년도 2달이 채 남지 않았다. 올해가 지나는 그 순간까지 긴장의 끈을 풀지 않고 제대로 학습할 수 있도록 정신을 가다듬자! 그리고 곧 시작될 내년에도 절치부심하여 캠프 과정 끝까지 열정적으로 임할 수 있도록 노력하자!