pbj0812의 코딩 일기

[SQL] REGEXP 를 이용한 정규식 조건에 들어맞는 데이터만 추출하기 본문

ComputerLanguage_Program/SQL

[SQL] REGEXP 를 이용한 정규식 조건에 들어맞는 데이터만 추출하기

pbj0812 2022. 7. 26. 01:42

0. 목표

 - REGEXP 를 이용한 정규식 조건에 들어맞는 데이터만 추출하기

1. 실습하기

 1) 테이블 생성 및 데이터 삽입

DROP TABLE sql_test.regular_test;
CREATE TABLE sql_test.regular_test
(
	reviews varchar(256)
);

INSERT INTO sql_test.regular_test(reviews) VALUES('abc123');
INSERT INTO sql_test.regular_test(reviews) VALUES('안녕하세요123');
INSERT INTO sql_test.regular_test(reviews) VALUES('1abc안녕하세요');
INSERT INTO sql_test.regular_test(reviews) VALUES('ㅇㄹㅇ러ㅏㅣ퍼--09');
INSERT INTO sql_test.regular_test(reviews) VALUES('www.abc.com');
INSERT INTO sql_test.regular_test(reviews) VALUES('dfdjkiiia안녕ddfkk');
INSERT INTO sql_test.regular_test(reviews) VALUES('1r25t55');
INSERT INTO sql_test.regular_test(reviews) VALUES('노잼');
INSERT INTO sql_test.regular_test(reviews) VALUES('hellow');
INSERT INTO sql_test.regular_test(reviews) VALUES('abbc');
INSERT INTO sql_test.regular_test(reviews) VALUES('123');
INSERT INTO sql_test.regular_test(reviews) VALUES('www.acc.com');
INSERT INTO sql_test.regular_test(reviews) VALUES('a');
INSERT INTO sql_test.regular_test(reviews) VALUES('abc;');
INSERT INTO sql_test.regular_test(reviews) VALUES('na1');
INSERT INTO sql_test.regular_test(reviews) VALUES('sa1');
INSERT INTO sql_test.regular_test(reviews) VALUES('abc');
INSERT INTO sql_test.regular_test(reviews) VALUES('bbq');
INSERT INTO sql_test.regular_test(reviews) VALUES('\\');
INSERT INTO sql_test.regular_test(reviews) VALUES('aaaaa');

 2) 추출하기

  (1) 숫자로만 이루어져 있는 데이터 추출하기

SELECT *
FROM sql_test.regular_test
WHERE reviews REGEXP ('^[0-9]*$');

 (2) 한글로만 이루어져 있는 데이터 추출하기

SELECT *
FROM sql_test.regular_test
WHERE reviews REGEXP ('^[가-힣]*$');

  (3) 영어로만 이루어져 있는 데이터 추출하기

SELECT *
FROM sql_test.regular_test
WHERE reviews REGEXP ('^[a-zA-Z]*$');

  (4) 영어나 숫자로만 이루어져 있는 데이터 추출하기

SELECT *
FROM sql_test.regular_test
WHERE reviews REGEXP ('^[a-zA-Z0-9]*$');

  (5) 해당 문자들이 포함된 데이터 추출하기

SELECT *
FROM sql_test.regular_test
WHERE reviews REGEXP ('abc');

  (6) a 와 c 사이에 문자 하나가 들어간 데이터 추출하기

SELECT *
FROM sql_test.regular_test
WHERE reviews REGEXP ('a.c');

  (7) n 또는 s 이후 a 가 포함된 데이터 추출하기

SELECT *
FROM sql_test.regular_test
WHERE reviews REGEXP ('[ns]a');

Comments