REGEXP는 LIKE를 이용한 검색과 달리 Regular Expression(정규 표현식)를 이용해 검색한다.
REGEXP를 사용하면 SQL에서 정규표현식을 활용하여 기본 연산자보다 복잡한 문자열 조건을 걸어 데이터를 검색할 수 있다.
하지만 정규표현식 검색을 이용할 때 절대 사용자에게 정규식 기능을 제공해선 안된다.
각종 오류를 포함할 수 있고 SQL Injection에 취약해지기 때문에,
정규표현식의 검색을 개발자가 미리 정한 테두리 안에서 행해져야 한다.
Regular Expression(정규 표현식) 이란?
규 표현식은 특정한 규칙을 가진 문자열의 집합을 표현하는데 사용하는 형식 언어이다.
문자열을 처리하는 방법 중의 하나로, 특정한 조건의 문자를 ‘검색’하거나 ‘치환’하는 과정을 매우 간편하게 처리할 수 있도록 해주는 수단이다.
정규 표현식은 SQL부터 스크립트 언어까지 다양한 곳에서 활용할 수 있다.
정규 표현식은 Pattern을 사용해서 문자열을 처리한다.
찾을 대상문자열에서 정규 표현식을 사용해 해당 Pattern과 일치하는 문자열을 검색하는 것이다.
Pattern과 일치하는 문자열을 찾은 이후 추출하거나 치환 할 수 있다.
사용되는 Pattern의 종류는 아래와 같다.
Matching
패턴 | 기능 | 예시 | 설명 |
. | 문자 하나 | ... | 길이가 "3개" 이상을 문자열을찾음 |
| | OR문(또는) | 데이타|데이터 | "데이타" 또는 "데이터"가 포함된 문자열을 찾음 |
[ ] | [ ]괄호안에 등록된 문자열 찾기 | [abc]d | "ad", "bd", "cd"으로 된 문자열 찾음 |
^ | 시작하는 문자열 | ^데이터 | "데이터"로 시작하는 문자열 찾음 |
$ | 끝나는 문자열 | 데이터$ | "데이터"로 끝나는 문자열 찾음 |
Number Limit
패턴 | 기능 | 예시 | 설명 |
* | 0회 이상 나타나는 문자 | a* | "a"가 0번이상 등장하는 문자열 |
+ | 1회 이상 나타나는 문자 | 국+ | "국"이 1번 이상 등장하는 문자열 |
{m,n} | m회 이상 n회 이하 반복되는 문자 | 차{1,2} | "차"가 1회이상 2회 이하 반복하는 문자열 |
? | 0~1회 나타나는 문자 | [가나다]? | "가" 또는 "나" 또는 "다"가 0~1회 나타나는 문자열 |
String Group
패턴 | 기능 | 예시 | 설명 |
[A-z] [:alpha:] |
알파벳 대문자 또는 소문자를 문자열 찾음 | [A-z]+ | 알파벳이 1개이상인 문자열 찾음 |
[0-9] [:dgit:] |
숫자인 문자열 찾음 | ^[0-9]+ | 1개 이상의 숫자로 시작하는 문자열 찾음 |
Not
패턴 | 기능 | 예시 | 설명 |
[^문자] | 괄호 안의 문자를 포함하지 않은 문자열 찾음 | [^데이터] |
출처 :
[MySQL] REGEXP(Regular Expression(정규 표현식)) (velog.io)
'# DataBase > Mysql(MariaDB)' 카테고리의 다른 글
ERROR 1449 (HY000): The user specified as a definer ('mariadb.sys'@'localhost') does not exist (0) | 2022.11.15 |
---|---|
mysql slow query 설정 (0) | 2022.11.11 |
DBeaver(DB 무료 접속툴) (0) | 2022.10.27 |
[mysql]특정DB 전체 테이블 삭제 (0) | 2022.10.11 |
[mysql]innodb 메모리별 설정값 예시 (0) | 2022.09.29 |
안녕하세요. 이곳은 IT위주의 잡다한 정보를 올려두는 개인 블로그입니다.
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!