Difference between revisions of "Search an SQL database using sqlite3"

From Parallel Library Services
Jump to navigation Jump to search
 
(2 intermediate revisions by the same user not shown)
Line 18: Line 18:
</syntaxhighlight>
</syntaxhighlight>


=== Displaying tables and columns ===
You can then display tables with:
You can then display tables with:


Line 27: Line 28:


<syntaxhighlight lang="SQL">
<syntaxhighlight lang="SQL">
SELECT * FROM tablename
SELECT * FROM mytable;
</syntaxhighlight>
</syntaxhighlight>


Line 49: Line 50:
</syntaxhighlight>
</syntaxhighlight>


You can also display detailed views of the contents of tables, with
=== Getting a list of column names ===
 
An alternative way to get a list of column names not mentioned here that is cross platform and does not rely on the sqlite3.exe shell is to select from the <code>PRAGMA_TABLE_INFO()</code> table value function.


<syntaxhighlight lang="SQL" line>
<syntaxhighlight lang="SQL" line>
PRAGMA_
SELECT name FROM PRAGMA_TABLE_INFO('your_table');
name     
tbl_name 
rootpage 
sql
</syntaxhighlight>
</syntaxhighlight>


You can check if a certain column exists by querying:
<syntaxhighlight lang="SQL" line>
SELECT 1 FROM PRAGMA_TABLE_INFO('your_table') WHERE name='column1';
1
</syntaxhighlight>


[[Category:Cookbook]]
[[Category:Cookbook]]
[[Category:Sqlite]]
[[Category:SQLite]]

Latest revision as of 19:02, 23 November 2021

https://www.sqlite.org/index.html

sqlite implements a small, fast, self-contained, high-reliability, full-featured, SQL database engine to query .sql files.

Getting started

To use sqlite, you must have a valid metadata file with a .db file extension, and an installed version of SQL. This tutorial assumes knowledge of the command line.

To start the sql engine, type:

sqlite3

The prompt will change, showing that the sqlite engine has been initialised. To open a metadata file, type:

.open filename.db

Displaying tables and columns

You can then display tables with:

.tables

Based on what is returned, you can then query the content of each table with commands such as:

SELECT * FROM mytable;

You may want to have a more human-readable view of the data that is printed in the terminal, by organising the headings and columns:

.headers ON
.mode column

You will get output like:

.headers on
.mode column
select * from mytable;
id          foo         bar
----------  ----------  ----------
1           val1        val2
2           val3        val4

Getting a list of column names

An alternative way to get a list of column names not mentioned here that is cross platform and does not rely on the sqlite3.exe shell is to select from the PRAGMA_TABLE_INFO() table value function.

SELECT name FROM PRAGMA_TABLE_INFO('your_table');
name      
tbl_name  
rootpage  
sql

You can check if a certain column exists by querying:

SELECT 1 FROM PRAGMA_TABLE_INFO('your_table') WHERE name='column1';
1