manpagez: man pages & more
man sqlite3(1)
Home | html | info | man
sqlite3(1)                  General Commands Manual                 sqlite3(1)


NAME

       sqlite3 - A command line interface for SQLite version 3



SYNOPSIS

       sqlite3 [options] [databasefile] [SQL]



SUMMARY

       sqlite3 is a terminal-based front-end to the SQLite library that can
       evaluate queries interactively and display the results in multiple
       formats.  sqlite3 can also be used within shell scripts and other
       applications to provide batch processing features.



DESCRIPTION

       To start a sqlite3 interactive session, invoke the sqlite3 command and
       optionally provide the name of a database file.  If the database file
       does not exist, it will be created.  If the database file does exist,
       it will be opened.

       For example, to create a new database file named "mydata.db", create a
       table named "memos" and insert a couple of records into that table:

       $ sqlite3 mydata.db
       SQLite version 3.43.0 2023-08-11 17:45:23
       Enter ".help" for usage hints.
       sqlite> create table memos(text, priority INTEGER);
       sqlite> insert into memos values('deliver project description', 10);
       sqlite> insert into memos values('lunch with Christine', 100);
       sqlite> select * from memos;
       deliver project description|10
       lunch with Christine|100
       sqlite>


       If no database name is supplied, the ATTACH sql command can be used to
       attach to existing or create new database files.  ATTACH can also be
       used to attach to multiple databases within the same interactive
       session.  This is useful for migrating data between databases, possibly
       changing the schema along the way.

       Optionally, a SQL statement or set of SQL statements can be supplied as
       a single argument.  Multiple statements should be separated by semi-
       colons.

       For example:

       $ sqlite3 -line mydata.db 'select * from memos where priority > 20;'
           text = lunch with Christine
       priority = 100



   SQLITE META-COMMANDS
       The interactive interpreter offers a set of meta-commands that can be
       used to control the output format, examine the currently attached
       database files, or perform administrative operations upon the attached
       databases (such as rebuilding indices).   Meta-commands are always
       prefixed with a dot (.).

       A list of available meta-commands can be viewed at any time by issuing
       the '.help' command.  For example:

       sqlite> .help


       The available commands differ by version and build options, so they are
       not listed here. Please refer to your local copy for all available
       options.




INIT FILE

       sqlite3 reads an initialization file to set the configuration of the
       interactive environment.  Throughout initialization, any previously
       specified setting can be overridden.  The sequence of initialization is
       as follows:

       o The default configuration is established as follows:


       mode            = LIST
       separator       = "|"
       main prompt     = "sqlite> "
       continue prompt = "   ...> "


       o If the environment variable XDG_CONFIG_HOME is set then
       ${XDG_CONFIG_HOME}/sqlite3/sqliterc is checked, else
       ~/.config/sqlite3/sqliterc is checked. If the selected file does not
       exist then the fallback of ~/.sqliterc is used. It should generally
       only contain meta-commands.

       o If the -init option is present, the specified file is processed.

       o All other command line options are processed.



HISTORY FILE

       sqlite3 may be configured to use a history file to save SQL statements
       and meta-commands entered interactively. These statements and commands
       can be retrieved, edited and, reused at the main and continue prompts.
       If the environment variable SQLITE_HISTORY is set, it will be used as
       the name of the history file, whether it already exists or not. If it
       is not set but the XDG_STATE_HOME environment variable is then
       ${XDG_STATE_HOME}/sqlite_history is used. If XDG_STATE_HOME is not set
       then ~/.local/state/sqlite_history is used. If the selected file does
       not exist then ~/.sqlite_history will be used as the history file. If
       any history file is found, it will be written if the shell exits
       interactive mode normally, regardless of whether it existed previously,
       though saving will silently fail if the history file's directory does
       not exist.


SEE ALSO

       https://sqlite.org/cli.html
       https://sqlite.org/fiddle (a WebAssembly build of the CLI app)
       The sqlite3-doc package.


AUTHOR

       This manual page was originally written by Andreas Rottmann
       <rotty@debian.org>, for the Debian GNU/Linux system (but may be used by
       others). It was subsequently revised by Bill Bumgarner <bbum@mac.com>,
       Laszlo Boszormenyi <gcs@debian.hu>, and the sqlite3 developers.

                         Fri Aug 11 23:50:12 CET 2023               sqlite3(1)

sqlite3 3.51.0 - Generated Tue Nov 4 15:30:43 CST 2025
© manpagez.com 2000-2025
Individual documents may contain additional copyright information.