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]');

 

'데이터베이스' 카테고리의 다른 글

[SQL] 문자열 합치기  (0) 2021.01.15
[SQL]Oracle 인덱스 용량 계산  (0) 2021.01.14
[SQL] 기본 SQL  (0) 2021.01.11
[SQL] 매주 특정 요일의 날짜를 SQL로 계산하기  (0) 2020.12.23
[SQL Template] paging, grid template  (0) 2020.02.04