SQL에서의 데이터 풀 텍스트 검색 연습문제

SQL은 데이터베이스 내에서 텍스트 데이터를 검색하는 데 많이 사용되는 강력한 도구입니다. 풀 텍스트 검색은 특히 사용자가 키워드를 사용하여 텍스트 데이터를 쉽게 찾을 수 있도록 도와줍니다.

이번 연습문제에서는 SQL에서 데이터 풀 텍스트 검색을 연습해보겠습니다. 아래의 상황에 맞게 SQL 쿼리를 작성해보세요.

문제상황

온라인 서점에서는 고객들이 책을 검색하고 구매할 수 있습니다. 대부분의 고객들은 키워드로 책을 검색하며, 결과 목록에서는 키워드가 책 제목, 저자, 출판사, 또는 설명에 포함되어 있는 책들이 나타납니다.

책 데이터베이스의 구조는 다음과 같습니다:

Table: books | book_id | title | author | publisher | description | |———|————|————|————-|—————————————–| | 1 | The Great Gatsby | F. Scott Fitzgerald | Scribner | A story of the Jazz Age in America | | 2 | To Kill a Mockingbird | Harper Lee | J. B. Lippincott & Co. | Set in the Deep South during the Great Depression | | 3 | 1984 | George Orwell | Secker & Warburg | Dystopian novel set in a totalitarian society | …

문제

주어진 키워드가 책 데이터베이스의 어느 부분에 일치하는지 확인하는 SQL 쿼리를 작성하세요.

입력

출력

SQL 쿼리 작성

SELECT title, author, publisher, description
FROM books
WHERE MATCH (title, author, publisher, description) AGAINST ('+Mockingbird' IN BOOLEAN MODE);

이 쿼리는 books 테이블에서 title, author, publisher, description 열을 검색하며, 주어진 키워드와 일치하는 책들의 정보를 반환합니다. 즉, “Mockingbird”라는 단어를 포함하는 책들을 찾습니다.

이 쿼리에서 사용한 MATCHAGAINST 절은 SQL에서 풀 텍스트 검색을 수행할 수 있게 해주는 MySQL의 내장 함수입니다. AGAINST에서는 IN BOOLEAN MODE를 사용하여 부울 검색 모드로 설정했습니다. 이렇게 하면 AND, OR, NOT 등의 논리 연산자를 사용하여 검색 쿼리를 조정할 수 있습니다.

참고 자료

해시태그

#SQL #데이터풀텍스트검색