[SQL#140]모음으로 시작하고 모음으로 끝나는 도시 이름 찾기 'LIKE' vs 'REGEXP'

Gi Woon Lee·2024년 9월 30일

SQL

목록 보기
23/33

Weather Observation Station 8

문제 이해

  • 문제: STATION 테이블에서 도시 이름(CITY)을 조회하되, 첫 글자와 마지막 글자가 모두 모음(a, e, i, o, u)인 경우만 조회한다. 결과에는 중복이 없어야 한다.
  • 문제를 해결하기 위해 LIKEREGEXP를 사용하여 서로 다른 방식으로 조건을 구현할 수 있었다.

논리 구현

  • 첫 글자와 마지막 글자가 모두 모음인 도시를 찾기 위해 LIKE 조건을 사용해보았다.
    • 모음으로 시작하고 모음으로 끝나는 도시 이름을 찾는 조건은 LIKEOR을 통해 간단하게 표현할 수 있었다.
    • 그러나 이 방식으로 구현할 경우, 모든 모음에 대해 각각 조건을 명시해야 하므로 쿼리가 길어지고 비효율적이 된다.
  • 보다 효율적인 구현을 위해 정규표현식을 사용하였다.

쿼리 구현

SELECT DISTINCT CITY
FROM STATION
WHERE CITY REGEXP '^[AEIOU].*[aeiou]$';
  • 설명:
    • ^: 문자열의 시작을 의미한다.
    • [AEIOU]: 첫 글자가 대문자 모음 중 하나여야 한다.
    • .*: 임의의 문자(.)가 0번 이상(*) 반복될 수 있다.
    • [aeiou]$: 마지막 글자가 소문자 모음 중 하나여야 한다.
    • $: 문자열의 끝을 의미한다.

이를 통해 "대문자 모음으로 시작하고, 중간에 어떤 문자든 올 수 있으며, 마지막은 소문자 모음으로 끝나는" 조건을 충족하는 도시 이름을 조회할 수 있다.


오늘의 학습을 통해, LIKEREGEXP를 사용해 패턴 매칭을 다루는 방법과 REGEXP가 보다 효율적인 조건 처리를 위해 유용할 수 있음을 이해하게 되었다. 특히, 정규표현식의 ^$의 사용법, .*의 조합을 통해 문자열의 특정 패턴을 유연하게 정의할 수 있다는 점이 유익했다.

0개의 댓글