혼공
혼자 공부하는 SQL 3주차
poem
2024. 7. 21. 23:42

완벽주의 내려놓기
가벼웠던 1주차에 비해, 2주차와 3주차는 내 머리에 인풋해야하는 양이 많아서 헷갈렸다.
몰아치는 SQL의 함수 속에서 '전부 외우고 넘어가고 싶은데' 라는 생각에 진도가 나가지 않았다. 하지만 아직 시작인데, 함수를 하나하나 정리하고 있다보면 지칠 것 같았다. 족장님의 2주차 응원글을 읽고, '처음엔 큰 그림부터 그린다는 느낌으로 일단 챕터 완수부터 하자!' 라는 생각으로 바뀌었다. 초반만 잔뜩 맛보고 후반에 힘 빠질 바에야, 일단 전부 맛이라도 보고 이해 안 된 부분을 다시 찾아 삼키는 것이 낫다.
한 번에 습관을 바꾸는 것은 쉽지 않지만, SQL 공부를 시작으로 완벽주의를 조금씩 덜어내보려한다.
3주차 미션
3주차 (7/15 ~ 7/21) | Chapter 04 | p. 195의 확인 문제 4번 풀고 인증하기 | p. 183 [좀 더 알아보기] 손코딩 실행하고 결과화면 인증하기 |
미션 1. 확인 문제 4번
SELECT DISTINCT M.mem_id 아이디, B.prod.name 이름, M.addr 주소
FROM member M
LEFT OUTER JOIN buy B
ON M.mem_id = B.mem_id
WHERE B.prod_name IS NULL
ORDER BY M.mem_id;
외부 조인에서 검색 조건을 붙일 때는 WHERE를 사용한다.
미션 2. 중복된 결과 1개만 출력하기 실행 결과
3주차에서 배운 INNER JOIN과, 2주차에서 배웠던 중복제외 DISTINCT와 내림차순 정렬 ORDER BY를 결합하기
추가로 열 이름을 한글로 지정해서 좀 더 깔끔하게 정리해보았다.

B와 M은 어디서 나온 것일까?
길어진 코드를 간결하게 표현하기 위해서 테이블 이름에 별칭을 붙인 것이다.
buy 너는 B로 부를게~, member 너는 M으로 부를게~, 진격의 방탄소년단 너는 BTS로 부를게~ 이런 느낌이다.