2021-05-03
LIKE를 사용하면 SQL 내부에서 특정 조건에 맞는 문자열을 추출할 수 있는데 이 방법을 알아보도록 하자.
- 예제
아래는 예제로 사용될 테이블인 SEE_INFO 테이블이다.
- 상황1
이름에 TEST가 들어간 사람들만 추출해보자.
SELECT * FROM SEE_INFO WHERE NAME LIKE 'TEST%';
SELECT * FROM SEE_INFO WHERE NAME LIKE 'TES%';
SELECT * FROM SEE_INFO WHERE NAME LIKE 'TE%';
SELECT * FROM SEE_INFO WHERE NAME LIKE 'T%';
'문자%'의 의미는 주어진 문자로 시작하는 모든 데이터를 추출하게 된다. 때문에 위의 4개의 코드는 모두 똑같은 동작을 하며 결과로는 아래와 같이 출력된다.
- 상황 2
이름이 A로 시작해서 A로 끝나는 사람을 찾아보자.
SELECT * FROM SEE_INFO WHERE NAME LIKE '%A' AND NAME LIKE 'A%';
해당 코드는 A로 시작해서 A로 끝나는 문자열만 추출하게 된다. 혹시 코드를 보고 '%A%'로 해도 되지 않을까? 라고 생각할 수 도 있는데 이는 A가 포함되기만 하면 모두 추출하기 때문에 주어진 상황과는 맞지 않다. 떄문에 위의 코드와 같이 작성해야 하며, 결과를 보면 아래와 같이 출력되게 된다.
- 상황 3
이름에 두 번째 글자가 C인 사람을 찾아보자.
SELECT * FROM SEE_INFO WHERE NAME LIKE '_C%';
_ 는 하나의 문자와 대응하게 된다. 때문에 _문자 뒤에 C%를 붙여주게 되면 이름의 두번째 자리가 C로 시작하는 사람들을 찾게 된다. 결과는 아래와 같이 나타난다.
메인 이미지 링크: Photo by Troy Spoelma on Unsplash