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.
Ad

More Related Content

What's hot (18)

235689260 oracle-forms-10g-tutorial
235689260 oracle-forms-10g-tutorial235689260 oracle-forms-10g-tutorial
235689260 oracle-forms-10g-tutorial
homeworkping3
 
Sql Injection
Sql Injection Sql Injection
Sql Injection
Sanjeev Kumar Jaiswal
 
Oracle: PLSQL Commands
Oracle: PLSQL CommandsOracle: PLSQL Commands
Oracle: PLSQL Commands
DataminingTools Inc
 
CIS 336 Education guide/Tutorialrank.com
CIS 336 Education guide/Tutorialrank.comCIS 336 Education guide/Tutorialrank.com
CIS 336 Education guide/Tutorialrank.com
tyjhgfsdfgh
 
My sql with querys
My sql with querysMy sql with querys
My sql with querys
NIRMAL FELIX
 
MYSQL
MYSQLMYSQL
MYSQL
Ankush Jain
 
Sql injections
Sql injectionsSql injections
Sql injections
Manish Kushwaha
 
Instalacion ambiente web am en linux red hat
Instalacion ambiente web am en linux red hatInstalacion ambiente web am en linux red hat
Instalacion ambiente web am en linux red hat
Janneth Parra
 
Les12[1]Creating Views
Les12[1]Creating ViewsLes12[1]Creating Views
Les12[1]Creating Views
siavosh kaviani
 
Les01[1]Writing Basic SQL Statements
Les01[1]Writing Basic SQL StatementsLes01[1]Writing Basic SQL Statements
Les01[1]Writing Basic SQL Statements
siavosh kaviani
 
Advanced tips of dbms statas
Advanced tips of dbms statasAdvanced tips of dbms statas
Advanced tips of dbms statas
Louis liu
 
Les06[1]Subqueries
Les06[1]SubqueriesLes06[1]Subqueries
Les06[1]Subqueries
siavosh kaviani
 
Oracle Web Adi For upload item master
Oracle Web Adi For upload item masterOracle Web Adi For upload item master
Oracle Web Adi For upload item master
Ahmed Elshayeb
 
Exportrows
ExportrowsExportrows
Exportrows
oracle documents
 
Explain
ExplainExplain
Explain
Ligaya Turmelle
 
database-querry-student-note
database-querry-student-notedatabase-querry-student-note
database-querry-student-note
Leerpiny Makouach
 
Hbase interact with shell
Hbase interact with shellHbase interact with shell
Hbase interact with shell
Shashwat Shriparv
 
Connor McDonald 11g for developers
Connor McDonald 11g for developersConnor McDonald 11g for developers
Connor McDonald 11g for developers
InSync Conference
 
235689260 oracle-forms-10g-tutorial
235689260 oracle-forms-10g-tutorial235689260 oracle-forms-10g-tutorial
235689260 oracle-forms-10g-tutorial
homeworkping3
 
CIS 336 Education guide/Tutorialrank.com
CIS 336 Education guide/Tutorialrank.comCIS 336 Education guide/Tutorialrank.com
CIS 336 Education guide/Tutorialrank.com
tyjhgfsdfgh
 
My sql with querys
My sql with querysMy sql with querys
My sql with querys
NIRMAL FELIX
 
Instalacion ambiente web am en linux red hat
Instalacion ambiente web am en linux red hatInstalacion ambiente web am en linux red hat
Instalacion ambiente web am en linux red hat
Janneth Parra
 
Les01[1]Writing Basic SQL Statements
Les01[1]Writing Basic SQL StatementsLes01[1]Writing Basic SQL Statements
Les01[1]Writing Basic SQL Statements
siavosh kaviani
 
Advanced tips of dbms statas
Advanced tips of dbms statasAdvanced tips of dbms statas
Advanced tips of dbms statas
Louis liu
 
Oracle Web Adi For upload item master
Oracle Web Adi For upload item masterOracle Web Adi For upload item master
Oracle Web Adi For upload item master
Ahmed Elshayeb
 
database-querry-student-note
database-querry-student-notedatabase-querry-student-note
database-querry-student-note
Leerpiny Makouach
 
Connor McDonald 11g for developers
Connor McDonald 11g for developersConnor McDonald 11g for developers
Connor McDonald 11g for developers
InSync Conference
 

Viewers also liked (6)

Java one 2010
Java one 2010Java one 2010
Java one 2010
scdn
 
SCDN 1
SCDN 1SCDN 1
SCDN 1
scdn
 
第5回SCDN - Things that become possible with HTML5
第5回SCDN - Things that become possible with HTML5第5回SCDN - Things that become possible with HTML5
第5回SCDN - Things that become possible with HTML5
scdn
 
Introduction to sq lite
Introduction to sq liteIntroduction to sq lite
Introduction to sq lite
punu_82
 
Creating, altering and dropping tables
Creating, altering and dropping tablesCreating, altering and dropping tables
Creating, altering and dropping tables
punu_82
 
мясной дом Бородина.
мясной дом Бородина.мясной дом Бородина.
мясной дом Бородина.
Санечка Бравова
 
Java one 2010
Java one 2010Java one 2010
Java one 2010
scdn
 
SCDN 1
SCDN 1SCDN 1
SCDN 1
scdn
 
第5回SCDN - Things that become possible with HTML5
第5回SCDN - Things that become possible with HTML5第5回SCDN - Things that become possible with HTML5
第5回SCDN - Things that become possible with HTML5
scdn
 
Introduction to sq lite
Introduction to sq liteIntroduction to sq lite
Introduction to sq lite
punu_82
 
Creating, altering and dropping tables
Creating, altering and dropping tablesCreating, altering and dropping tables
Creating, altering and dropping tables
punu_82
 
Ad

Similar to The sqlite3 commnad line tool (20)

Introduction4 SQLite
Introduction4 SQLiteIntroduction4 SQLite
Introduction4 SQLite
Stanley Huang
 
The select statement
The select statementThe select statement
The select statement
punu_82
 
Sqlite3 command reference
Sqlite3 command referenceSqlite3 command reference
Sqlite3 command reference
Raghu nath
 
Sq lite module5
Sq lite module5Sq lite module5
Sq lite module5
Highervista
 
Python SQLite3...
Python                                                                SQLite3...Python                                                                SQLite3...
Python SQLite3...
VikasTuwar1
 
Sq lite
Sq liteSq lite
Sq lite
Revuru Bharadwaja
 
Sq lite python tutorial sqlite programming in python
Sq lite python tutorial   sqlite programming in pythonSq lite python tutorial   sqlite programming in python
Sq lite python tutorial sqlite programming in python
Martin Soria
 
Sq lite
Sq liteSq lite
Sq lite
vinoth raj
 
Sqlite
SqliteSqlite
Sqlite
Raghu nath
 
android sqlite
android sqliteandroid sqlite
android sqlite
Deepa Rani
 
SQLite 3 chapter 4 BCA Notes Python NEP syllabus
SQLite 3 chapter 4 BCA Notes Python NEP syllabusSQLite 3 chapter 4 BCA Notes Python NEP syllabus
SQLite 3 chapter 4 BCA Notes Python NEP syllabus
Subrahmanya6
 
Python SQite3 database Tutorial | SQlite Database
Python SQite3 database Tutorial | SQlite DatabasePython SQite3 database Tutorial | SQlite Database
Python SQite3 database Tutorial | SQlite Database
ElangovanTechNotesET
 
Use sqlite
Use sqliteUse sqlite
Use sqlite
Jesus Diaz Gonzalez
 
Sq lite manager
Sq lite managerSq lite manager
Sq lite manager
Aravindharamanan S
 
Os Owens
Os OwensOs Owens
Os Owens
oscon2007
 
MySql slides (ppt)
MySql slides (ppt)MySql slides (ppt)
MySql slides (ppt)
webhostingguy
 
Sqlite3 databases
Sqlite3 databasesSqlite3 databases
Sqlite3 databases
Mohamed Essam
 
Data Handning with Sqlite for Android
Data Handning with Sqlite for AndroidData Handning with Sqlite for Android
Data Handning with Sqlite for Android
Jakir Hossain
 
Tk2323 lecture 7 sql
Tk2323 lecture 7   sql Tk2323 lecture 7   sql
Tk2323 lecture 7 sql
MengChun Lam
 
MySQL Database System Hiep Dinh
MySQL Database System Hiep DinhMySQL Database System Hiep Dinh
MySQL Database System Hiep Dinh
webhostingguy
 
Introduction4 SQLite
Introduction4 SQLiteIntroduction4 SQLite
Introduction4 SQLite
Stanley Huang
 
The select statement
The select statementThe select statement
The select statement
punu_82
 
Sqlite3 command reference
Sqlite3 command referenceSqlite3 command reference
Sqlite3 command reference
Raghu nath
 
Python SQLite3...
Python                                                                SQLite3...Python                                                                SQLite3...
Python SQLite3...
VikasTuwar1
 
Sq lite python tutorial sqlite programming in python
Sq lite python tutorial   sqlite programming in pythonSq lite python tutorial   sqlite programming in python
Sq lite python tutorial sqlite programming in python
Martin Soria
 
android sqlite
android sqliteandroid sqlite
android sqlite
Deepa Rani
 
SQLite 3 chapter 4 BCA Notes Python NEP syllabus
SQLite 3 chapter 4 BCA Notes Python NEP syllabusSQLite 3 chapter 4 BCA Notes Python NEP syllabus
SQLite 3 chapter 4 BCA Notes Python NEP syllabus
Subrahmanya6
 
Python SQite3 database Tutorial | SQlite Database
Python SQite3 database Tutorial | SQlite DatabasePython SQite3 database Tutorial | SQlite Database
Python SQite3 database Tutorial | SQlite Database
ElangovanTechNotesET
 
Data Handning with Sqlite for Android
Data Handning with Sqlite for AndroidData Handning with Sqlite for Android
Data Handning with Sqlite for Android
Jakir Hossain
 
Tk2323 lecture 7 sql
Tk2323 lecture 7   sql Tk2323 lecture 7   sql
Tk2323 lecture 7 sql
MengChun Lam
 
MySQL Database System Hiep Dinh
MySQL Database System Hiep DinhMySQL Database System Hiep Dinh
MySQL Database System Hiep Dinh
webhostingguy
 
Ad

Recently uploaded (20)

Slack like a pro: strategies for 10x engineering teams
Slack like a pro: strategies for 10x engineering teamsSlack like a pro: strategies for 10x engineering teams
Slack like a pro: strategies for 10x engineering teams
Nacho Cougil
 
Shoehorning dependency injection into a FP language, what does it take?
Shoehorning dependency injection into a FP language, what does it take?Shoehorning dependency injection into a FP language, what does it take?
Shoehorning dependency injection into a FP language, what does it take?
Eric Torreborre
 
Digital Technologies for Culture, Arts and Heritage: Insights from Interdisci...
Digital Technologies for Culture, Arts and Heritage: Insights from Interdisci...Digital Technologies for Culture, Arts and Heritage: Insights from Interdisci...
Digital Technologies for Culture, Arts and Heritage: Insights from Interdisci...
Vasileios Komianos
 
RFID in Supply chain management and logistics.pdf
RFID in Supply chain management and logistics.pdfRFID in Supply chain management and logistics.pdf
RFID in Supply chain management and logistics.pdf
EnCStore Private Limited
 
May Patch Tuesday
May Patch TuesdayMay Patch Tuesday
May Patch Tuesday
Ivanti
 
Dark Dynamism: drones, dark factories and deurbanization
Dark Dynamism: drones, dark factories and deurbanizationDark Dynamism: drones, dark factories and deurbanization
Dark Dynamism: drones, dark factories and deurbanization
Jakub Šimek
 
Cybersecurity Tools and Technologies - Microsoft Certificate
Cybersecurity Tools and Technologies - Microsoft CertificateCybersecurity Tools and Technologies - Microsoft Certificate
Cybersecurity Tools and Technologies - Microsoft Certificate
VICTOR MAESTRE RAMIREZ
 
Middle East and Africa Cybersecurity Market Trends and Growth Analysis
Middle East and Africa Cybersecurity Market Trends and Growth Analysis Middle East and Africa Cybersecurity Market Trends and Growth Analysis
Middle East and Africa Cybersecurity Market Trends and Growth Analysis
Preeti Jha
 
UX for Data Engineers and Analysts-Designing User-Friendly Dashboards for Non...
UX for Data Engineers and Analysts-Designing User-Friendly Dashboards for Non...UX for Data Engineers and Analysts-Designing User-Friendly Dashboards for Non...
UX for Data Engineers and Analysts-Designing User-Friendly Dashboards for Non...
UXPA Boston
 
Google DeepMind’s New AI Coding Agent AlphaEvolve.pdf
Google DeepMind’s New AI Coding Agent AlphaEvolve.pdfGoogle DeepMind’s New AI Coding Agent AlphaEvolve.pdf
Google DeepMind’s New AI Coding Agent AlphaEvolve.pdf
derrickjswork
 
Multi-Agent AI Systems: Architectures & Communication (MCP and A2A)
Multi-Agent AI Systems: Architectures & Communication (MCP and A2A)Multi-Agent AI Systems: Architectures & Communication (MCP and A2A)
Multi-Agent AI Systems: Architectures & Communication (MCP and A2A)
HusseinMalikMammadli
 
SQL Database Design For Developers at PhpTek 2025.pptx
SQL Database Design For Developers at PhpTek 2025.pptxSQL Database Design For Developers at PhpTek 2025.pptx
SQL Database Design For Developers at PhpTek 2025.pptx
Scott Keck-Warren
 
Risk Analysis 101: Using a Risk Analyst to Fortify Your IT Strategy
Risk Analysis 101: Using a Risk Analyst to Fortify Your IT StrategyRisk Analysis 101: Using a Risk Analyst to Fortify Your IT Strategy
Risk Analysis 101: Using a Risk Analyst to Fortify Your IT Strategy
john823664
 
Crazy Incentives and How They Kill Security. How Do You Turn the Wheel?
Crazy Incentives and How They Kill Security. How Do You Turn the Wheel?Crazy Incentives and How They Kill Security. How Do You Turn the Wheel?
Crazy Incentives and How They Kill Security. How Do You Turn the Wheel?
Christian Folini
 
Breaking it Down: Microservices Architecture for PHP Developers
Breaking it Down: Microservices Architecture for PHP DevelopersBreaking it Down: Microservices Architecture for PHP Developers
Breaking it Down: Microservices Architecture for PHP Developers
pmeth1
 
Building a research repository that works by Clare Cady
Building a research repository that works by Clare CadyBuilding a research repository that works by Clare Cady
Building a research repository that works by Clare Cady
UXPA Boston
 
Understanding SEO in the Age of AI.pdf
Understanding SEO in the Age of AI.pdfUnderstanding SEO in the Age of AI.pdf
Understanding SEO in the Age of AI.pdf
Fulcrum Concepts, LLC
 
OpenAI Just Announced Codex: A cloud engineering agent that excels in handlin...
OpenAI Just Announced Codex: A cloud engineering agent that excels in handlin...OpenAI Just Announced Codex: A cloud engineering agent that excels in handlin...
OpenAI Just Announced Codex: A cloud engineering agent that excels in handlin...
SOFTTECHHUB
 
Who's choice? Making decisions with and about Artificial Intelligence, Keele ...
Who's choice? Making decisions with and about Artificial Intelligence, Keele ...Who's choice? Making decisions with and about Artificial Intelligence, Keele ...
Who's choice? Making decisions with and about Artificial Intelligence, Keele ...
Alan Dix
 
In-App Guidance_ Save Enterprises Millions in Training & IT Costs.pptx
In-App Guidance_ Save Enterprises Millions in Training & IT Costs.pptxIn-App Guidance_ Save Enterprises Millions in Training & IT Costs.pptx
In-App Guidance_ Save Enterprises Millions in Training & IT Costs.pptx
aptyai
 
Slack like a pro: strategies for 10x engineering teams
Slack like a pro: strategies for 10x engineering teamsSlack like a pro: strategies for 10x engineering teams
Slack like a pro: strategies for 10x engineering teams
Nacho Cougil
 
Shoehorning dependency injection into a FP language, what does it take?
Shoehorning dependency injection into a FP language, what does it take?Shoehorning dependency injection into a FP language, what does it take?
Shoehorning dependency injection into a FP language, what does it take?
Eric Torreborre
 
Digital Technologies for Culture, Arts and Heritage: Insights from Interdisci...
Digital Technologies for Culture, Arts and Heritage: Insights from Interdisci...Digital Technologies for Culture, Arts and Heritage: Insights from Interdisci...
Digital Technologies for Culture, Arts and Heritage: Insights from Interdisci...
Vasileios Komianos
 
RFID in Supply chain management and logistics.pdf
RFID in Supply chain management and logistics.pdfRFID in Supply chain management and logistics.pdf
RFID in Supply chain management and logistics.pdf
EnCStore Private Limited
 
May Patch Tuesday
May Patch TuesdayMay Patch Tuesday
May Patch Tuesday
Ivanti
 
Dark Dynamism: drones, dark factories and deurbanization
Dark Dynamism: drones, dark factories and deurbanizationDark Dynamism: drones, dark factories and deurbanization
Dark Dynamism: drones, dark factories and deurbanization
Jakub Šimek
 
Cybersecurity Tools and Technologies - Microsoft Certificate
Cybersecurity Tools and Technologies - Microsoft CertificateCybersecurity Tools and Technologies - Microsoft Certificate
Cybersecurity Tools and Technologies - Microsoft Certificate
VICTOR MAESTRE RAMIREZ
 
Middle East and Africa Cybersecurity Market Trends and Growth Analysis
Middle East and Africa Cybersecurity Market Trends and Growth Analysis Middle East and Africa Cybersecurity Market Trends and Growth Analysis
Middle East and Africa Cybersecurity Market Trends and Growth Analysis
Preeti Jha
 
UX for Data Engineers and Analysts-Designing User-Friendly Dashboards for Non...
UX for Data Engineers and Analysts-Designing User-Friendly Dashboards for Non...UX for Data Engineers and Analysts-Designing User-Friendly Dashboards for Non...
UX for Data Engineers and Analysts-Designing User-Friendly Dashboards for Non...
UXPA Boston
 
Google DeepMind’s New AI Coding Agent AlphaEvolve.pdf
Google DeepMind’s New AI Coding Agent AlphaEvolve.pdfGoogle DeepMind’s New AI Coding Agent AlphaEvolve.pdf
Google DeepMind’s New AI Coding Agent AlphaEvolve.pdf
derrickjswork
 
Multi-Agent AI Systems: Architectures & Communication (MCP and A2A)
Multi-Agent AI Systems: Architectures & Communication (MCP and A2A)Multi-Agent AI Systems: Architectures & Communication (MCP and A2A)
Multi-Agent AI Systems: Architectures & Communication (MCP and A2A)
HusseinMalikMammadli
 
SQL Database Design For Developers at PhpTek 2025.pptx
SQL Database Design For Developers at PhpTek 2025.pptxSQL Database Design For Developers at PhpTek 2025.pptx
SQL Database Design For Developers at PhpTek 2025.pptx
Scott Keck-Warren
 
Risk Analysis 101: Using a Risk Analyst to Fortify Your IT Strategy
Risk Analysis 101: Using a Risk Analyst to Fortify Your IT StrategyRisk Analysis 101: Using a Risk Analyst to Fortify Your IT Strategy
Risk Analysis 101: Using a Risk Analyst to Fortify Your IT Strategy
john823664
 
Crazy Incentives and How They Kill Security. How Do You Turn the Wheel?
Crazy Incentives and How They Kill Security. How Do You Turn the Wheel?Crazy Incentives and How They Kill Security. How Do You Turn the Wheel?
Crazy Incentives and How They Kill Security. How Do You Turn the Wheel?
Christian Folini
 
Breaking it Down: Microservices Architecture for PHP Developers
Breaking it Down: Microservices Architecture for PHP DevelopersBreaking it Down: Microservices Architecture for PHP Developers
Breaking it Down: Microservices Architecture for PHP Developers
pmeth1
 
Building a research repository that works by Clare Cady
Building a research repository that works by Clare CadyBuilding a research repository that works by Clare Cady
Building a research repository that works by Clare Cady
UXPA Boston
 
Understanding SEO in the Age of AI.pdf
Understanding SEO in the Age of AI.pdfUnderstanding SEO in the Age of AI.pdf
Understanding SEO in the Age of AI.pdf
Fulcrum Concepts, LLC
 
OpenAI Just Announced Codex: A cloud engineering agent that excels in handlin...
OpenAI Just Announced Codex: A cloud engineering agent that excels in handlin...OpenAI Just Announced Codex: A cloud engineering agent that excels in handlin...
OpenAI Just Announced Codex: A cloud engineering agent that excels in handlin...
SOFTTECHHUB
 
Who's choice? Making decisions with and about Artificial Intelligence, Keele ...
Who's choice? Making decisions with and about Artificial Intelligence, Keele ...Who's choice? Making decisions with and about Artificial Intelligence, Keele ...
Who's choice? Making decisions with and about Artificial Intelligence, Keele ...
Alan Dix
 
In-App Guidance_ Save Enterprises Millions in Training & IT Costs.pptx
In-App Guidance_ Save Enterprises Millions in Training & IT Costs.pptxIn-App Guidance_ Save Enterprises Millions in Training & IT Costs.pptx
In-App Guidance_ Save Enterprises Millions in Training & IT Costs.pptx
aptyai
 

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.
  翻译: