https://school.programmers.co.kr/learn/courses/30/lessons/131112
[문제]
다음은 식품공장의 정보를 담은 FOOD_FACTORY 테이블입니다. FOOD_FACTORY 테이블은 다음과 같으며 FACTORY_ID, FACTORY_NAME, ADDRESS, TLNO는 각각 공장 ID, 공장 이름, 주소, 전화번호를 의미합니다.
Column name | Type | Nullable |
FACTORY_ID | VARCHAR(10) | FALSE |
FACTORY_NAME | VARCHAR(10) | FALSE |
ADDRESS | VARCHAR(10) | FALSE |
TLNO | VARCHAR(10) | TRUE |
FOOD_FACTORY 테이블에서 강원도에 위치한 식품공장의 공장 ID, 공장 이름, 주소를 조회하는 SQL문을 작성해주세요. 이때 결과는 공장 ID를 기준으로 오름차순 정렬해주세요.
[코드]
use programmers;
DROP TABLE IF EXISTS FOOD_FACTORY;
# 테이블 생성
create table FOOD_FACTORY (
FACTORY_ID VARCHAR(10) NOT NULL PRIMARY KEY,
FACTORY_NAME VARCHAR(10) NOT NULL,
ADDRESS VARCHAR(100) NOT NULL,
TLNO VARCHAR(20)
);
# 값 삽입(일부)
INSERT INTO FOOD_FACTORY VALUES ('FT19980003','(주)맛있는라면','강원도 정선군 남면 칠현로 679','033-431-3122');
INSERT INTO FOOD_FACTORY VALUES ('FT19980004','(주)맛있는기름','경기도 평택시 포승읍 포승공단순환로 245 ','031-651-2410');
INSERT INTO FOOD_FACTORY VALUES ('FT20010001','(주)맛있는소스','경상북도 구미시 1공단로7길 58-11','054-231-2121');
INSERT INTO FOOD_FACTORY VALUES ('FT20010002','(주)맛있는통조림','전라남도 영암군 미암면 곤미현로 1336','061-341-5210');
INSERT INTO FOOD_FACTORY VALUES ('FT20100001','(주)맛있는차','전라남도 장성군 서삼면 장산리 233-1번지 ','061-661-1420');
INSERT INTO FOOD_FACTORY VALUES ('FT20100002','(주)맛있는김치','충청남도 아산시 탕정면 탕정면로 485 ','041-241-5421');
INSERT INTO FOOD_FACTORY VALUES ('FT20100003','(주)맛있는음료','강원도 원주시 문막읍 문막공단길 154','033-232-7630');
SELECT FACTORY_ID, FACTORY_NAME, ADDRESS
FROM FOOD_FACTORY
WHERE ADDRESS LIKE '강원도%'
ORDER BY FACTORY_ID ASC;
[고찰]
이번 문제는 SELECT 문의 WHERE 절에 LIKE를 사용하여 해결하는 문제였다. LIKE는 %와 _를 사용하여 문자열의 조건을 줄 수 있는데 %는 0개 이상의 문자를 의미하고, _는 1개의 문자를 의미한다. 예를 들어 %강원도는 문자열이 강원도로 끝나는 가변길이의 문자열을 의미하고, 강원도__는 맨 앞이 강원도로 시작하는 5글자의 문자열을 의미한다.
LIKE를 사용해야 한다는 것만 캐치하면 쉽게 해결할 수 있는 문제였다.
'SQL 문제' 카테고리의 다른 글
[프로그래머스 SQL] 평균 일일 대여 요금 구하기 (0) | 2023.09.24 |
---|---|
[프로그래머스 SQL] 흉부외과 또는 일반외과 의사 목록 출력하기 (0) | 2023.09.24 |
[프로그래머스 SQL] 조건에 맞는 도서 리스트 출력하기 (0) | 2023.09.23 |
[프로그래머스 SQL] 3월에 태어난 여성 회원 목록 출력하기 (0) | 2023.09.23 |
[프로그래머스 SQL] 인기있는 아이스크림 (0) | 2023.09.23 |