0
0
PythonHow-ToBeginner · 4 min read

How to Read Data from SQLite Using Python Easily

To read data from SQLite in Python, use the sqlite3 module to connect to the database, create a cursor with conn.cursor(), execute a SELECT query with cursor.execute(), and fetch results using cursor.fetchall() or cursor.fetchone(). Finally, close the connection with conn.close().
📐

Syntax

Here is the basic syntax to read data from an SQLite database using Python's sqlite3 module:

  • Connect: Use sqlite3.connect('database.db') to open the database file.
  • Cursor: Create a cursor object with conn.cursor() to run SQL commands.
  • Execute: Run a SELECT query with cursor.execute(sql_query).
  • Fetch: Retrieve data using cursor.fetchall() for all rows or cursor.fetchone() for one row.
  • Close: Close the connection with conn.close() when done.
python
import sqlite3

conn = sqlite3.connect('example.db')
cursor = conn.cursor()
cursor.execute('SELECT * FROM tablename')
rows = cursor.fetchall()
for row in rows:
    print(row)
conn.close()
💻

Example

This example shows how to read all rows from a table named users with columns id and name. It connects to the database, runs a query, and prints each row.

python
import sqlite3

# Connect to SQLite database file
conn = sqlite3.connect('example.db')
cursor = conn.cursor()

# Create table and insert sample data (for demonstration)
cursor.execute('CREATE TABLE IF NOT EXISTS users (id INTEGER, name TEXT)')
cursor.execute('DELETE FROM users')  # Clear table
cursor.execute('INSERT INTO users VALUES (1, "Alice")')
cursor.execute('INSERT INTO users VALUES (2, "Bob")')
conn.commit()

# Read data from the table
cursor.execute('SELECT id, name FROM users')
rows = cursor.fetchall()

# Print each row
for row in rows:
    print(f"ID: {row[0]}, Name: {row[1]}")

# Close connection
conn.close()
Output
ID: 1, Name: Alice ID: 2, Name: Bob
⚠️

Common Pitfalls

Some common mistakes when reading data from SQLite in Python include:

  • Not committing changes after inserting or updating data before reading.
  • Forgetting to close the database connection, which can lock the file.
  • Using fetchone() without checking if the result is None, causing errors.
  • Not handling exceptions that may occur if the database file or table does not exist.
python
import sqlite3

try:
    conn = sqlite3.connect('missing.db')
    cursor = conn.cursor()
    cursor.execute('SELECT * FROM missing_table')
    row = cursor.fetchone()
    if row is not None:
        print(row)
    else:
        print('No data found.')
except sqlite3.Error as e:
    print(f'Error: {e}')
finally:
    conn.close()
Output
Error: no such table: missing_table
📊

Quick Reference

StepCodeDescription
Connectconn = sqlite3.connect('file.db')Open or create SQLite database file
Create Cursorcursor = conn.cursor()Prepare to execute SQL commands
Execute Querycursor.execute('SELECT * FROM table')Run SQL SELECT statement
Fetch Datarows = cursor.fetchall()Get all rows from query result
Closeconn.close()Close database connection

Key Takeaways

Use the sqlite3 module to connect and interact with SQLite databases in Python.
Always create a cursor to execute SQL queries and fetch results.
Remember to close the connection to avoid locking the database file.
Handle exceptions to manage missing files or tables gracefully.
Use fetchall() to get all rows or fetchone() to get a single row from query results.