logo

[SQLite] 가상 테이블과 텍스트 검색

SQLite에서 VIRTUAL TABLE은 SQLite 데이터베이스 내에 존재하지만, 그 데이터가 실제로 저장되는 방식이나 형태가 일반 테이블과 다른 특별한 종류의 테이블입니다. 가상 테이블은 주로 외부 데이터 소스를 SQLite 데이터베이스 내에서 직접 접근하기 위해 사용되거나, 복잡한 계산이나 데이터 처리를 위한 사용자 정의 검색 메커니즘을 구현할 때 사용됩니다. 가상 테이블은 SQLite 확장 모듈을 통해 구현되며, 이를 통해 SQLite는 CSV 파일, JSON 데이터, 외부 데이터베이스, 전체 텍스트 검색 기능 등 다양한 데이터 소스와 상호 작용할 수 있습니다.

 

가상 테이블 생성 예시: FTS (Full Text Search)

SQLite의 가장 일반적인 가상 테이블 사용 사례 중 하나는 전체 텍스트 검색(FTS) 모듈을 사용하는 것입니다. FTS 모듈을 사용하면 대량의 텍스트 데이터에 대해 고속의 전체 텍스트 검색 기능을 구현할 수 있습니다. 이를 통해 키워드 기반 검색, 문구 검색, 토큰화 및 순위 지정 같은 고급 검색 기능을 사용할 수 있습니다.

FTS 가상 테이블 생성

CREATE VIRTUAL TABLE Articles USING fts5(Title, Content);

이 예시는 Articles라는 이름의 가상 테이블을 생성하며, TitleContent라는 두 개의 열을 가집니다. 이 테이블은 FTS5 모듈을 사용하여 생성되므로, TitleContent 열에 저장된 텍스트 데이터에 대해 전체 텍스트 검색을 수행할 수 있습니다.

데이터 삽입

INSERT INTO Articles (Title, Content)
VALUES (
    'SQLite Virtual Table',
    'SQLite supports virtual table via modules.');

전체 텍스트 검색을 수행합니다.

SELECT * FROM Articles WHERE Articles MATCH 'virtual';

MATCH 연산자를 사용하여 'virtual'이라는 단어가 포함된 모든 기사를 조회합니다.

Previous