📝 How to Use SQLite in Python (Without Installing a Database Server)
DEV Community

📝 How to Use SQLite in Python (Without Installing a Database Server)

When developers think of databases, they usually think of PostgreSQL, MySQL, or MongoDB. They think of servers, ports, and complex installations.

But if you are building a lightweight app, a local script, or an AI tool on constrained hardware (like an Android phone via Termux), you don't need a database server. You need SQLite.

SQLite is a C library that provides a lightweight disk-based database. It doesn't require a separate server process, and it allows you to access the database using a nonstandard variant of SQL. Best of all? It is built directly into Python.

Here is how to use it in 30 seconds.

1. The Built-in Module

Because sqlite3 is part of the Python Standard Library, you do not need to pip install anything. Just import it.

import sqlite3

2. Connecting and Creating a Table

When you connect to a database file, if the file doesn't exist, SQLite will automatically create it for you.

# Connect to the database (creates 'app.db' if it doesn't exist)
conn = sqlite3.connect('app.db')
cursor = conn.cursor()

# Create a table
cursor.execute('''
CREATE TABLE IF NOT EXISTS users (
  id INTEGER PRIMARY KEY AUTOINCREMENT,
  name TEXT NOT NULL,
  email TEXT NOT NULL UNIQUE
)
''')

# Save (commit) the changes
conn.commit()

3. Inserting Data Safely

Never use f-strings to insert data into SQL! It leaves you open to SQL injection attacks. Always use the ? placeholder.

# Insert a new user
cursor.execute('''
INSERT INTO users (name, email) VALUES (?, ?)
''', ('Ezenwa', 'e*****@example.com'))
conn.commit()

4. Fetching Data

Once your data is saved, you can query it using fetchall() or fetchone().

cursor.execute('SELECT id, name, email FROM users')
rows = cursor.fetchall()
for row in rows:
    print(row)

5. Always Close the Connection

When you are done with your script, make sure to close the connection to free up system resources.

conn.close()

Why use SQLite?

If you are building a mobile app, a CLI tool, or an AI script running on a local machine, SQLite is perfect. It is zero-configuration, incredibly fast for local data, and doesn't consume the memory that a full database server like PostgreSQL would.

Have you used SQLite in your Python projects? Let me know below!

Read on DEV Community ↗ ← Back to News

Comments

No comments yet. Start the discussion.