728x90
KDT 실무형 스프링 백엔드 엔지니어 양성과정 6기 | SQL CODEKATA
조건에 맞는 도서 리스트 출력하기
🏷 관련 주제 : String Date

✔️ (Oracle) Solution with TO_CHAR()
SELECT BOOK_ID
, TO_CHAR(PUBLISHED_DATE, 'yyyy-mm-dd') PUBLISHED_DATE
FROM BOOK
WHERE CATEGORY = '인문'
AND TO_CHAR(PUBLISHED_DATE, 'yyyy') = '2021'
ORDER BY 2;
실행 결과

✔️ (MySQL) Solution with DATE_FORMAT()
SELECT BOOK_ID
, DATE_FORMAT(PUBLISHED_DATE, '%Y-%m-%d') PUBLISHED_DATE
FROM BOOK
WHERE CATEGORY = '인문'
AND DATE_FORMAT(PUBLISHED_DATE, '%Y') = '2021'
ORDER BY 2;
실행 결과

💥 오늘 만난 문제 & 나의 시도 💦 & 해결 방법 👍
📌 오늘 만난 문제 : BOOK 테이블에서 2021년에 출판된 '인문' 카테고리에 속하는 도서 리스트를 찾아서 도서 ID(BOOK_ID), 출판일 (PUBLISHED_DATE)을 출력하는 SQL문을 작성해주세요.
결과는 출판일을 기준으로 오름차순 정렬해주세요.
1. BOOK 테이블에서 도서 ID, 출판일, 카테고리를 조회하자.
- Oracle & MySQL
SELECT BOOK_ID , PUBLISHED_DATE , CATEGORY FROM BOOK;실행 결과

2. 카테고리가 '인문'이고 출판년도가 '2021'인 인스턴스만 조회하자.
문자열 비교 : 칼럼 = '문자열'
날짜 비교 및 날짜 형식 변경
Oracle : TO_CHAR(칼럼, 'yyyy') = '연도'
MySQL : DATE_FORMAT(칼럼, '%Y') = '연도'
- Oracle
SELECT BOOK_ID , PUBLISHED_DATE , CATEGORY FROM BOOK WHERE CATEGORY = '인문' AND TO_CHAR(PUBLISHED_DATE, 'yyyy') = '2021';실행 결과

- MySQL
SELECT BOOK_ID , PUBLISHED_DATE , CATEGORY FROM BOOK WHERE CATEGORY = '인문' AND DATE_FORMAT(PUBLISHED_DATE, '%Y') = '2021';실행 결과

3. 도서 ID와 출판일 칼럼만 조회하고 출판일을 기준으로 오름차순 정렬하자.
출판일
출력 형식 : '년-월-일'
별칭 : "PUBLISHED_DATE"
- Oracle
SELECT BOOK_ID , TO_CHAR(PUBLISHED_DATE, 'yyyy-mm-dd') PUBLISHED_DATE FROM BOOK WHERE CATEGORY = '인문' AND TO_CHAR(PUBLISHED_DATE, 'yyyy') = '2021' ORDER BY 2;실행 결과

- MySQL
SELECT BOOK_ID , DATE_FORMAT(PUBLISHED_DATE, '%Y-%m-%d') PUBLISHED_DATE FROM BOOK WHERE CATEGORY = '인문' AND DATE_FORMAT(PUBLISHED_DATE, '%Y') = '2021' ORDER BY 2;실행 결과

💬 무엇을 새롭게 알았는지
칼럼의 값과 문자열이 일치하는지 비교하는 쿼리를 작성하였다.
DATE_FORMAT() 또는 TO_CHAR()로 날짜 형식을 변경 및 특정 날짜와 일치하는지 비교하는 쿼리를 작성하였다.
728x90