오늘 풀어본 문제
https://school.programmers.co.kr/learn/courses/30/lessons/59046
동물 보호소에 들어온 동물 중 이름이 Lucy, Ella, Pickle, Rogan, Sabrina, Mitty인 동물의 아이디와 이름, 성별 및 중성화 여부를 조회하는 SQL문을 작성해주세요.
이 문제를 보자마자 바로 LIKE나 SUBSTR을 활용하고 OR를 사용한다면 아주 쉽게 풀이를 할 수 있겠지만 그렇게된다면 쓸데없이 쿼리문이 장황해지고 가독성마저 안좋아질 것 같아 다른 좋은 조건문이 있을 것 같아 찾아보았고 정규표현식이라는 것을 찾아 활용해보기로 하였다.
기본적으로 정규표현식이라는 것은 텍스트에서 특정 문자열 패턴을 검색 및 대체 또는 추출하는데 사용되는 텍스트 처리 도구이며 복잡한 문자열 처리 작업을 간결하고 효율적으로 수행하기 위해 사용됩니다.
. | 문자 한개 | '...' | 문자열의 길이가 .의 갯수 이상인 것만 찾음 |
| (수직선) | OR 과 같은 역할 |로 구분된 문자에 해당하는 문자열을 찾음 | '오 | 사' | 문자열 중 오 또는 사가 해당하는 문자열을 찾음 |
[] | []안에 나열된 패턴에 해당하는 문자열을 찾음 | '[QWE]공격' | 문자열에서 Q공격, W공격, E공격인 것을 찾음 |
^ | 시작하는 문자열을 찾음 | '^인사' | 문자열에서 '인사'로 시작하는 문자열을 찾음 |
$ | 끝나는 문자열을 찾음 | '끝$' | 문자열에서 '끝'으로 끝나는 문자열을 찾음 |
이것 말고도 여러 기능들이 있지만 오늘 풀 문제에선 이정도 수준만 이해해도 좋은 것 같다.
정규표현식 REGEXP를 활용한 나의 쿼리문은 다음과 같다
SELECT ANIMAL_ID AS 'ID', NAME AS '이름', SEX_UPON_INTAKE AS '중성화 여부'
FROM ANIMAL_INS
WHERE NAME REGEXP '^Ella|^Lucy|^Pickle|^Rogan|^Sabrina|^Mitty'
ORDER BY ANIMAL_ID
'SQL' 카테고리의 다른 글
본 캠프 7일차 SQL TIL (0) | 2024.06.30 |
---|---|
본 캠프 6일차 SQL TIL (0) | 2024.06.29 |
본 캠프 4일차 SQL TIL (0) | 2024.06.27 |
본 캠프 3일차 SQL TIL (0) | 2024.06.26 |
본 캠프 2일차 SQL TIL (0) | 2024.06.25 |