SQLite Tutorial
SQLite is a lightweight, serverless, and self-contained SQL database engine. It is commonly used in mobile apps, web applications, and embedded systems where a full database server is unnecessary.
1. Installing SQLite
Option 1: Download SQLite Command-Line Tool
- Go to the SQLite website and download the command-line tool for your operating system.
- Extract the downloaded file and add it to your system's PATH.
Option 2: Using SQLite in Python
If you are using Python, you can directly access SQLite without additional installation, as Python comes with SQLite support through the sqlite3 module.
2. Basic SQLite Commands
Starting SQLite
Open a terminal and enter:
sqlite3 my_database.db
This will create a new SQLite database file my_database.db if it doesn't already exist.
Exiting SQLite
To exit the SQLite prompt, type:
.exit
3. Creating Tables
To create a table, use the CREATE TABLE statement.
Example
CREATE TABLE users (
id INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT NOT NULL,
age INTEGER,
email TEXT UNIQUE
);
This creates a table users with columns for id, name, age, and email.
4. Inserting Data
Use the INSERT INTO statement to add data to a table.
Example
INSERT INTO users (name, age, email) VALUES ('Alice', 30, 'alice@example.com');
You can insert multiple records by executing additional INSERT INTO statements.
5. Querying Data
Retrieve data using the SELECT statement.
Example
SELECT * FROM users;
Retrieve specific columns:
SELECT name, age FROM users;
Apply filters with WHERE:
SELECT * FROM users WHERE age > 25;
6. Updating Data
Use the UPDATE statement to modify existing records.
Example
UPDATE users SET age = 31 WHERE name = 'Alice';
7. Deleting Data
Use the DELETE FROM statement to remove records.
Example
DELETE FROM users WHERE name = 'Alice';
8. Constraints and Indexes
SQLite supports constraints and indexes to enforce data integrity and improve query performance.
Adding Constraints
Define constraints (e.g., UNIQUE, NOT NULL) when creating a table.
CREATE TABLE products (
id INTEGER PRIMARY KEY,
name TEXT NOT NULL UNIQUE,
price REAL CHECK(price > 0)
);
Creating Indexes
Use the CREATE INDEX statement to create an index:
CREATE INDEX idx_user_name ON users(name);
9. Using SQLite with Python
Python has built-in support for SQLite via the sqlite3 module.
Example
import sqlite3
# Connect to SQLite database
conn = sqlite3.connect('my_database.db')
cursor = conn.cursor()
# Create a table
cursor.execute('''
CREATE TABLE IF NOT EXISTS users (
id INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT,
age INTEGER
)
''')
# Insert data
cursor.execute("INSERT INTO users (name, age) VALUES (?, ?)", ("Alice", 30))
# Query data
cursor.execute("SELECT * FROM users")
rows = cursor.fetchall()
for row in rows:
print(row)
# Close the connection
conn.commit()
conn.close()
10. Exporting and Importing Data
Exporting Data
To export data to a CSV file:
.mode csv
.output users.csv
SELECT * FROM users;
Importing Data
To import data from a CSV file:
.mode csv
.import users.csv users
Summary
This tutorial covered SQLite basics:
- Installing SQLite and setting up a database.
- Creating tables and working with data (inserting, querying, updating, and deleting).
- Adding constraints and indexes to improve data integrity and performance.
- Using SQLite with Python for data management.
SQLite is a versatile, lightweight choice for applications that require a simple database solution.
Content Review
The content in this repository has been reviewed by chevp. Chevp is dedicated to ensuring that the information provided is accurate, relevant, and up-to-date, helping users to learn and implement programming skills effectively.
About the Reviewer
For more insights and contributions, visit chevp's GitHub profile: chevp's GitHub Profile.