ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [MySQL] (SELECT) 강원도에 위치한 생산공장 목록 출력하기
    코딩테스트/MySQL 2024. 8. 18. 20:09
    728x90
    반응형

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

    [프로그래머스

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

    programmers.co.kr](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(50) FALSE
    ADDRESS VARCHAR(100) FALSE
    TLNO VARCHAR(20) TRUE

    문제

    FOOD_FACTORY 테이블에서 강원도에 위치한 식품공장의 공장 ID, 공장 이름, 주소를 조회하는 SQL문을 작성해주세요. 이때 결과는 공장 ID를 기준으로 오름차순 정렬해주세요.


    예시

    FOOD_FACTORY 테이블이 다음과 같을 때

    FACTORY_ID FACTORY_NAME ADDRESS TLNO
    FT19980003 (주)맛있는라면 강원도 정선군 남면 칠현로 679 033-431-3122
    FT19980004 (주)맛있는기름 경기도 평택시 포승읍 포승공단순환로 245 031-651-2410
    FT20010001 (주)맛있는소스 경상북도 구미시 1공단로7길 58-11 054-231-2121
    FT20010002 (주)맛있는통조림 전라남도 영암군 미암면 곤미현로 1336 061-341-5210
    FT20100001 (주)맛있는차 전라남도 장성군 서삼면 장산리 233-1번지 061-661-1420
    FT20100002 (주)맛있는김치 충청남도 아산시 탕정면 탕정면로 485 041-241-5421
    FT20100003 (주)맛있는음료 강원도 원주시 문막읍 문막공단길 154 033-232-7630
    FT20100004 (주)맛있는국 강원도 평창군 봉평면 진조길 227-35 033-323-6640
    FT20110001 (주)맛있는밥 경기도 화성시 팔탄면 가재리 34번지 031-661-1532
    FT20110002 (주)맛있는과자 광주광역시 북구 하서로 222 062-211-7759

    SQL을 실행하면 다음과 같이 출력되어야 합니다.

    FACTORY_ID FACTORY_NAME ADDRESS
    FT19980003 (주)맛있는라면 강원도 정선군 남면 칠현로 679
    FT20100003 (주)맛있는음료 강원도 원주시 문막읍 문막공단길 154
    FT20100004 (주)맛있는국 강원도 평창군 봉평면 진조길 227-35

    문제풀이

    SELECT FACTORY_ID, FACTORY_NAME, ADDRESS
    FROM FOOD_FACTORY
    WHERE ADDRESS LIKE '강원도%'
    ORDER BY FACTORY_ID ASC;

     

     

     

     

    참고) WHERE IN과 WHERE LIKE 차이

    WHERE INWHERE LIKE는 SQL에서 조건을 지정하는 데 사용되는 두 가지 다른 절입니다. 이 둘의 차이점은 다음과 같습니다:

    1. WHERE IN

    • 용도: IN 연산자는 지정한 목록(서브쿼리 포함)에 포함된 값들과 일치하는 경우를 찾는 데 사용됩니다.
    • 사용법: 일반적으로 여러 개의 특정 값을 비교할 때 사용됩니다.
    • 예시:
        SELECT * FROM FOOD_FACTORY
        WHERE FACTORY_ID IN ('FT19980003', 'FT20100003', 'FT20100004');
      • 이 쿼리는 FACTORY_ID'FT19980003', 'FT20100003', 'FT20100004' 중 하나와 일치하는 모든 행을 반환합니다.

    2. WHERE LIKE

    • 용도: LIKE 연산자는 특정 패턴과 일치하는 값을 찾는 데 사용됩니다. 주로 부분 문자열 매칭이나 와일드카드(%, _)를 사용하여 유연한 검색을 수행할 때 유용합니다.
    • 사용법: 문자열 데이터에서 특정 패턴을 찾을 때 사용됩니다.
    • 와일드카드:
      • %: 0개 이상의 문자를 대체합니다.
      • _: 정확히 1개의 문자를 대체합니다.
    • 예시:
        SELECT * FROM FOOD_FACTORY
        WHERE ADDRESS LIKE '강원도%';
      • 이 쿼리는 ADDRESS'강원도'로 시작하는 모든 행을 반환합니다.

    요약

    • WHERE IN: 특정 값들의 목록과 일치하는 행을 찾는 데 사용합니다. 목록은 특정한 값들로 한정됩니다.
    • WHERE LIKE: 특정 패턴과 일치하는 문자열을 찾는 데 사용합니다. 패턴 매칭을 통해 보다 유연한 검색이 가능합니다.

    이 두 절은 서로 다른 상황에서 유용하게 사용될 수 있으며, 검색하고자 하는 데이터의 특성과 필요한 유연성에 따라 선택됩니다.

    728x90
    반응형
공기업 전산 필기 후기 + 공기업 전산학 지식 모음