새소식

Programmers Coding Test/MySQL

[프로그래머스 131114] MySQL - Level1 경기도에 위치한 식품창고 목록 출력하기

  • -

 

경기도에 위치한 식품창고 목록 출력하기

 

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

 

프로그래머스

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

programmers.co.kr

 

 

1)  문제

다음은 식품창고의 정보를 담은 FOOD_WAREHOUSE 테이블입니다. 
FOOD_WAREHOUSE 테이블은 다음과 같으며
WAREHOUSE_ID, WAREHOUSE_NAME, ADDRESS, TLNO, FREEZER_YN는
창고 ID, 창고 이름, 창고 주소, 전화번호, 냉동시설 여부를 의미합니다.
FOOD_WAREHOUSE 테이블에서 
경기도에 위치한 창고의 ID, 이름, 주소, 냉동시설 여부를 조회하는 SQL문을 작성해주세요.

 이때 냉동시설 여부가 NULL인 경우, 'N'으로 출력시켜 주시고 
결과는 창고 ID를 기준으로 오름차순 정렬해주세요.

 

 

Food Warehouse Information

Food Warehouse Information

WAREHOUSE_ID WAREHOUSE_NAME ADDRESS TLNO FREEZER_YN
ABC123 Warehouse A 123 Main St, City 123-456-789 Y
DEF456 Warehouse B 456 Elm St, Town 987-654-321 N
GHI789 Warehouse C 789 Oak St, Village Y

 

 

 

 

 

2)  예시

 

예를 들어 FOOD_WAREHOUS 테이블이 다음과 같다면

 

Food Warehouse Information

Food Warehouse Information

WAREHOUSE_ID WAREHOUSE_NAME ADDRESS TLNO FREEZER_YN
WH0001 창고_경기1 경기도 안산시 상록구 용담로 141 031-152-1332 Y
WH0002 창고_충북1 충청북도 진천군 진천읍 씨제이로 110 043-623-9900 Y
WH0003 창고_경기2 경기도 이천시 마장면 덕평로 811 031-221-7241
WH0004 창고_경기3 경기도 김포시 대곶면 율생중앙로205번길 031-671-1900 N
WH0005 창고_충남1 충청남도 천안시 동남구 광덕면 신덕리1길 9 041-876-5421 Y

 

SQL문을 실행하면 다음과 같은 값이 나와야합니다.

 

 

Food Warehouse Information

Food Warehouse Information

WAREHOUSE_ID WAREHOUSE_NAME ADDRESS FREEZER_YN
WH0001 창고_경기1 경기도 안산시 상록구 용담로 141 Y
WH0003 창고_경기2 경기도 이천시 마장면 덕평로 811 N
WH0004 창고_경기3 경기도 김포시 대곶면 율생중앙로205번길 N

 

 

 

 

3)  풀이

 

1. 아이디, 이름, 주소, 냉동시설 여부를 조회합니다.

● SELECT WAREHOUSE_ID, WAREHOUSE_NAME, ADDRESS, FREEZER_YN FROM FOOD_WAREHOUSE

 

 

 

2. 냉동시설 여부가 NULL이라면 N값으로 출력합니다.

● IFNULL(FREEZER_YN, 'N')

 

※ IFNULL(값1, 값2)

IFNULL은 NULL이 아니라면 값1을 반환하고,

NULL이라면 값2를 반환합니다.

 

 

 

3. 주소가 경기도인 것만 분류합니다.

● WHERE ADDRESS LIKE '%경기도'

 

※ LIKE

문자열 비교를 위한 연산자로, 문자열이 특정패턴과 일치하는지 확인하는 용도입니다.

 

LIKE 'a%'는 'a'로 시작하는 모든 문자열을 선택하고,

LIKE '%a'는 'a'로 끝나는 모든 문자열을 선택합니다. 

 

또한, LIKE '%ab%'는 'ab'를 포함하는 어떤 위치에 있든 문자열을 선택합니다.

 

※ %

문자열 와일드카드로, 어떤 문자열이든 올 수 있음

 

※ _

문자 와일드카드로, 하나의 문자가 올 수 있음

 

 

4. ID의 오름차순으로 정렬합니다.

● ORDER BY WAREHOUSE_ID ASC

 

 

4)  코드

 

SELECT WAREHOUSE_ID, WAREHOUSE_NAME, ADDRESS, IFNULL(FREEZER_YN, 'N') AS FREEZER_YN 
FROM FOOD_WAREHOUSE 
WHERE ADDRESS LIKE '%경기도%' 
ORDER BY WAREHOUSE_ID ASC;

 

 

 

 

 

 

 

Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.