몸과 마음이 건전한 SW 개발자

[SQL-DATE] 프로그래머스 Lv. 2 이름에 el이 들어가는 동물 찾기 본문

SQL/풀었지만 다시 보기

[SQL-DATE] 프로그래머스 Lv. 2 이름에 el이 들어가는 동물 찾기

스위태니 2024. 12. 20. 20:44

문제 링크

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

 

프로그래머스

SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

정답 코드

SELECT
    ANIMAL_ID,
    NAME
FROM ANIMAL_INS
WHERE
    NAME LIKE '%el%'
    AND ANIMAL_TYPE = 'Dog'
ORDER BY NAME;

풀이 과정

 

  1. 테이블 선택:
    • ANIMAL_INS 테이블에서 데이터를 조회한다.
  2. 필터링:
    • WHERE 조건을 통해 데이터를 필터링한다:
      • NAME LIKE '%el%': 이름에 'el'이 포함된 동물만 선택한다.
      • ANIMAL_TYPE = 'Dog': 동물 종이 개('Dog')인 동물만 선택한다.
  3. 데이터 선택:
    • 필터링된 데이터에서 ANIMAL_ID와 NAME 열만 선택한다.
  4. 정렬:
    • 결과를 이름(NAME) 기준으로 오름차순 정렬한다.

 

대소문자 구분 여부

 

  1. LIKE 대소문자 구분:
    • SQL에서 LIKE는 기본적으로 대소문자를 구분하지 않는 경우가 많다.
    • 예를 들어, 'el'은 'El', 'EL', 'eL' 등을 모두 매칭한다.
    • 하지만 이는 데이터베이스 시스템에 따라 다르다.
      • MySQL:
        • 기본적으로 대소문자를 구분하지 않는다(대소문자 비민감).
      • PostgreSQL:
        • 기본적으로 대소문자를 구분한다.
        • 대소문자 비민감을 원하면 ILIKE를 사용해야 한다.
  2. ORDER BY 대소문자 구분:
    • ORDER BY도 기본적으로 대소문자를 구분하지 않는다.
    • 예를 들어, 'Elijah'와 'elijah'는 동일한 순서로 처리된다.

 

느낀점

  • LIKE 부분 자주 헷갈릴 수 있는 문제같다.
  • 풀었지만 다시 보고 또 보고 실수하지 않게 조심하자.