세용용용용 2023. 11. 22. 10:24

sql쿼리 각 절의 우선 순위

from >>> where >>> select >>> order by >>> group by >>> having >>> limit(이절은 order by 이후 실행)

 

1. 최댓값 구하기

ANIMAL_INS 테이블 : 동물 보호소에 들어오 동물의 정보

 

문제 : 가장 최근에 들어온 동물은 언제 들어왔는지 조회하는 SQL 문을 작성

 

나의 쿼리

select DATETIME # 컬럼 선택
from ANIMAL_INS # 데이터 선택
order by DATETIME desc # 시간 역순 정렬
limit 1 # 가장 최근 데이터 하나만

 

 

2. 특정 옵션이 포함된 자동차 리스트 구하기

CAR_RENTAL_COMPANY_CAR  테이블 : 대여중인 자동차 정보

 

문제 : '네비게이션' 옵션이 포함된 자동차 리스트를 출력하는 SQL문을 작성해주세요. 결과는 자동차 ID를 기준으로 내림차순 정렬

 

나의 쿼리

select * # 컬럼 선택
from CAR_RENTAL_COMPANY_CAR # 데이터 불러오기
where OPTIONS like '%네비게이션%' # 네비게이션 옵션이 있는 것만 필터
order by car_id desc # car_id 컬럼 내림차순

 

 

3. 자동차 대여 기록에서 장기/단기 대여 구하기

CAR_RENTAL_COMPANY_RENTAL_HISTORY   테이블 : 자동차 대여 기록 정보

 

문제 :  대여 시작일이 2022년 9월에 속하는 대여 기록에 대해서 대여 기간이 30일 이상이면 '장기 대여' 그렇지 않으면 '단기 대여' 로 표시하는 컬럼(컬럼명: RENT_TYPE)을 추가하여 대여기록을 출력하는 SQL문을 작성해주세요. 결과는 대여 기록 ID를 기준으로 내림차순 정렬

 

나의 쿼리

select history_id, car_id, date_format(start_date,'%Y-%m-%d') as START_DATE, date_format(end_date,'%Y-%m-%d') as END_DATE,
case # datediff로 날짜의 차이를 구하여 장기, 단기 대여 컬럼 생성
    when datediff(end_date, start_date)+1 >=30 then '장기 대여'
    else '단기 대여'
end as RENT_TYPE
from CAR_RENTAL_COMPANY_RENTAL_HISTORY # 데이터 불러오기
where date_format(START_DATE,'%Y-%m') ='2022-09' # 시작 대여일이 2022년9월인 경우로 필터
order by history_id desc # history_id 컬럼 내림차순

 

 

4. 조건에 부합하는 중고거래 댓글 조회

USED_GOODS_BOARD  테이블 : 중고거래 게시판 정보

USED_GOODS_REPLY 테이블 : 중고거래 게시판 첨부파일 정보

 

문제 :  2022년 10월에 작성된 게시글 제목, 게시글 ID, 댓글 ID, 댓글 작성자 ID, 댓글 내용, 댓글 작성일을 조회하는 SQL문을 작성해주세요. 결과는 댓글 작성일을 기준으로 오름차순 정렬해주시고, 댓글 작성일이 같다면 게시글 제목을 기준으로 오름차순 정렬

 

나의 쿼리

select a.TITLE, a.BOARD_ID, b.REPLY_ID, b.WRITER_ID, b.CONTENTS, date_format(b.CREATED_DATE,'%Y-%m-%d') as CREATED_DATE # 컬럼 선택 
from # 데이터 불러오기
(select TITLE, BOARD_ID from USED_GOODS_BOARD 
where date_format(CREATED_DATE,'%Y-%m')='2022-10') a # 조인할 2022년10월 게시판 테이블
join
(select BOARD_ID, REPLY_ID, WRITER_ID, CONTENTS, CREATED_DATE from USED_GOODS_REPLY) b
on a.BOARD_ID=b.BOARD_ID # 조인할 게시판 첨부파일 데이블
order by CREATED_DATE, TITLE # 댓글작성일, 게시판 제목 오름차순 정렬