Recent Posts
Recent Comments
Archives
반응형
250x250
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Today
Yesterday

Total
05-10 00:00
관리 메뉴

Hey Tech

[SQLite] LIKE: 특정 위치에 문자열을 포함한 데이터만 출력하기! 본문

AI & 빅데이터/SQLite

[SQLite] LIKE: 특정 위치에 문자열을 포함한 데이터만 출력하기!

Tony Park 2021. 2. 7. 09:52
728x90
반응형

안녕하세요, 오늘은 LIKE 구문을 활용하여 특정 위치에 문자열을 포함한 데이터만 출력하는 방법에 대해 공유해 드립니다.

오늘도 SQLite를 기반으로 연습용 데이터셋(MLB 선수 정보)를 활용하여 설명해 드립니다.

SQLite 및 연습용 데이터 설치는 아래 포스팅을 참고해 주세요.

heytech.tistory.com/11?category=453619

 

바로 시작합니다!

LIKE 구문 설명

조건문을 작성할 때 조건식과 완벽하게 일치하지 않더라도 어느정도 유사한 데이터를 출력하고 싶은 경우가 있습니다.

특히 문자열을 활용할 때 이러한 상황이 빈번히 발생하죠. 예를 들어, 특정 문자열을 포함한 데이터를 찾고 싶을 가 있습니다.

이러한 상황에서 활용할 수 것이 LIKE 구문 입니다.

 

LIKE 구문은 2가지 와일드 문자(퍼센트(%), 언더바(_)에 따라 쓰임새가 다르기 때문에 와일드 문자에 따라 나누어 설명드리겠습니다.

 

설명의 편의성을 위해 데이터셋 예시로서

Fruits 테이블이 있고 NAME 칼럼 "딸기바나나", "딸기", "산딸기" 데이터가 있다고 가정해 보겠습니다.

 

(1)  퍼센트(%) 활용

퍼센트(%) 조건식 문자열 앞뒤로 오는 문자열의 글자 수는 고려하지 않습니다.

1)  문자열 앞뒤 %

문자열 앞뒤에 퍼센트(%)를 붙일 경우, 해당 문자열 앞뒤 어떤 길이의 문자열이 와도 상관없이 출력합니다.

다시 말해, 해당 문자열을 포함하는 데이터를 모두 출력합니다.

-- 데이터 예시: "딸기바나나", "딸기", "산딸기"

SELECT
	*
FROM
	Fruits
WHERE NAME LIKE "%딸기%"

출력 예시는 다음과 같습니다.

-- 출력예시: "딸기바나나", "딸기", "산딸기"

2)  문자열 앞 %

문자열 에만 퍼센트(%)를 붙일 경우,

해당 문자열  어떤 길이의 문자열이 와도 상관없지만

 어떠한 문자열이 있으면 출력하지 않습니다.

-- 데이터 예시: "딸기바나나", "딸기", "산딸기"

SELECT
	*
FROM
	Fruits
WHERE NAME LIKE "%딸기"

출력예시는 다음과 같습니다.

"딸기"는 출력되었지만 "딸기" 단어 뒤에 다른 문자열이 있는 "딸기바나나"는 출력되지 않는 것을 확인할 수 있습니다.

-- 출력예시: "딸기", "산딸기"

3)  문자열 뒤 %

문자열 에만 퍼센트(%)를 붙일 경우,

해당 문자열  어떤 길이의 문자열이 와도 상관없지만

 어떠한 문자열이 있으면 출력하지 않습니다.

-- 데이터 예시: "딸기바나나", "딸기", "산딸기"

SELECT
	*
FROM
	Fruits
WHERE NAME LIKE "딸기%"

출력 예시는 다음과 같습니다.

"딸기"는 출력되었지만 "딸기" 단어 앞에 다른 문자열이 있는 "산딸기"는 출력되지 않는 것을 확인할 수 있습니다.

-- 출력예시: "딸기바나나", "딸기"

(2)  언더바(_) 활용

퍼센트(%)가 조건식 문자열 앞뒤로 오는 문자열의 길이를 고려하지 않았다면

언더바(_) 조건식 문자열 앞/뒤로 오는 문자열의 한 글자만 고려합니다, 즉 단어의 길이도 고려한 다는 것입니다.

이것이 퍼센트와 언더바의 활용 차이점입니다.

1)  언더바(_) 1개만 사용할 경우

-- 데이터 예시: "딸기바나나", "딸기", "산딸기"

SELECT
	*
FROM
	Fruits
WHERE NAME LIKE "딸기_"

"딸기" 단어 뒤에 정확히 1글자만 더 있는 데이터가 없기 때문에 

"딸기바나나", "딸기", "산딸기" 값 모두 출력되지 않은 것을 확인할 수 있습니다.

-- 출력예시: 

2)  문자열 내 특정 위치의 글자 존재 여부 확인

언더바(_)를 이용하면 문자열 내에 특정 위치의 글자가 존재하는 데이터만 선별적으로 출력할 수 있습니다.

예를 들어, 좌측에서 한 글자 뒤에 "기"라는 단어가 포함된 2글자의 단어만 출력해 보겠습니다.

-- 데이터 예시: "딸기바나나", "딸기", "산딸기"

SELECT
	*
FROM
	Fruits
WHERE NAME LIKE "_기"

출력 예시는 다음과 같습니다.

좌측에서 두 번째 자리에 "기"라는 글자를 포함한 두 글자의 단어만 출력되는 것을 확인할 수 있습니다.

즉, "산딸기"라는 문자열의 두번째 자리에는 "기"라는 단어가 아닌 "딸"이라는 글자가 포함되어 있고 글자수 역시 3글자이기 때문에 출력되지 않습니다. 또한, "딸기바나나" 단어는 좌측에서 두 번째 자리의 글자가 "기"로 일치하지만 글자수가 2글자가 아니기 때문에 출력되지 않는 것을 확인하실 수 있습니다.

-- 출력예시: "딸기"

포스팅에 오류가 있을 경우 댓글 남겨주시면 대단히 감사드리겠습니다.

그럼 오늘도 즐거운 하루 보내시길 바랍니다 :)

고맙습니다.

728x90
반응형
Comments