반응형
이 게시물은 Database GUI Oracle SQL Developer의 아래 버전 정보를 기준으로 작성되었습니다. Java(TM) 플랫폼 : 1.8.0_321 Oracle IDE : 4.1.5.21.78 |
설명
원하는 문자가 포함된 데이터, 자릿수를 설정한 데이터 검색 등에 사용
문법
SELECT ... FROM ... WHERE [컬럼명] (NOT) LIKE '문자열';
※ 여기서 문자열 앞뒤로 아래의 기호를 붙여서 앞뒤로 포함된 문자열인지, 자릿수를 설정한 문자열인지를 설정할 수 있다. 구체적인 활용은 예시에 작성한 주석을 통해 살펴보자.
와일드카드(%) : 문자열이 존재하는 것이 앞인지 뒤인지 조회할 때 사용 언더바(_) : 문자열의 자릿수를 설정할 때 사용. |
SELECT *
FROM EMP
WHERE JOB LIKE 'SALESMAN';
-- 'JOB'이 'SALESMAN'인 데이터를 조회
SELECT *
FROM EMP
WHERE ENAME LIKE 'S%';
-- 'ENAME'이 'S'로 시작하는 데이터를 조회
SELECT *
FROM EMP
WHERE ENAME LIKE '_L%';
-- 'ENAME'의 두 번째 글자가 'L'인 데이터를 조회
SELECT *
FROM EMP
WHERE ENAME NOT LIKE '%AM%';
-- 'ENAME'에 'AM' 문자열이 포함되지 않은 데이터를 조회
-- 테이블에서 'ADAMS', 'JAMES'가 조회에서 제외됨
SELECT *
FROM EMP
WHERE ENAME LIKE '%M%S%';
-- 'ENAME'에 'M'과 'S' 문자열이 포함된 데이터를 조회
SELECT *
FROM EMP
WHERE ENAME LIKE '_____';
-- 'ENAME'이 다섯 글자인 데이터를 조회(언더바 5개).
결과
SELECT *
FROM EMP
WHERE JOB LIKE 'SALESMAN';
SELECT *
FROM EMP
WHERE ENAME LIKE 'S%';
SELECT *
FROM EMP
WHERE ENAME LIKE '_L%';
SELECT *
FROM EMP
WHERE ENAME NOT LIKE '%AM%';
SELECT *
FROM EMP
WHERE ENAME LIKE '%M%S%';
SELECT *
FROM EMP
WHERE ENAME LIKE '_____';
만약 "%", "_"라는 문자열이 포함된 데이터를 검색하고 싶다면?
SELECT ... FROM ... WHERE [컬럼명] LIKE 'A\_A' ESCAPE '\';
SELECT ... FROM ... WHERE [컬럼명] LIKE 'A\%A' ESCAPE '\';
위와 같이 LIKE 뒤에 ESCAPE를 사용하여 방식으로 쿼리를 작성하면 된다.
반응형
'개발 지식 > [DBMS] Oracle' 카테고리의 다른 글
[Oracle] UNION, UNION ALL (0) | 2022.04.22 |
---|---|
[Oracle] WHERE(5) - NULL 조건 (0) | 2022.04.21 |
[Oracle] WHERE(3) - IN/BETWEEN 연산자 (0) | 2022.04.19 |
[Oracle] WHERE(2) - <>/!=/^= 연산자 (0) | 2022.04.18 |
[Oracle] WHERE(1) - WHERE, AND/OR 연산자 (0) | 2022.04.17 |