Databases

SQLite Create Database & Insert Data

This tutorial will cover how to use SQLite shell to create databases, create tables, and insert data.
Captain Salem 5 min read
SQLite Create Database & Insert Data

SQLite is an open-source relational database management system developed for embedded systems. SQLite is simple and powerful, providing rich features in other major DBMS systems such as MySQL, PostgreSQL, and many more with minimal or no configuration.

SQLite does not offer a client-server database model, which eliminates the need for installation and management. It runs in memory, which allows you to run the database without any server. SQLite provides an interactive shell that you can use to interact with databases and the SQLite engine.

Getting SQLite Shell

To get SQLite for your Linux system, open your browser and navigate to:

SQLite Download Page

Select the SQLite tools for your system and download them. Once you unzip the archive, you should have sqlite3 binary. To launch the SQLite shell, run the sqlite3 binary.

You can also install SQLite using your package manager. To install it using apt, use the command:

sudo apt-get update
sudo apt-get install sqlite3

The SQLite Shell

The SQLite shell is a simple command-line tool that allows you to run raw SQL queries against a database or zip archives as database files.

Launch the shell with the command:

# sqlite3
SQLite version 3.27.2 2019-02-25 16:06:06
Enter ".help" for usage hints.
Connected to a transient in-memory database.
Use ".open FILENAME" to reopen on a persistent database.
sqlite>

Once you are in the SQLite Shell, you can start executing commands. Type the .help command to view the shell command help:

sqlite> .help
.archive ... Manage SQL archives
.auth ON|OFF Show authorizer callbacks
.backup ?DB? FILE Backup DB (default "main") to FILE
.bail on|off Stop after hitting an error. Default OFF
.binary on|off Turn binary output on or off. Default OFF
.cd DIRECTORY Change the working directory to DIRECTORY
.changes on|off Show number of rows changed by SQL
.check GLOB Fail if output since .testcase does not match
.clone NEWDB Clone data into NEWDB from the existing database
.databases List names and files of attached databases
.dbconfig ?op? ?val? List or change sqlite3_db_config() options
.dbinfo ?DB? Show status information about the database
.dump ?TABLE? ... Render all database content as SQL
.echo on|off Turn command echo on or off
.eqp on|off|full|... Enable or disable automatic EXPLAIN QUERY PLAN
----------------------------------------------------------------------

It is good to note that the .help command does not display the SQL queries you can execute against a database. The dot commands are one-line commands that configure or interact with the shell directly.

To get the list of all databases while inside the SQLite shell, use the .databases commands.

sqlite> .databases main:

It is good to experiment with the SQLite shell to learn how to configure and interact with it. If you need a detailed guide, consider the SQLite documentation:

SQLite Documentation

How to Create An SQLite Database

To create an SQLite database, all you have to do is call the sqlite3 command followed by the name of the database you want to create. Note that if the specified database exists, SQLite will open the database inside the shell.

The general syntax to create a database is as:

sqlite3 dbName.db

For example, to create the database movies.db use the command:

sqlite3 movies.db
SQLite version 3.27.2 2019-02-25 16:06:06 Enter ".help" for usage hints.
sqlite>

Executing this command will create the database if it does not exist or open it if the database exists. To view the databases, use the .databases command as:

sqlite> .databases main: /home/debian/movies.db

Attaching Databases

SQLite allows you to attach a database to perform specific functions under it. Using the ATTACH DATABASE query, we can attach a database as:

sqlite> ATTACH DATABASE "movies.db" as "u\movies.db";
sqlite> .databases
main: /home/debian/movies.db
u\movies.db: /home/debian/movies.db

The as statement sets an Alias Name under which to attach the database. It is good to note that if the attached database does not exist, SQLite creates it automatically.

To detach a database, use the DETACH DATABASE query. For example:

DETACH DATABASE “u\movies.db”;

NOTE: Some database names used in this tutorial are for demonstration purposes only and may not include accepted naming conventions.

SQLite Create Table

To create a table in an SQLite database, we use the query CREATE TABLE followed by the table name. The general syntax is:

CREATE TABLE db_name.tb_name (
	column_name datatype PRIMARY KEY (COLUMN (s)),
	column_name2 datatype,
...column_nameN datatype
);

For example, let us create a database programming and create a table of languages with the relevant information as:

sqlite3 programming.db sqlite > CREATE TABLE languages (
...> id INTEGER PRIMARY KEY AUTOINCREMENT,
...> name TEXT NOT NULL,
...> creator TEXT,
...> year INTEGER NOT NULL,
...> version TEXT...>
);

To verify the successful creation of the table, use the .tables SQLite command to list all the tables in the database:

sqlite> .tables languages

To get more details about a table, use the command .schema followed by the table name.

sqlite >.SCHEMA languages CREATE TABLE languages (
	id INTEGER PRIMARY KEY AUTOINCREMENT,
	name TEXT NOT NULL,
	creator TEXT,
	year INTEGER NOT NULL,
	version TEXT
);

SQLite Insert Data

To insert new rows of data into a table, we use the INSERT INTO query. The general syntax for this statement is:

INSERT INTO TABLE_NAME
		VALUES(VAR1, VAR2, VAR3, VARN);

For example, to add data to the languages table created above, use the query below:

sqlite > INSERT INTO languages...>
		VALUES(1, "Python", "Guido van Rossum", 1991, "0.9.1");

Continue to populate the database tables with information.

sqlite > INSERT INTO languages...>
		VALUES(2, "JavaScript", "Brendan Eich", 1995, "ECMA 1");

To confirm the successful creation of the data, you can use the SELECT query:

sqlite> SELECT * FROM languages;


1 | Python | Guido van Rossum | 1991 | 0.9.1 2 | JavaScript | Brendan Eich | 1995 | ECMA 1

SQLite Remove Data

To remove data in a table, we can use the DELETE query followed by the `WHERE `and the condition. The general syntax is:

DELETE FROM tb_name
WHERE condition;

For example, to remove the data where the id is equal to 1, we can use the query.

sqlite > DELETE FROM languages
WHERE id = 1;

To confirm the data has been removed successfully, we can use the SELECT query, as seen above.

sqlite >
SELECT
	*
FROM
	languages;
2 | JavaScript | Brendan Eich | 1995 | ECMA 1

This removes the row where the id = 1, in this case, the Python entry.

Conclusion

In this tutorial, we discussed how to set up and run SQLite. We also covered how to work with the SQLite shell and execute commands as SQL statements.

Share
Comments
More from Cloudenv
SQL XOR Operator
Databases

SQL XOR Operator

Let us explore what the XOR operator in SQL does and how we can use it. For demonstration purposes, we will use MySQL as the base database system.
Captain Salem 2 min read

Cloudenv

Developer Tips, Tricks and Tutorials.

Great! You’ve successfully signed up.

Welcome back! You've successfully signed in.

You've successfully subscribed to Cloudenv.

Success! Check your email for magic link to sign-in.

Success! Your billing info has been updated.

Your billing was not updated.