본문 바로가기
SQL

본 캠프 2일차 SQL TIL

by Data 학습자 2024. 6. 25.

오늘 푼 문제

https://school.programmers.co.kr/learn/courses/30/lessons/144854

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

'경제 카테고리에 속하는 도서들의 도서 ID, 저자명, 출판일 리스트들을 출력하는 SQL문 작성하기

결과는 출판일 기준으로 오름차순 정렬

 

우선 가장 먼저 도서 정보와 저자 정보가 있는 테이블을 묶어주기로 했다 그렇게해서 작성한 나의 쿼리문

SELECT *

FROM book B 
INNER JOIN author A 
ON B.author_ID = A.author_ID

 

그렇게 얻어낸 결과물

 

그 다음 내가 할 일로는 우선 '경제'라는 카테고리 항목에 들어간 도서를 추려내는 일 이 명령어는 아주 기본적인 명령어라 쉽게 답을 내어놓을 수 있다.

SELECT *

FROM book B 
INNER JOIN author A 
ON B.author_ID = A.author_ID

WHERE category LIKE '%경제%'

WHERE문을 추가해서 얻어낸 결과물

 

굳이 이 WHERE 문 카테고리에 B.category라고 하지 않은 이유는 두 테이블에 서로 중복되는 칼럼이 없기 때문에 오류가 발생하지 않아서 앞에 B.을 붙이지 않았다. B.을 추가한다고 해서 문제가 되지도 않는다 아마 개인 선호도나 나중에 취업을 하게 된다면 그 회사 규율에 맞춰서 넣거나 빼면 될 것 같다.

 

그 다음으로 해야겠다고 생각한 명령어는 ORDER BY 를 이용하여 결과물을 정렬하고 셀렉트 문으로 결과값을 추려내기

SELECT book_id AS '도서 ID',
       author_name AS '저자명',
DATE_FORMAT(published_date,'%Y-%m-%d')  AS '출판일'

FROM book B 
INNER JOIN author A 
ON B.author_ID = A.author_ID

WHERE category LIKE '%경제%'
ORDER BY published_date

 

SELECT book_id AS '도서 ID'

도서 정보 테이블에 있는 도서 아이디를 가져와 도서 ID 칼럼으로 별칭을 지어준다. 물론 도서 ID도 두 테이블에 서로 중복되는 내용이 없어서 따로 B.을 붙여서 지정을 안해줘도 되지만 개인 선호도나 팀 환경에 따라서 작성하면 된다.

author_name AS '저자명'

저자 정보에 있는 저자의 이름을 추려내기 위한 명령어 뒤에 저자명으로 별칭을 사용하여 결과물을 보고 구분하기 쉽게 작성했다.

DATE_FORMAT(published_date,'%Y-%m-%d')  AS '출판일'

이 문제에서 복병처럼 숨어있던 출판일 정보를 문제 예시처럼 작성해야 한다는 조건이 숨어있었다.

처음엔 그것도 모르고 시도했다가 틀렸습니다가 나와서 얼마나 당황했었는지 나중에 주의사항이 있었다는 걸 알고 다소 어이가 없었다.

 

우선 DATE_FORMAT 함수를 이용해 published_date의 날짜 형식을 바꾸는 작업을 해야한다. 내가 바꿔서 얻어내고자 하는 형식은 20XX-XX-XX 형식의 DATE 값을 구해야한다. 이 DATE 형식을 얻어내기 위해선 컴퓨터와 상호 약속된 명령어를 사용해서 값을 얻어내야 한다. 그것이 바로 %Y-%m-%d이다.

그렇게 DATE_FORMAT(published_date,'%Y-%m-%d') 라는 예약문을 적은 뒤 AS '출판일'이라고 기입을 해서 내가 헷갈리지 않게 칼럼도 정리하고

 

ORDER BY published_date 로 출판일 기준으로 결과값이 나오게 적어주면 된다 물론 published_date 라고 길게 적는 것이 귀찮다면 그냥 '출판일' 이렇게 적어도 결과값은 잘 나온다.

 

모든 것을 다 적용한 뒤 얻어낸 결과물

 

이렇게해서 오늘도 큰 어려움없이 SQL 코드 카타를 완료했다.

'SQL' 카테고리의 다른 글

본 캠프 6일차 SQL TIL  (0) 2024.06.29
본 캠프 5일차 SQL TIL  (0) 2024.06.28
본 캠프 4일차 SQL TIL  (0) 2024.06.27
본 캠프 3일차 SQL TIL  (0) 2024.06.26
본 캠프 1일차 SQL TIL  (0) 2024.06.24