SlideShare a Scribd company logo
The sqlite3 command line tool

In this part of the SQLite tutorial, we will cover the sqlite3 command line tool.


The manual describes the sqlite3 as follows: sqlite3 is a terminal-based front-end to the SQLite library

that can evaluate queries interactively and display the results in multiple for‐ mats. sqlite3 can also be

used within shell scripts and other applica‐ tions to provide batch processing features.




sqlite3 tool

sqlite3 is a terminal based frontend to the SQLite library that can evaluate queries interactively and

display the results in multiple formats. It can also be used within scripts.


On the terminal screen, we see the following prompt of the sqlite3 tool.




  $ sqlite3 test.db




  SQLite version 3.5.9




  Enter ".help" for instructions




  sqlite>


The .help is one of the meta commnads of the sqlite3 tool. It shows a list of them. The .exit and the

The .quit commands exit the sqlite3 session. The .databases command shows the attached

databases. The .tables command lists the available tables.




Creating a database

The complete SQLite database is stored in a single cross-platform disk file. We use the sqlite3
command line tool to create a new database file.




   $ sqlite3 movies.db


Here we create a new movies.db database. If the exists, it is opened.




Basic sqlite3 meta commnads

Next we describe some of the meta commands of the sqlite3 tool.




  sqlite> .tables




  Books            Customers        Log              Orders             Testing




  Cars             Friends          Names            Reservations


The .tables commnad now shows the available tables.




  sqlite> SELECT * FROM Names;




  1|Tom




  2|Lucy




  3|Frank




  4|Jane




  5|Robert


Here we get the output of a simple SELECT statement. By default, the output mode is line and the

separator is |.
sqlite> .separator :




  sqlite> SELECT * FROM Names;




  1:Tom




  2:Lucy




  3:Frank




  4:Jane




  5:Robert


Here we have used a new colon separator.


There are several other output modes available. The following example will show the column output

mode.




  sqlite> .mode column




  sqlite> .headers on




  sqlite> SELECT * FROM Names;




  Id            Name




  ----------    ----------




  1             Tom
2              Lucy




  3              Frank




  4              Jane




  5              Robert


In this example, we have our data in the column mode. Plus we show the column headers with the

.headers command. By default, the headers are hidden.


The .width command adjusts the size of the columns.




  sqlite> SELECT Title, Author FROM Books;




  Title             Author




  -------------     -----------




  War and Peace     Leo Tolstoy




  The Brothers      Fyodor Dost




  Crime and Pun     Fyodor Dost


Here, the column widths are not wide enough to display all data correctly.




  sqlite> .width 22, 18




  sqlite> SELECT Title, Author FROM Books;




  Title                        Author
----------------------      ------------------




  War and Peace               Leo Tolstoy




  The Brothers Karamazov      Fyodor Dostoyevsky




  Crime and Punishment        Fyodor Dostoyevsky


Here we change the column widths. The first column will be 22 characters wide, the second 18.




  sqlite> .show




        echo: off




    explain: off




    headers: off




        mode: list




  nullvalue: ""




     output: stdout




  separator: "|"




       width:


The .show command lists various settings. We can see the output mode, the separator used in the list

mode, the headers.
sqlite> .schema Cars




  CREATE TABLE Cars(Id integer primary key, Name text, Cost integer);


The .schema command shows the structure of the table. It gives the DDL SQL to create the table.




Executing SQL from the shell

We can execute SQL commands from the shell.




  $ sqlite3 test.db "SELECT * FROM Cars;"




  Id            Name          Cost




  ----------    ----------    ----------




  1             Audi          52642




  2             Mercedes      57127




  3             Skoda         9000




  4             Volvo         29000




  5             Bentley       350000




  6             Citroen       21000




  7             Hummer        41400




  8             Volkswagen    21600
Here we have non interactively executed a SELECT SQL command. We selected all cars from the Cars

table.




Dumping tables

It is possible to dump tables in SQL format to the disk. This way we can easily save the structure and

the data of a database table.


We have the Cars table.




  sqlite> SELECT * FROM Cars;




  Id             Name           Cost




  ----------     ----------     ----------




  1              Audi           52642




  2              Mercedes       57127




  3              Skoda          9000




  4              Volvo          29000




  5              Bentley        350000




  6              Citroen        21000




  7              Hummer         41400
8            Volkswagen    21600


Now, we are going to use the .dump command to dump the table.




  sqlite> .dump Cars




  BEGIN TRANSACTION;




  CREATE TABLE Cars(Id integer primary key, Name text, Cost integer);




  INSERT INTO "Cars" VALUES(1,'Audi',52642);




  INSERT INTO "Cars" VALUES(2,'Mercedes',57127);




  INSERT INTO "Cars" VALUES(3,'Skoda',9000);




  INSERT INTO "Cars" VALUES(4,'Volvo',29000);




  INSERT INTO "Cars" VALUES(5,'Bentley',350000);




  INSERT INTO "Cars" VALUES(6,'Citroen',21000);




  INSERT INTO "Cars" VALUES(7,'Hummer',41400);




  INSERT INTO "Cars" VALUES(8,'Volkswagen',21600);




  COMMIT;


The .dump command shows us the SQL necessary to recreate the table.




  sqlite> .output cars.sql
sqlite> .dump Cars


We can also redirect the output to a file. The .output command will redirect the output to the cars.sql

file.




   $ cat cars.sql




   BEGIN TRANSACTION;




   CREATE TABLE Cars(Id integer primary key, Name text, Cost integer);




   INSERT INTO "Cars" VALUES(1,'Audi',52642);




   ...


We verify it.




Reading SQL

We can read SQL from a file name with the .read commnad.




   sqlite> .tables Cars




   Cars




   sqlite> DROP TABLE CARS;




   sqlite> .tables Cars




   sqlite> .read cars.sql
sqlite> .tables Cars




  Cars




  sqlite> SELECT * FROM Cars WHERE id=1;




  Id              Name           Cost




  ----------      ----------     ----------




  1               Audi           52642


Here we have executed a series of commands. We drop the table and read it from the cars.sql, that we

have created previously.




Resource file

The sqlite3 tool has a resource file called .sqliterc. It is located in the home directory. If there is no

such file, we can simply create it. We can place the meta commnads there or the regular SQL

statements. However, we should avoid using SQL in the resource file.




  $ cat .sqliterc




  .mode column




  .header on




  .nullvalue NULL


Here is a simple example of a resource file. It has three meta commands. With resource file, we don't

have to execute meta commnads all over again, when we start the sqlite3 tool. They will be executed

automatically at the start of the tool.
$ sqlite3 test.db




  -- Loading resources from /home/vronskij/.sqliterc




  SQLite version 3.5.9




  Enter ".help" for instructions


We have a message saying, that the tool loaded resources upon the beginning.




Command line options

The tool has several command line options. They mostly duplicate the meta commands. Note, that

commnad line options overwrite the resource file meta commands.




  $ sqlite3 -version




  -- Loading resources from /home/vronskij/.sqliterc




  3.5.9


We get the sqlite3 version.




  $ sqlite3 -html test.db




  -- Loading resources from /home/vronskij/.sqliterc




  SQLite version 3.5.9




  Enter ".help" for instructions
sqlite> SELECT * FROM Cars LIMIT 2;




  <TR><TH>Id</TH><TH>Name</TH><TH>Cost</TH></TR>




  <TR><TD>1</TD>




  <TD>Audi</TD>




  <TD>52642</TD>




  </TR>




  <TR><TD>2</TD>




  <TD>Mercedes</TD>




  <TD>57127</TD>




  </TR>




The -html option causes the results to be output as simple HTML tables


In this part of the SQLite tutorial, we worked with the sqlite3 command line tool. We have described

various meta commnads. We have shown, how to dump tables, read SQL from files; we described the

sqlite's resource file.

More Related Content

PDF
Sq lite functions
PPT
mysqlHiep.ppt
PPTX
References
PDF
Database Oracle Basic
PDF
MySQL partitions tutorial
PPT
Blocks In Drupal
Sq lite functions
mysqlHiep.ppt
References
Database Oracle Basic
MySQL partitions tutorial
Blocks In Drupal

What's hot (18)

DOC
235689260 oracle-forms-10g-tutorial
PPT
Sql Injection
PPTX
Oracle: PLSQL Commands
PDF
CIS 336 Education guide/Tutorialrank.com
PPT
My sql with querys
PPT
PPT
Sql injections
DOCX
Instalacion ambiente web am en linux red hat
PPT
Les12[1]Creating Views
PPT
Les01[1]Writing Basic SQL Statements
PDF
Advanced tips of dbms statas
PPT
Les06[1]Subqueries
DOCX
Oracle Web Adi For upload item master
PDF
Exportrows
ODP
DOCX
database-querry-student-note
PPTX
Hbase interact with shell
PDF
Connor McDonald 11g for developers
235689260 oracle-forms-10g-tutorial
Sql Injection
Oracle: PLSQL Commands
CIS 336 Education guide/Tutorialrank.com
My sql with querys
Sql injections
Instalacion ambiente web am en linux red hat
Les12[1]Creating Views
Les01[1]Writing Basic SQL Statements
Advanced tips of dbms statas
Les06[1]Subqueries
Oracle Web Adi For upload item master
Exportrows
database-querry-student-note
Hbase interact with shell
Connor McDonald 11g for developers
Ad

Viewers also liked (6)

PPT
Java one 2010
ODP
SCDN 1
KEY
第5回SCDN - Things that become possible with HTML5
PDF
Introduction to sq lite
PDF
Creating, altering and dropping tables
PPT
мясной дом Бородина.
Java one 2010
SCDN 1
第5回SCDN - Things that become possible with HTML5
Introduction to sq lite
Creating, altering and dropping tables
мясной дом Бородина.
Ad

Similar to The sqlite3 commnad line tool (20)

ODP
Introduction4 SQLite
PDF
The select statement
PPTX
Sqlite3 command reference
PDF
Sq lite module5
PPTX
Python SQLite3...
DOCX
DOCX
SQLiteWrittenExplanation
PDF
Sq lite python tutorial sqlite programming in python
PPTX
Sq lite
PPTX
Sqlite
PPTX
android sqlite
PPTX
SQLite 3 chapter 4 BCA Notes Python NEP syllabus
PPTX
Python SQite3 database Tutorial | SQlite Database
PDF
PDF
Sq lite manager
PPT
Os Owens
PPT
MySql slides (ppt)
PPTX
Sqlite3 databases
PPTX
Data Handning with Sqlite for Android
PPTX
Tk2323 lecture 7 sql
Introduction4 SQLite
The select statement
Sqlite3 command reference
Sq lite module5
Python SQLite3...
SQLiteWrittenExplanation
Sq lite python tutorial sqlite programming in python
Sq lite
Sqlite
android sqlite
SQLite 3 chapter 4 BCA Notes Python NEP syllabus
Python SQite3 database Tutorial | SQlite Database
Sq lite manager
Os Owens
MySql slides (ppt)
Sqlite3 databases
Data Handning with Sqlite for Android
Tk2323 lecture 7 sql

Recently uploaded (20)

DOCX
The AUB Centre for AI in Media Proposal.docx
PDF
Building Integrated photovoltaic BIPV_UPV.pdf
PDF
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
PDF
Mobile App Security Testing_ A Comprehensive Guide.pdf
PDF
Diabetes mellitus diagnosis method based random forest with bat algorithm
PDF
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
PDF
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
PPTX
MYSQL Presentation for SQL database connectivity
PPTX
Cloud computing and distributed systems.
PDF
Unlocking AI with Model Context Protocol (MCP)
PDF
Agricultural_Statistics_at_a_Glance_2022_0.pdf
PDF
Per capita expenditure prediction using model stacking based on satellite ima...
PDF
Encapsulation_ Review paper, used for researhc scholars
PDF
Encapsulation theory and applications.pdf
PDF
Electronic commerce courselecture one. Pdf
PDF
KodekX | Application Modernization Development
PPTX
20250228 LYD VKU AI Blended-Learning.pptx
PPT
Teaching material agriculture food technology
PDF
Empathic Computing: Creating Shared Understanding
PDF
cuic standard and advanced reporting.pdf
The AUB Centre for AI in Media Proposal.docx
Building Integrated photovoltaic BIPV_UPV.pdf
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
Mobile App Security Testing_ A Comprehensive Guide.pdf
Diabetes mellitus diagnosis method based random forest with bat algorithm
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
MYSQL Presentation for SQL database connectivity
Cloud computing and distributed systems.
Unlocking AI with Model Context Protocol (MCP)
Agricultural_Statistics_at_a_Glance_2022_0.pdf
Per capita expenditure prediction using model stacking based on satellite ima...
Encapsulation_ Review paper, used for researhc scholars
Encapsulation theory and applications.pdf
Electronic commerce courselecture one. Pdf
KodekX | Application Modernization Development
20250228 LYD VKU AI Blended-Learning.pptx
Teaching material agriculture food technology
Empathic Computing: Creating Shared Understanding
cuic standard and advanced reporting.pdf

The sqlite3 commnad line tool

  • 1. The sqlite3 command line tool In this part of the SQLite tutorial, we will cover the sqlite3 command line tool. The manual describes the sqlite3 as follows: sqlite3 is a terminal-based front-end to the SQLite library that can evaluate queries interactively and display the results in multiple for‐ mats. sqlite3 can also be used within shell scripts and other applica‐ tions to provide batch processing features. sqlite3 tool sqlite3 is a terminal based frontend to the SQLite library that can evaluate queries interactively and display the results in multiple formats. It can also be used within scripts. On the terminal screen, we see the following prompt of the sqlite3 tool. $ sqlite3 test.db SQLite version 3.5.9 Enter ".help" for instructions sqlite> The .help is one of the meta commnads of the sqlite3 tool. It shows a list of them. The .exit and the The .quit commands exit the sqlite3 session. The .databases command shows the attached databases. The .tables command lists the available tables. Creating a database The complete SQLite database is stored in a single cross-platform disk file. We use the sqlite3
  • 2. command line tool to create a new database file. $ sqlite3 movies.db Here we create a new movies.db database. If the exists, it is opened. Basic sqlite3 meta commnads Next we describe some of the meta commands of the sqlite3 tool. sqlite> .tables Books Customers Log Orders Testing Cars Friends Names Reservations The .tables commnad now shows the available tables. sqlite> SELECT * FROM Names; 1|Tom 2|Lucy 3|Frank 4|Jane 5|Robert Here we get the output of a simple SELECT statement. By default, the output mode is line and the separator is |.
  • 3. sqlite> .separator : sqlite> SELECT * FROM Names; 1:Tom 2:Lucy 3:Frank 4:Jane 5:Robert Here we have used a new colon separator. There are several other output modes available. The following example will show the column output mode. sqlite> .mode column sqlite> .headers on sqlite> SELECT * FROM Names; Id Name ---------- ---------- 1 Tom
  • 4. 2 Lucy 3 Frank 4 Jane 5 Robert In this example, we have our data in the column mode. Plus we show the column headers with the .headers command. By default, the headers are hidden. The .width command adjusts the size of the columns. sqlite> SELECT Title, Author FROM Books; Title Author ------------- ----------- War and Peace Leo Tolstoy The Brothers Fyodor Dost Crime and Pun Fyodor Dost Here, the column widths are not wide enough to display all data correctly. sqlite> .width 22, 18 sqlite> SELECT Title, Author FROM Books; Title Author
  • 5. ---------------------- ------------------ War and Peace Leo Tolstoy The Brothers Karamazov Fyodor Dostoyevsky Crime and Punishment Fyodor Dostoyevsky Here we change the column widths. The first column will be 22 characters wide, the second 18. sqlite> .show echo: off explain: off headers: off mode: list nullvalue: "" output: stdout separator: "|" width: The .show command lists various settings. We can see the output mode, the separator used in the list mode, the headers.
  • 6. sqlite> .schema Cars CREATE TABLE Cars(Id integer primary key, Name text, Cost integer); The .schema command shows the structure of the table. It gives the DDL SQL to create the table. Executing SQL from the shell We can execute SQL commands from the shell. $ sqlite3 test.db "SELECT * FROM Cars;" Id Name Cost ---------- ---------- ---------- 1 Audi 52642 2 Mercedes 57127 3 Skoda 9000 4 Volvo 29000 5 Bentley 350000 6 Citroen 21000 7 Hummer 41400 8 Volkswagen 21600
  • 7. Here we have non interactively executed a SELECT SQL command. We selected all cars from the Cars table. Dumping tables It is possible to dump tables in SQL format to the disk. This way we can easily save the structure and the data of a database table. We have the Cars table. sqlite> SELECT * FROM Cars; Id Name Cost ---------- ---------- ---------- 1 Audi 52642 2 Mercedes 57127 3 Skoda 9000 4 Volvo 29000 5 Bentley 350000 6 Citroen 21000 7 Hummer 41400
  • 8. 8 Volkswagen 21600 Now, we are going to use the .dump command to dump the table. sqlite> .dump Cars BEGIN TRANSACTION; CREATE TABLE Cars(Id integer primary key, Name text, Cost integer); INSERT INTO "Cars" VALUES(1,'Audi',52642); INSERT INTO "Cars" VALUES(2,'Mercedes',57127); INSERT INTO "Cars" VALUES(3,'Skoda',9000); INSERT INTO "Cars" VALUES(4,'Volvo',29000); INSERT INTO "Cars" VALUES(5,'Bentley',350000); INSERT INTO "Cars" VALUES(6,'Citroen',21000); INSERT INTO "Cars" VALUES(7,'Hummer',41400); INSERT INTO "Cars" VALUES(8,'Volkswagen',21600); COMMIT; The .dump command shows us the SQL necessary to recreate the table. sqlite> .output cars.sql
  • 9. sqlite> .dump Cars We can also redirect the output to a file. The .output command will redirect the output to the cars.sql file. $ cat cars.sql BEGIN TRANSACTION; CREATE TABLE Cars(Id integer primary key, Name text, Cost integer); INSERT INTO "Cars" VALUES(1,'Audi',52642); ... We verify it. Reading SQL We can read SQL from a file name with the .read commnad. sqlite> .tables Cars Cars sqlite> DROP TABLE CARS; sqlite> .tables Cars sqlite> .read cars.sql
  • 10. sqlite> .tables Cars Cars sqlite> SELECT * FROM Cars WHERE id=1; Id Name Cost ---------- ---------- ---------- 1 Audi 52642 Here we have executed a series of commands. We drop the table and read it from the cars.sql, that we have created previously. Resource file The sqlite3 tool has a resource file called .sqliterc. It is located in the home directory. If there is no such file, we can simply create it. We can place the meta commnads there or the regular SQL statements. However, we should avoid using SQL in the resource file. $ cat .sqliterc .mode column .header on .nullvalue NULL Here is a simple example of a resource file. It has three meta commands. With resource file, we don't have to execute meta commnads all over again, when we start the sqlite3 tool. They will be executed automatically at the start of the tool.
  • 11. $ sqlite3 test.db -- Loading resources from /home/vronskij/.sqliterc SQLite version 3.5.9 Enter ".help" for instructions We have a message saying, that the tool loaded resources upon the beginning. Command line options The tool has several command line options. They mostly duplicate the meta commands. Note, that commnad line options overwrite the resource file meta commands. $ sqlite3 -version -- Loading resources from /home/vronskij/.sqliterc 3.5.9 We get the sqlite3 version. $ sqlite3 -html test.db -- Loading resources from /home/vronskij/.sqliterc SQLite version 3.5.9 Enter ".help" for instructions
  • 12. sqlite> SELECT * FROM Cars LIMIT 2; <TR><TH>Id</TH><TH>Name</TH><TH>Cost</TH></TR> <TR><TD>1</TD> <TD>Audi</TD> <TD>52642</TD> </TR> <TR><TD>2</TD> <TD>Mercedes</TD> <TD>57127</TD> </TR> The -html option causes the results to be output as simple HTML tables In this part of the SQLite tutorial, we worked with the sqlite3 command line tool. We have described various meta commnads. We have shown, how to dump tables, read SQL from files; we described the sqlite's resource file.