DEV Community

Cover image for 📝 How to Use SQLite in Python (Without Installing a Database Server)
EZENWA CHRISTIAN CHIMEREMEZE
EZENWA CHRISTIAN CHIMEREMEZE

Posted on

📝 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
Enter fullscreen mode Exit fullscreen mode

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()
Enter fullscreen mode Exit fullscreen mode

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', 'ezenwa@example.com'))

conn.commit()
Enter fullscreen mode Exit fullscreen mode

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)
Enter fullscreen mode Exit fullscreen mode

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()
Enter fullscreen mode Exit fullscreen mode

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!

Top comments (0)