개발 & 데이터베이스/DB

오라클 LIKE 함수, REGEXP_LIKE 함수 (다중 LIKE)

K.두부 2022. 1. 17. 23:39
반응형

LIKE, REGEXP_LIKE 함수 정의

해당 컬럼의 문자열 안에서 특정 문자값이 포함되어 있는지 찾을 때 사용하는 함수

 

LIKE, REGEXP_LIKE 함수 사용 방법

CREATE TABLE STUDENT (
    SNAME VARCHAR2 (20) NOT NULL,
    S_ID INTEGER NOT NULL,
    PRIMARY KEY(S_ID)
);

INSERT INTO STUDENT VALUES('홍길동' 1);
INSERT INTO STUDENT VALUES('김두부' 2);
INSERT INTO STUDENT VALUES('손오공' 3);
INSERT INTO STUDENT VALUES('유재석' 4);
INSERT INTO STUDENT VALUES('강호동' 5);
INSERT INTO STUDENT VALUES('김기린' 6);
INSERT INTO STUDENT VALUES('강아지' 7);

 

1. LIKE 함수

 ⑴ 이름에 '길'이 들어간 사람을 구하시오.

SELECT SNAME
FROM STUDENT
WHERE SNAME LIKE '%길%';

 ⑵ 이름에 '홍'이 안들어간 사람을 구하시오.

SELECT SNAME
FROM STUDENT
WHERE SNAME NOT LIKE '%홍%';

 ⑶ 이름에 '홍'과 '강'이 들어간 사람을 구하시오.

SELECT SNAME
FROM STUDENT
WHERE SNAME LIKE '%홍%' OR SNAME LIKE '%강%';

 

2. 다중 LIKE

 ⑴ LIKE 함수를 이용해서 '홍', '김', '이', '강'이 들어간 사람을 구하시오.

SELECT SNAME
FROM STUDENT
WHERE SNAME LIKE '%홍%' OR SNAME LIKE '%김%'
    OR SNAME LIKE '%이%' OR SNAME LIKE '%강%';

 ⑵ REGEXP_LIKE 함수를 이용해서 '홍', '김', '이', '강'이 들어간 사람을 구하시오.

SELECT SNAME
FROM STUDENT
WHERE REGEXP_LIKE (SNAME, '(홍|김|이|강)');

 

반응형