Backend/DataBase

[MySQL] SQL 코딩테스트 코드리뷰

hyeminyy 2024. 8. 13. 01:55
728x90

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

 

프로그래머스

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

programmers.co.kr

 

select b.book_id, a.author_name,
       DATE_FORMAT(b.published_date, '%Y-%m-%d') AS published_date
from book b
join author a ON b.author_id = a.author_id
where b.category = '경제'
order by b.published_date;

 

목적

 - '경제' 카테고리의 책 정보를 가져와서, 각 book_id, author_name, published_date 을 출력한다.

 -  출판 날짜를 기준으로 오름차순 정렬한다.

 

FROM절

 - 'book b' : 책 정보를 담고 있는 테이블로, b를 사용해 쿼리 간결하게 함

 - book 테이블 & author 테이블을 author_id 로 연결하여 join 함

 

WHERE절

 - b.category = '경제' : 카테고리가 '경제'인 책만 필터링

 

ORDER BY절

 - b.published_date : 출판 날짜를 기준으로 오름차순 정렬 (asc 생략가능)

 

--------------------

💡알게된 사실

DATE_FORMAT()

 - 날짜와 시간 데이터를 지정한 형식으로 변환해주는 함수

DATE_FORMAT(date,format)

 

date : 변환할 날짜 또는 시간 데이터 

format : 원하는 출력 형식 (날짜가 문자열로 변환하는 구간)

DATE_FORMAT(b.published_date,'%Y-%m-%d')

 - book 테이블의 published_date 는 원래 날짜 형식으로 저장되어 있다.

 - '%Y-%m-%d' 형식으로 변환하기 위해 함수 사용(년/월/일 : 2024-08-13으로 반환)

 - 날짜 데이터를 표준화된 문자열로 변환하여, 보고서나 사용자 인터페이스에서 날짜를 일련되게 표시할 때 유용

 

728x90