The most popular package on MELPA is esqlite
. Here's a simple example of its usage:
(require 'esqlite)
(esqlite-read "database.sqlite" "SELECT * FROM hoge")
Your other option is the sqlite
package, also from MELPA. An example snippet with that packages API is:
(require 'sqlite)
(let ((descriptor (sqlite-init "~/mydb.sqlite")))
(setq res (sqlite-query descriptor "SELECT * FROM persona"))
(sqlite-bye descriptor)
res)
abo-abo also pointed out the more powerful emacsql
package which is more can interface with other RDBMS (including MySQL, and SQLite). Of the packages described here, emacsql
has the most abstract API (where queries are represented as objects instead of raw strings). Here's an example of its usage:
(require 'emacsql)
(defvar db (emacsql-connect "~/company.db"))
;; Query the database for results:
(emacsql db [:select [name id]
:from people
:where (> salary 62000)])
There are probably even more solutions. The question, then, comes down to which package supports the methods you need, and which API you like the most.