데이터베이스

[SQL] 정규식을 사용한 Select 조회

프리랜서_코더 2021. 1. 13. 09:00

SELECT 문법에서 DBMS에 따라 WHERE에 정규식을 사용하여 데이터를 조회할 수 있다.

 

오라클의 경우 REGEXP_LIKE 함수를 MySQL의 경우 REGEXP 함수를 사용한다.

 

 

ORACLE 10G

SELECT * FROM [테이블명] WHERE REGEXP_LIKE([컬럼명], [정규식]);
SELECT * FROM [테이블명] WHERE NOT REGEXP_LIKE([컬럼명], [정규식]);

 

ORACLE 11G에서는 REGEXP_COUNT 함수가 추가 되었다.

SELECT * FROM [테이블명] WHERE REGEXP_COUNT([컬러명], [정규식] ) > 0;

 

사용 예시

SELECT *
FROM MEMBER
WHERE REGEXP_LIKE(NAME, '[a-z] | [A-Z]');

SELECT *
FROM MEMBER
WHERE NOT REGEXP_LIKE(NAME, '[a-z] | [A-Z]');

SELECT *
FROM MEMBER
WHERE REGEXP_COUNT(NAME, '[a-z] | [A-Z]') > 0;

SELECT *
FROM MEMBER
WHERE REGEXP_COUNT(NAME, '[a-z] | [A-Z]') < 0;

 


MySQL

SELECT * FROM [테이블명] WHERE [컬럼명] REGEXP([정규식] );
SELECT * FROM [테이블명] WHERE [컬럼명] NOT REGEXP([정규식] );

 

사용 예시

SELECT *
FROM MEMBER
WHERE NAME REGEXP('[a-z] | [A-Z]');

SELECT *
FROM MEMBER
WHERE NAME NOT REGEXP('[a-z] | [A-Z]');