SQLite - LIKE 절: 초보자를 위한 친절한 가이드

안녕하세요, 미래의 데이터 마법사 여러분! 오늘 우리는 SQLite의 세계로 뛰어들어 그 중에서도 가장 강력하고 유연한 도구 중 하나인 LIKE 절에 대해 배우게 될 것입니다. 프로그래밍에 새로운 사람이라고 걱정하지 마세요; 저는 당신의 친절한 가이드가 되어 단계별로 모든 것을 설명해 드릴 것입니다. 그럼 시작해 보겠습니다!

SQLite - LIKE Clause

LIKE 절은 무엇인가요?

거대한 도서관에서 책을 찾는다고 상상해 보세요, 하지만 제목의 일부만 기억하고 있다면 어떨까요? 비슷한 제목의 책을 검색할 수 있다면 얼마나 좋을까요? SQLite에서 LIKE 절이 하는 일이 바로 그거입니다! 데이터베이스에서의 데이터를 위해서입니다!

LIKE 절은 SQL 쿼리에서 지정된 패턴을 열에 검색하는 데 사용됩니다. 정확한 값을 모르더라도 데이터를 찾을 수 있는 초능력 같은 검색 기능입니다.

LIKE 절의 문법

LIKE 절의 기본 문법을 살펴보겠습니다:

SELECT column1, column2, ...
FROM table_name
WHERE columnN LIKE pattern;

각 부분의 의미는 다음과 같습니다:

  • SELECT: 결과에서 볼 열을 지정합니다.
  • FROM: SQLite가 검색할 테이블을 지정합니다.
  • WHERE: 마법이 일어나는 곳입니다! 데이터를 필터링하는 조건을 따릅니다.
  • LIKE: 패턴 일치를 사용하고 싶다는 키워드를 나타냅니다.
  • pattern: 무엇을 찾고 있는지 지정합니다.

와일드카드 문자

사례를 들기 전에 LIKE 절을 강력하게 만드는 두 가지 특별한 문자에 대해 알아보겠습니다:

  1. % (퍼센트 기호): 영문자가 없을 수도 있고, 하나 또는 여러 개일 수 있습니다.
  2. _ (언더스코어): 하나의 문자를 나타냅니다.

이들은 카드 게임의 조커처럼 패턴 검색에서 다른 문자를 대신할 수 있습니다.

LIKE 절의 사용 사례

이제 손을 dirt고 실제 사례를 살펴보겠습니다. books 테이블이라는 테이블이 있으며, id, title, author 열이 있습니다.

예제 1: 제목이 "The"로 시작하는 책 찾기

SELECT title
FROM books
WHERE title LIKE 'The%';

이 쿼리는 "The"로 시작하는 모든 책 제목을 반환합니다. 끝에 %는 "그 뒤에 무엇이 와도 상관없다"는意味입니다.

결과는 다음과 같을 수 있습니다:

  • The Great Gatsby
  • The Catcher in the Rye
  • The Hobbit

예제 2: 제목에 "of"가 포함된 책 찾기

SELECT title
FROM books
WHERE title LIKE '%of%';

이 쿼리는 제목에 "of"가 어디에나 포함된 책을 찾습니다. 양쪽에 %는 "앞 뒤에 무엇이 와도 상관없다"는意味입니다.

결과는 다음과 같을 수 있습니다:

  • The Grapes of Wrath
  • Lord of the Rings
  • Of Mice and Men

예제 3: 특정 초성을 가진 작가 찾기

SELECT author
FROM books
WHERE author LIKE 'J. %';

이 쿼리는 이름이 "J."로 시작하고 뒤에 공백과 다른 글자가 오는 작가를 찾습니다.

결과는 다음과 같을 수 있습니다:

  • J. K. Rowling
  • J. R. R. Tolkien
  • J. D. Salinger

예제 4: 와일드카드 문자 사용

SELECT title
FROM books
WHERE title LIKE '___';

이 쿼리는 정확히 세 글자인 책 제목을 찾습니다. 각 _는 하나의 문자를 나타냅니다.

결과는 다음과 같을 수 있습니다:

  • Cat
  • Dog
  • Pig

예제 5: 와일드카드 조합 사용

SELECT title
FROM books
WHERE title LIKE 'The ___ of%';

이 쿼리는 "The"로 시작하고 그 뒤에 세 글자가 오고 "of"가 나오고 그 뒤에 무엇이 와도 상관없는 제목을 찾습니다.

결과는 다음과 같을 수 있습니다:

  • The Art of War
  • The Joy of Cooking
  • The Age of Innocence

대소문자 구분

기본적으로 SQLite의 LIKE 절은 대소문자를 구분하지 않습니다. 즉, 'the%'는 'The Great Gatsby'와 'the hobbit' 모두 일치합니다. 그러나 대소문자를 구분하고 싶다면 GLOB 절을 사용할 수 있습니다. 하지만 그건 다른 날 이야기입니다!

특수 문자 이스케이프

데이터에서 리터럴 %_를 검색하고 싶다면, 특수 문자 앞에 이스케이프 문자 \를 사용할 수 있습니다:

SELECT title
FROM books
WHERE title LIKE '%100\%%';

이 쿼리는 "100%"로 끝나는 제목을 찾습니다. 예를 들어 "Top 100%"나 "The Best 100%"와 같은 제목입니다.

LIKE 절의 실용적인 사용

LIKE 절은 다양한 실제 상황에서 매우 유용합니다:

  1. 부분 이메일 주소로 사용자 검색
  2. 제품 설명의 일부로 제품 찾기
  3. 날짜 패턴으로 로그 항목 필터링
  4. 특정 확장자를 가진 파일 검색

LIKE 절 메서드

다음 표는 LIKE 절에서 사용할 수 있는 다양한 패턴을 요약합니다:

패턴 설명 예제
LIKE 'a%' "a"로 시작하는 모든 값 찾기 LIKE 'apple%'는 "apple pie"와 일치
LIKE '%a' "a"로 끝나는 모든 값 찾기 LIKE '%apple'는 "pineapple"와 일치
LIKE '%or%' "or"가 어디에나 포함된 모든 값 찾기 LIKE '%book%'는 "bookstore"와 일치
LIKE '_r%' 두 번째 자리에 "r"가 있는 모든 값 찾기 LIKE '_r%'는 "brick"와 일치
LIKE 'a_%' "a"로 시작하고 최소 2 글자인 모든 값 찾기 LIKE 'a_%'는 "apple"와 일치하지만 "a"는 아님
LIKE 'a__%' "a"로 시작하고 최소 3 글자인 모든 값 찾기 LIKE 'a__%'는 "apple"와 일치하지만 "ax"는 아님

결론

이제 SQLite의 강력한 LIKE 절에 대해 배웠습니다. 데이터베이스 내에 있는 초능력 같은 검색 엔진을 가지게 되었습니다. 연습이 완벽을 만든다는 것을 기억하고, 다양한 패턴과 조합을 실험해 보세요.

다음에 데이터베이스에서 정확한 일치를 몰라도 찾아야 할 때, LIKE 절을 새로운 최고의 친구로 여기세요. 유연하고 강력하며, 익숙해지면 절대로 없앨 수 없을 것입니다!

계속 코딩하고, 호기심을 가지고, 행복한 데이터 사냥을 하세요!

Credits: Image by storyset