혼공

혼자 공부하는 SQL 3주차

poem 2024. 7. 21. 23:42
33%를 넘어서 3주차 시작합니다.

완벽주의 내려놓기

가벼웠던 1주차에 비해, 2주차와 3주차는 내 머리에 인풋해야하는 양이 많아서 헷갈렸다.
몰아치는 SQL의 함수 속에서 '전부 외우고 넘어가고 싶은데' 라는 생각에 진도가 나가지 않았다. 하지만 아직 시작인데, 함수를 하나하나 정리하고 있다보면 지칠 것 같았다. 족장님의 2주차 응원글을 읽고, '처음엔 큰 그림부터 그린다는 느낌으로 일단 챕터 완수부터 하자!' 라는 생각으로 바뀌었다. 초반만 잔뜩 맛보고 후반에 힘 빠질 바에야, 일단 전부 맛이라도 보고 이해 안 된 부분을 다시 찾아 삼키는 것이 낫다.
한 번에 습관을 바꾸는 것은 쉽지 않지만, SQL 공부를 시작으로 완벽주의를 조금씩 덜어내보려한다.
 


3주차 미션

3주차
(7/15 ~ 7/21)
Chapter 04p. 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로 부를게~ 이런 느낌이다.