Skip to content
AgileLogics
5 min read

Databases

Prerequisites: File handling

sqlite3, built into Python, stores data in a single file and needs no separate database server — a practical way to learn SQL from Python before setting up something like PostgreSQL.

import sqlite3

connection = sqlite3.connect("app.db")
cursor = connection.cursor()

cursor.execute("""
    CREATE TABLE IF NOT EXISTS users (
        id INTEGER PRIMARY KEY,
        name TEXT NOT NULL
    )
""")
cursor.execute("INSERT INTO users (name) VALUES (?)", ("Ada",))
connection.commit()

cursor.execute("SELECT * FROM users")
print(cursor.fetchall())

Expected output

[(1, 'Ada')]

Common mistakes

  • Building a query with an f-string (f"...{name}...") instead of the ? placeholder above. String-formatting user input straight into SQL is exactly how SQL injection attacks work — always use placeholders, never string concatenation, for values coming from a user.