forest_moon
[hackerrank, SQL] Weather Observation Station 6 본문
Query the list of CITY names starting with vowels (i.e., a, e, i, o, or u) from STATION. Your result cannot contain duplicates.
Input Format
The STATION table is described as follows:

where LAT_N is the northern latitude and LONG_W is the western longitude.
SELECT
city
FROM
station
WHERE
(city LIKE 'a%'
OR city LIKE 'e%'
OR city LIKE 'i%'
OR city LIKE 'o%'
OR city LIKE 'u%')
;
일단 문제를 풀기위해서 LIKE '%'를 사용해서 노가다로 풀었다 (모음이 5개 밖에 없어서)
*** LIKE
%를 기준으로 앞에 사용하면 'asd%'. >> asd 로 시작하는 값
%를 기준으로 뒤에 사용하면 '%asd' >> asd 로 끝나는 값
%를 중간에 사용하면 '%asd%' >> 중간에 asd 가 들어가는 값
을 찾을수 있다
이문제를 어떻게 편하게 풀 수 있을까 하고 찾아보니까 '정규표현식'을 사용해서 편하게 푸는방법이 있었다.
REGEXP
SELECT
city
FROM
station
WHERE
city REGEXP '^[AaEeIiOoUu].*'
;
***REGEXP
Regular Expression(정규 표현식)
REGEXP를 사용하면 SQL에서 정규표현식을 활용하여 기본 연산자보다 복잡한 문자열 조건을 걸어 데이터를 검색할 수 있다.
하지만 정규표현식 검색을 이용할 때 절대 사용자에게 정규식 기능을 제공해선 안된다.
각종 오류를 포함할 수 있고 SQL Injection에 취약해지기 때문에,
정규표현식의 검색을 개발자가 미리 정한 테두리 안에서 행해져야 한다.
정규 표현식은 특정한 규칙을 가진 문자열의 집합을 표현하는데 사용하는 형식 언어이다.
문자열을 처리하는 방법 중의 하나로, 특정한 조건의 문자를 ‘검색’하거나 ‘치환’하는 과정을 매우 간편하게 처리할 수 있도록 해주는 수단이다.
정규 표현식은 SQL부터 스크립트 언어까지 다양한 곳에서 활용할 수 있다.
정규 표현식은 Pattern을 사용해서 문자열을 처리한다.
찾을 대상문자열에서 정규 표현식을 사용해 해당 Pattern과 일치하는 문자열을 검색하는 것이다.
Pattern과 일치하는 문자열을 찾은 이후 추출하거나 치환 할 수 있다.
Reference
'알고리즘' 카테고리의 다른 글
가장 큰 수 찾기 (0) | 2023.01.02 |
---|---|
편지 (0) | 2023.01.02 |
[hackerrank, SQL] Weather Observation Station 14 (0) | 2022.12.30 |
[hackerrank, SQL] Weather Observation Station 4 (0) | 2022.12.30 |
[hackerrank, SQL] Weather Observation Station 2 (0) | 2022.12.30 |