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.