Python 24-Day Course - Day 19: Database with SQLite
·2 min read
Day 19: Database with SQLite
Connecting to SQLite and Creating Tables
import sqlite3conn = sqlite3.connect("myapp.db")cursor = conn.cursor()cursor.execute(""" CREATE TABLE IF NOT EXISTS users ( id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT NOT NULL, email TEXT UNIQUE, age INTEGER )""")conn.commit()
Basic CRUD Operations
# Create: Insert datacursor.execute( "INSERT INTO users (name, email, age) VALUES (?, ?, ?)", ("Alice", "alice@example.com", 25))conn.commit()# Read: Query datacursor.execute("SELECT * FROM users WHERE age >= ?", (20,))rows = cursor.fetchall()for row in rows: print(row)# Update: Modify datacursor.execute( "UPDATE users SET age = ? WHERE name = ?", (26, "Alice"))conn.commit()# Delete: Remove datacursor.execute("DELETE FROM users WHERE name = ?", ("Alice",))conn.commit()
conn.row_factory = sqlite3.Rowcursor = conn.cursor()cursor.execute("SELECT * FROM users")for row in cursor.fetchall(): print(f"{row['name']}: {row['email']}")
Safe Usage with Context Manager
def get_users(min_age=0): with sqlite3.connect("myapp.db") as conn: conn.row_factory = sqlite3.Row cursor = conn.cursor() cursor.execute( "SELECT * FROM users WHERE age >= ? ORDER BY name", (min_age,) ) return [dict(row) for row in cursor.fetchall()]users = get_users(25)for user in users: print(user)
Today’s Exercises
Design a todo app database and implement CRUD functions.
Create an expense tracker table and query income/expense records with monthly totals.
Write a query that JOINs two tables (users and orders).