728x90
KDT 실무형 스프링 백엔드 엔지니어 양성과정 6기 | SQL CODEKATA
📖 조건에 맞는 도서와 저자 리스트 출력하기
🏷 관련 주제 : JOIN 날짜 형식 변경 TO_CHAR() DATE_FORMAT() ORDER BY

✔️ (Oracle) Solution with JOIN & TO_CHAR()
SELECT BOOK_ID
, AUTHOR_NAME
, TO_CHAR(PUBLISHED_DATE, 'yyyy-mm-dd') PUBLISHED_DATE
FROM BOOK B
, AUTHOR A
WHERE B.AUTHOR_ID = A.AUTHOR_ID
AND B.CATEGORY = '경제'
ORDER BY 3;
실행 결과

✔️ (MySQL) Solution with JOIN & DATE_FORMAT()
SELECT BOOK_ID
, AUTHOR_NAME
, DATE_FORMAT(PUBLISHED_DATE, '%Y-%m-%d') PUBLISHED_DATE
FROM BOOK B
, AUTHOR A
WHERE B.AUTHOR_ID = A.AUTHOR_ID
AND B.CATEGORY = '경제'
ORDER BY 3;
실행 결과

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

2. 위의 조회 결과에서 카테고리가 '경제' 인 인스턴스만 조회하자.
- Oracle & MySQL
SELECT CATEGORY , BOOK_ID , AUTHOR_NAME , PUBLISHED_DATE FROM BOOK B , AUTHOR A WHERE B.AUTHOR_ID = A.AUTHOR_ID AND B.CATEGORY = '경제';실행 결과

3. 위의 조회결과에서 카테고리 칼럼은 제외하고
출판일을 '년-월-일' 형식으로 출력하자.
MySQL : DATE_FORMAT(출판일, '%Y-%m-%d')
Oracle : TO_CHAR(출판일, 'yyyy-mm-dd')
- Oracle
SELECT BOOK_ID , AUTHOR_NAME , TO_CHAR(PUBLISHED_DATE, 'yyyy-mm-dd') PUBLISHED_DATE FROM BOOK B , AUTHOR A WHERE B.AUTHOR_ID = A.AUTHOR_ID AND B.CATEGORY = '경제';실행 결과

- MySQL
class="language-sql"SELECT BOOK_ID , AUTHOR_NAME , DATE_FORMAT(PUBLISHED_DATE, '%Y-%m-%d') PUBLISHED_DATE FROM BOOK B , AUTHOR A WHERE B.AUTHOR_ID = A.AUTHOR_ID AND B.CATEGORY = '경제';실행 결과

4. 출판일을 기준으로 오름차순 정렬하자.
- Oracle
SELECT BOOK_ID , AUTHOR_NAME , TO_CHAR(PUBLISHED_DATE, 'yyyy-mm-dd') PUBLISHED_DATE FROM BOOK B , AUTHOR A WHERE B.AUTHOR_ID = A.AUTHOR_ID AND B.CATEGORY = '경제' ORDER BY 3;실행 결과

- MySQL
SELECT BOOK_ID , AUTHOR_NAME , DATE_FORMAT(PUBLISHED_DATE, '%Y-%m-%d') PUBLISHED_DATE FROM BOOK B , AUTHOR A WHERE B.AUTHOR_ID = A.AUTHOR_ID AND B.CATEGORY = '경제' ORDER BY 3;실행 결과

💬 무엇을 새롭게 알았는지
- JOIN하는 쿼리를 작성해 보았다.
- 날짜 형식을 변경하기
- MySQL : DATE_FORMAT(출판일, '%Y-%m-%d')
- Oracle : TO_CHAR(출판일, 'yyyy-mm-dd')
- 문자열 일치 : 칼럼 = '문자열'
- 정렬은
칼럼또는별칭또는칼럼 번호로 할 수 있다.
728x90