정규 표현식(Regular Expression)
프로그래밍 언어에서 정규 표현식은 문자열을 처리하는 방법 중의 하나로 특정한 패턴의 문자를 '검색'하거나 '치환'하는 과정을 간편하게 처리해주는 형식 언어이다. 이번 포스팅에서는 MySQL의 정규표현식과 정규식을 사용한 데이터 검색에 대해 알아보겠습니다.
정규 표현식(Regular Expression) - MySQL문법
패턴 | 의미 |
. | 문자 한 개 |
^ | 문자열의 처음 |
$ | 문자열의 끝 |
* | 앞에 나온 문자의 n개 이상 반복 |
[] | 괄호 안에 문자열 일치 |
{} | 반복 |
| | 또는 |
[A-z], [:alpha:] | 대,소문자열을 찾음 |
[0-9], [:digit:] | 숫자인 문자열 찾음 |
[^패턴] | 임의의 패턴이 아닌 것을 찾음 |
위의 패턴들은 정규식에 자주 등장하는 패턴이다. 물론 이외에도 더 많은 패턴이 있지만 학습을 위해 따로 찾아보시는 게 좋을 것 같습니다.
정규 표현식(Regular Expression) - MySQL예제
위와 같은 패턴과 정규식을 잘 사용하면 다양한 부분에 있어서 요긴하게 사용할 수 있습니다. 다양한 예제를 통해 한번 알아보도록 하겠습니다.
-- 데이터 중에 (문 OR 스 OR 타)가 포함되어있는 데이터를 찾을 때
SELECT DATA
FROM TABLE
WHERE DATA REGEXP '문|스|타';
-- 데이터 중에 (문스타 OR 티스토리)로 시작하는 데이터를 찾을 때
SELECT DATA
FROM TABLE
WHERE DATA REGEXP '^문스타|^티스토리';
-- . -> 문자 한 개를 의미
-- 데이터 중에 7자리이고 3번째 문자열에 '문'이 포함된 데이터를 찾을 때
SELECT DATA
FROM TABLE
WHERE DATA REGEXP ('^..문....$');
-- 데이터 중에 한글이 포함된 모든 데이터를 찾을 때
SELECT DATA
FROM TABLE
WHERE DATA REGEXP '[가-힣]'
⭐정규 표현식(Regular Expression)에 대해 알아보고 간단한 예제를 하며 이해해 보았습니다. 사실 실무에선 이것보다 더 복잡한 패턴을 사용해야 하는 경우가 많다. 정규식에 더 공부하고 패턴을 파악해서 적재적소에 사용할 수 있도록 공부하시면 좋을 것 같습니다. 감사합니다.
'RDBS > MYSQL' 카테고리의 다른 글
[MYSQL]문자열 여러 개 합치기 - CONCAT(), CONCAT_WS() (6) | 2023.01.16 |
---|---|
[MYSQL]ORDER BY절의 다중 정렬 (8) | 2023.01.16 |
[MYSQL]함수를 활용한 날짜 및 시간 연산 (9) | 2023.01.10 |
[MYSQL]NOW(), SYSDATE()의 차이 (5) | 2023.01.09 |
[프로그래머스]입양 시각 구하기(2)-MySQL (9) | 2023.01.09 |