Unit 11

Source Code

import sqlite3
import os

def main():
    # Connect to the SQLite database
    db = 'unit11.db'
    conn = sqlite3.connect(db)

    done = False
    print("Welcome to the Main Function")
    while not done:
        print("Menu")
        print("E1 - Example 1")
        print("Q - Quit")
        choice = input("Choice: ").upper()
        match choice:
            case "E1":
                create(conn)
            case "E2":
                insert(conn)
            case "E3":
                select(conn)
            case "E4":
                select2(conn)
# v2
            case "E5":
                create_v2(conn)
            case "E6":
                insert_v2(conn)
            case "E7":
                select_v2(conn)
            case "E8":
                select2_v2(conn)
            case "E9":
                select3_v2(conn)
            case "E10":
                select4_v2(conn)
# v3
            case "E11":
                create_v3(conn)
            case "E12":
                insert_v3(conn)
            case "E13":
                select_v3(conn)
            case "E14":
                example1_v3(conn)
            case "E15":
                example2_v3(conn)
            case "E16":
                example3_v3(conn)
            case "E17":
                example4_v3(conn)
# v4
            case "E18":
                create_v4(conn)
            case "E19":
                insert_v4(conn)
            case "E20":
                select_v4(conn)
            case "E21":
                example1_v4(conn)
            case "E22":
                example2_v4(conn)
            case "E23":
                example3_v4(conn)
            case "E24":
                example4_v4(conn)

# v5
            case "E25":
                create_v5(conn)
            case "E26":
                insert_v5(conn)
            case "E27":
                select_v5(conn)
            case "E28":
                example1_v5(conn)
            case "E29":
                example2_v5(conn)
            case "E30":
                example3_v5(conn)
            case "E31":
                example4_v5(conn)
# v6
            case "E32":
                create_v6(conn)
            case "E33":
                insert_v6(conn)
            case "E34":
                select_v6(conn)
            case "E35":
                example1_v6(conn)
            case "E36":
                example2_v6(conn)
            case "E37":
                example3_v6(conn)
            case "E38":
                example4_v6(conn)

# Q
            case "Q":
                print("Quitting!")
                done = True
            # default case
            case _:
                print("Invalid, try again!")

    # close the connection
    conn.close()

def create(conn):
    print("Create Table")

    # Create a cursor object using the cursor() method
    cursor = conn.cursor()

    # Create table query
    sql = '''
        CREATE TABLE IF NOT EXISTS students (
        id INTEGER PRIMARY KEY AUTOINCREMENT,
        name TEXT NOT NULL,
        age INTEGER NOT NULL,
        grade INTEGER NOT NULL,
        gpa REAL NOT NULL
        )
        '''

    # Execute query
    cursor.execute(sql)
    print("Table created successfully!")

def insert(conn):
    print("Insert Data")

    # Create a cursor object using the cursor() method
    cursor = conn.cursor()

    # student data
    students_data = [
        ("Alice", 18, 12, 3.8),
        ("Bob", 17, 11, 3.5),
        ("Charlie", 16, 10, 3.2),
        ("Diana", 18, 12, 3.9),
        ("Ethan", 17, 11, 3.6)
    ]

    # Insert data into table query
    sql = """
        INSERT INTO students (name, age, grade, gpa) VALUES (?, ?, ?, ?)
    """

    # Insert data into table query
    cursor.executemany(sql, students_data)
    print("SQL query executed")

    # Commit changes
    conn.commit()
    print("changed committed")

def select(conn):
    print("Select Data")

    # Create a cursor object using the cursor() method
    cursor = conn.cursor()

    # SQL Query to SELECT all students
    sql = "SELECT * FROM students"

    # Execute query
    cursor.execute(sql)
    print("SQL query executed")

    # fetch the rows
    rows = cursor.fetchall()
    for row in rows:
        print(row)

def select2(conn):
    print("Select Data")

    # Create a cursor object using the cursor() method
    cursor = conn.cursor()

    # SQL Query to SELECT certain columns from students
    sql = "SELECT name, age FROM students"

    # Execute query
    cursor.execute(sql)
    print("SQL query executed")

    # fetch the rows
    rows = cursor.fetchall()
    for row in rows:
        print(row)

# v2
def create_v2(conn):
    print("Create Table")

    # Create a cursor object using the cursor() method
    cursor = conn.cursor()

    # Create table query
    sql = '''
        CREATE TABLE IF NOT EXISTS employees (
        id INTEGER PRIMARY KEY AUTOINCREMENT,
        name TEXT NOT NULL,
        department TEXT NOT NULL,
        salary REAL,
        hire_date TEXT,
        is_manager BOOLEAN
        )
        '''

    # Execute query
    cursor.execute(sql)
    print("Table created successfully!")

def insert_v2(conn):
    print("Insert Data")

    # Create a cursor object using the cursor() method
    cursor = conn.cursor()

    # data
    data = [
        ('John Smith', 'Engineering', 75000, '2020-05-15', 0),
        ('Jane Doe', 'Marketing', 65000, '2019-03-20', 0),
        ('Michael Johnson', 'Engineering', 85000, '2018-11-10', 1),
        ('Emily Williams', 'Human Resources', 60000, '2021-01-08', 0),
        ('Robert Brown', 'Finance', 90000, '2017-07-22', 1),
        ('Sarah Miller', 'Marketing', 72000, '2020-09-30', 1),
        ('David Garcia', 'Engineering', 78000, '2019-06-12', 0),
        ('Jennifer Martinez', 'Human Resources', 62000, '2021-04-18', 0),
        ('William Thompson', 'Finance', 95000, '2016-10-05', 1),
        ('Lisa Rodriguez', 'Marketing', 68000, '2020-02-28', 0)
    ]

    # Insert data into table query
    sql = """
        INSERT INTO employees (name, department, salary, hire_date, is_manager)
        VALUES (?, ?, ?, ?, ?)
    """

    # Insert data into table query
    cursor.executemany(sql, data)
    print("SQL query executed")

    # Commit changes
    conn.commit()
    print("changed committed")

def select_v2(conn):
    print("Select Data")

    # Create a cursor object using the cursor() method
    cursor = conn.cursor()

    # SQL Query to SELECT all
    sql = "SELECT * FROM employees"

    # Execute query
    cursor.execute(sql)
    print("SQL query executed")

    # fetch the rows
    rows = cursor.fetchall()
    for row in rows:
        print(row)

def select2_v2(conn):
    print("Select Data")

    # Create a cursor object using the cursor() method
    cursor = conn.cursor()

    # SQL Query to SELECT certain columns
    sql = "SELECT name, salary FROM employees WHERE department = 'Engineering'"

    # Execute query
    cursor.execute(sql)
    print("SQL query executed")

    # fetch the rows
    rows = cursor.fetchall()
    for row in rows:
        print(row)

def select3_v2(conn):
    print("Select Data")

    # Create a cursor object using the cursor() method
    cursor = conn.cursor()

    # SQL Query to SELECT certain columns
    sql = "SELECT name, salary, hire_date FROM employees WHERE hire_date <= '2020-01-01'"

    # Execute query
    cursor.execute(sql)
    print("SQL query executed")

    # fetch the rows
    rows = cursor.fetchall()
    for row in rows:
        print(row)

def select4_v2(conn):
    print("Select Data")

    # Create a cursor object using the cursor() method
    cursor = conn.cursor()

    # SQL Query to SELECT certain columns
    sql = "SELECT name FROM employees WHERE name <> 'John Smith'"

    # Execute query
    cursor.execute(sql)
    print("SQL query executed")

    # fetch the rows
    rows = cursor.fetchall()
    for row in rows:
        print(row)

# v3
def create_v3(conn):
    print("Create Table")

    # Create a cursor object using the cursor() method
    cursor = conn.cursor()

    # Create table query
    sql = '''
        CREATE TABLE IF NOT EXISTS games (
        id INTEGER PRIMARY KEY AUTOINCREMENT,
        title TEXT NOT NULL,
        genre TEXT NOT NULL,
        price REAL NOT NULL,
        release_date TEXT NOT NULL,
        is_multiplayer BOOLEAN NOT NULL
        )
        '''

    # Execute query
    cursor.execute(sql)
    print("Table created successfully!")

def insert_v3(conn):
    print("Insert Data")

    # Create a cursor object using the cursor() method
    cursor = conn.cursor()

    # data
    data = [
        ('Minecraft', 'Sandbox', 29.99, '2011-11-18', 1),
        ('Fortnite', 'Battle Royale', 0.00, '2017-07-25', 1),
        ('The Legend of Zelda', 'Adventure', 59.99, '2023-05-12', 0),
        ('Among Us', 'Party', 4.99, '2018-06-15', 1),
        ('FIFA 24', 'Sports', 69.99, '2023-09-29', 1),
        ('Call of Duty', 'FPS', 59.99, '2022-10-28', 1),
        ('Roblox', 'Platform', 0.00, '2006-09-01', 1),
        ('Spider-Man 2', 'Action', 69.99, '2023-10-20', 0),
        ('Skyrim', 'RPG', 19.99, '2011-11-11', 0),
        ('Rocket League', 'Sports', 19.99, '2015-07-07', 1)
    ]

    # Insert data into table query
    sql = """
        INSERT INTO games (title, genre, price, release_date, is_multiplayer)
        VALUES (?, ?, ?, ?, ?)
    """

    # Insert data into table query
    cursor.executemany(sql, data)
    print("SQL query executed")

    # Commit changes
    conn.commit()
    print("changed committed")

def select_v3(conn):
    print("Select Data")

    # Create a cursor object using the cursor() method
    cursor = conn.cursor()

    # SQL Query to SELECT all
    sql = "SELECT * FROM games"

    # Execute query
    cursor.execute(sql)
    print("SQL query executed")

    # fetch the rows
    rows = cursor.fetchall()
    for row in rows:
        print(row)

def example1_v3(conn):

    # Create a cursor object using the cursor() method
    cursor = conn.cursor()

    # Basic WHERE clause to find games in the Adventure genre
    sql = "SELECT * FROM games WHERE genre = 'Adventure'"

    # Execute query
    cursor.execute(sql)
    print("SQL query executed")

    # fetch the rows
    rows = cursor.fetchall()
    for row in rows:
        print(row)

def example2_v3(conn):

    # Create a cursor object using the cursor() method
    cursor = conn.cursor()

    # Find games in the FPS genre with price over $50
    sql = "SELECT * FROM games WHERE genre = 'FPS' AND price > 50"

    # Execute query
    cursor.execute(sql)
    print("SQL query executed")

    # fetch the rows
    rows = cursor.fetchall()
    for row in rows:
        print(row)

def example3_v3(conn):

    # Create a cursor object using the cursor() method
    cursor = conn.cursor()

    # Find games that are either free or in the Sports genre
    sql = "SELECT * FROM games WHERE price = 0 OR genre = 'Sports'"

    # Execute query
    cursor.execute(sql)
    print("SQL query executed")

    # fetch the rows
    rows = cursor.fetchall()
    for row in rows:
        print(row)

def example4_v3(conn):

    # Create a cursor object using the cursor() method
    cursor = conn.cursor()

    # Find games that don't support multiplayer
    sql = "SELECT * FROM games WHERE NOT is_multiplayer"

    # Execute query
    cursor.execute(sql)
    print("SQL query executed")

    # fetch the rows
    rows = cursor.fetchall()
    for row in rows:
        print(row)

# v4
def create_v4(conn):
    print("Create Table")

    # Create a cursor object using the cursor() method
    cursor = conn.cursor()

    # Create table query
    sql = '''
        CREATE TABLE IF NOT EXISTS games2 (
        id INTEGER PRIMARY KEY AUTOINCREMENT,
        title TEXT NOT NULL,
        genre TEXT NOT NULL,
        release_year INTEGER,
        publisher TEXT,
        rating REAL,
        platform TEXT
        )
        '''

    # Execute query
    cursor.execute(sql)
    print("Table created successfully!")

def insert_v4(conn):
    print("Insert Data")

    # Create a cursor object using the cursor() method
    cursor = conn.cursor()

    # data
    data = [
        ('Minecraft', 'Sandbox', 2011, 'Mojang Studios', 4.8, 'Multi-platform'),
        ('Fortnite', 'Battle Royale', 2017, 'Epic Games', 4.5, 'Multi-platform'),
        ('Among Us', 'Party', 2018, 'InnerSloth', 4.7, 'Multi-platform'),
        ('Roblox', 'Game Creation', 2006, 'Roblox Corporation', 4.4, 'Multi-platform'),
        ('Call of Duty: Modern Warfare', 'First-person shooter', 2019, 'Activision', 4.3, 'Multi-platform'),
        ('FIFA 23', 'Sports', 2022, 'EA Sports', 4.1, 'Multi-platform'),
        ('Grand Theft Auto V', 'Action-Adventure', 2013, 'Rockstar Games', 4.9, 'Multi-platform'),
        ('The Legend of Zelda: Breath of the Wild', 'Action-Adventure', 2017, 'Nintendo', 4.9, 'Switch'),
        ('Spider-Man: Miles Morales', 'Action-Adventure', 2020, 'Sony Interactive Entertainment', 4.7, 'PlayStation'),
        ('Halo Infinite', 'First-person shooter', 2021, 'Xbox Game Studios', 4.5, 'Xbox'),
        ('Valorant', 'First-person shooter', 2020, 'Riot Games', 4.6, 'PC'),
        ('Apex Legends', 'Battle Royale', 2019, 'Electronic Arts', 4.4, 'Multi-platform'),
        ('Animal Crossing: New Horizons', 'Life simulation', 2020, 'Nintendo', 4.7, 'Switch'),
        ('Rocket League', 'Sports', 2015, 'Psyonix', 4.6, 'Multi-platform'),
        ('Genshin Impact', 'Action RPG', 2020, 'miHoYo', 4.5, 'Multi-platform')
    ]

    # Insert data into table query
    sql = """
        INSERT INTO games2 (title, genre, release_year, publisher, rating, platform)
        VALUES (?, ?, ?, ?, ?, ?)
    """

    # Insert data into table query
    cursor.executemany(sql, data)
    print("SQL query executed")

    # Commit changes
    conn.commit()
    print("changed committed")

def select_v4(conn):
    print("Select Data")

    # Create a cursor object using the cursor() method
    cursor = conn.cursor()

    # SQL Query to SELECT all
    sql = "SELECT * FROM games2"

    # Execute query
    cursor.execute(sql)
    print("SQL query executed")

    # fetch the rows
    rows = cursor.fetchall()
    for row in rows:
        print(row)

def example1_v4(conn):
    print("Example 1")

    # Create a cursor object using the cursor() method
    cursor = conn.cursor()

    # Find all games with titles starting with 'M'
    sql = "SELECT title, genre, release_year FROM games2 WHERE title LIKE 'M%'"

    # Execute query
    cursor.execute(sql)
    print("SQL query executed")

    # fetch the rows
    rows = cursor.fetchall()
    for row in rows:
        print(row)

def example2_v4(conn):
    print("Example 2")

    # Create a cursor object using the cursor() method
    cursor = conn.cursor()

    # Games published by companies ending with 'Games'
    sql = "SELECT title, publisher, release_year FROM games2 WHERE publisher LIKE '%Games'"

    # Execute query
    cursor.execute(sql)
    print("SQL query executed")

    # fetch the rows
    rows = cursor.fetchall()
    for row in rows:
        print(row)

def example3_v4(conn):
    print("Example 3")

    # Create a cursor object using the cursor() method
    cursor = conn.cursor()

    # Find all games with exactly 7 characters in the title
    sql = "SELECT title, genre, release_year FROM games2 WHERE title LIKE '_______'"

    # Execute query
    cursor.execute(sql)
    print("SQL query executed")

    # fetch the rows
    rows = cursor.fetchall()
    for row in rows:
        print(row)

def example4_v4(conn):
    print("Example 4")

    # Create a cursor object using the cursor() method
    cursor = conn.cursor()

    # Games with 'of' in title and released after 2015
    sql = "SELECT title, genre, release_year FROM games2 WHERE title LIKE '%of%' AND release_year > 2015"

    # Execute query
    cursor.execute(sql)
    print("SQL query executed")

    # fetch the rows
    rows = cursor.fetchall()
    for row in rows:
        print(row)


# v5
def create_v5(conn):
    print("Create Table")

    # Create a cursor object using the cursor() method
    cursor = conn.cursor()

    # Create table query
    sql = '''
        CREATE TABLE IF NOT EXISTS game_scores (
            id INTEGER PRIMARY KEY AUTOINCREMENT,
            player_name TEXT NOT NULL,
            game_title TEXT NOT NULL,
            score INTEGER NOT NULL,
            playing_time_minutes INTEGER NOT NULL,
            date_played TEXT NOT NULL,
            grade_level TEXT NOT NULL
        )
        '''

    # Execute query
    cursor.execute(sql)
    print("Table created successfully!")

def insert_v5(conn):
    print("Insert Data")

    # Create a cursor object using the cursor() method
    cursor = conn.cursor()

    # data
    data = [
        ('Alex', 'Fortnite', 2801, 45, '2023-09-15', '9th'),
        ('Jamie', 'Minecraft', 1501, 120, '2023-09-20', '10th'),
        ('Taylor', 'Rocket League', 851, 30, '2023-10-10', '11th'),
        ('Jordan', 'Among Us', 401, 25, '2023-10-15', '9th'),
        ('Casey', 'Fortnite', 3101, 50, '2023-11-05', '12th'),
        ('Riley', 'Minecraft', 2201, 90, '2023-11-10', '10th'),
        ('Morgan', 'Rocket League', 951, 35, '2023-11-15', '11th'),
        ('Drew', 'Among Us', 601, 30, '2023-12-05', '9th'),
        ('Parker', 'Fortnite', 3501, 60, '2023-12-10', '12th'),
        ('Quinn', 'Minecraft', 1801, 100, '2023-12-20', '10th'),
        ('Sam', 'Valorant', 2501, 40, '2023-09-18', '11th'),
        ('Avery', 'Valorant', 2801, 45, '2023-10-12', '12th'),
        ('Cameron', 'Apex Legends', 3201, 55, '2023-10-22', '9th'),
        ('Harper', 'Apex Legends', 2901, 50, '2023-11-08', '10th'),
        ('Logan', 'Valorant', 3101, 60, '2023-11-25', '11th'),
        ('Reese', 'League of Legends', 1801, 70, '2023-12-02', '12th'),
        ('Dakota', 'League of Legends', 2201, 75, '2023-12-15', '9th'),
        ('Blake', 'Genshin Impact', 1651, 120, '2023-09-25', '10th'),
        ('Emerson', 'Genshin Impact', 1951, 140, '2023-10-18', '11th'),
        ('Hayden', 'Fortnite', 2951, 40, '2023-11-20', '10th'),
        ('Jordan', 'Minecraft', 1701, 110, '2023-11-28', '9th'),
        ('Kai', 'Rocket League', 1101, 40, '2023-12-08', '12th'),
        ('Kennedy', 'Among Us', 551, 30, '2023-09-30', '11th'),
        ('Elliott', 'Apex Legends', 3401, 65, '2023-10-25', '10th'),
        ('Charlie', 'League of Legends', 2401, 80, '2023-11-12', '9th')
    ]

    # Insert data into table query
    sql = """
        INSERT INTO game_scores (player_name, game_title, score, playing_time_minutes, date_played, grade_level)
        VALUES (?, ?, ?, ?, ?, ?)
    """

    # Insert data into table query
    cursor.executemany(sql, data)
    print("SQL query executed")

    # Commit changes
    conn.commit()
    print("changed committed")

def select_v6(conn):
    print("Select Data")

    # Create a cursor object using the cursor() method
    cursor = conn.cursor()

    # SQL Query to SELECT all
    sql = "SELECT * FROM game_scores"

    # Execute query
    cursor.execute(sql)
    print("SQL query executed")

    # fetch the rows
    rows = cursor.fetchall()
    for row in rows:
        print(row)

def example2_v5(conn):

    # Create a cursor object using the cursor() method
    cursor = conn.cursor()

    # Count total number of game entries
    sql = "SELECT COUNT(*) FROM game_scores"

    # Execute query
    cursor.execute(sql)
    print("SQL query executed")

    # fetch the row
    count = cursor.fetchone()[1]
    print(count)

def example3_v5(conn):

    # Create a cursor object using the cursor() method
    cursor = conn.cursor()

    # Count how many students played each game
    sql = "SELECT game_title, COUNT(*) FROM game_scores GROUP BY game_title"

    # Execute query
    cursor.execute(sql)
    print("SQL query executed")

    # fetch the rows
    rows = cursor.fetchall()
    for row in rows:
        print(row)

def example4_v5(conn):

    # Create a cursor object using the cursor() method
    cursor = conn.cursor()

    # Calculate total points scored across all games
    sql = "SELECT SUM(score) FROM game_scores"

    # Execute query
    cursor.execute(sql)
    print("SQL query executed")

    # fetch the rows
    total = cursor.fetchone()[1]
    print(total)


def example5_v5(conn):

    # Create a cursor object using the cursor() method
    cursor = conn.cursor()

    # Calculate total playing time for each game
    sql = "SELECT game_title, SUM(playing_time_minutes) FROM game_scores GROUP BY game_title"

    # Execute query
    cursor.execute(sql)
    print("SQL query executed")

    # fetch the rows
    rows = cursor.fetchall()
    for row in rows:
        print(row)

#v7
def create_v7(conn):
    print("Create Table")

    # Create a cursor object using the cursor() method
    cursor = conn.cursor()

    # Create table query
    sql = '''
        CREATE TABLE IF NOT EXISTS students (
            id INTEGER PRIMARY KEY AUTOINCREMENT,
            student_name TEXT NOT NULL,
            course TEXT NOT NULL,
            grade INTEGER NOT NULL,
            school_year TEXT NOT NULL
        )
        '''

    # Execute query
    cursor.execute(sql)
    print("Table created successfully!")

def insert_v7(conn):
    print("Insert Data")

    # Create a cursor object using the cursor() method
    cursor = conn.cursor()

    # data
    data = [
        ('Alex', 'Algebra 2', 92, '2024-2025'),
        ('Alex', 'English 2', 88, '2024-2025'),
        ('Alex', 'Computer Science 2', 95, '2024-2025'),
        ('Alex', 'US History', 79, '2024-2025'),
        ('Alex', 'Chinese 2', 99, '2024-2025'),
        ('Taylor', 'Algebra 2', 75, '2024-2025'),
        ('Taylor', 'English 2', 90, '2024-2025'),
        ('Taylor', 'Computer Science 2', 82, '2024-2025'),
        ('Taylor', 'US History', 86, '2024-2025'),
        ('Taylor', 'Arabic', 96, '2024-2025'),
        ('Jordan', 'Algebra 2', 88, '2024-2025'),
        ('Jordan', 'English 2', 79, '2024-2025'),
        ('Jordan', 'Computer Science 2', 94, '2024-2025'),
        ('Jordan', 'US History', 82, '2024-2025'),
        ('Jordan', 'Spanish 2', 100, '2024-2025'),
        ('Morgan', 'Algebra 2', 95, '2024-2025'),
        ('Morgan', 'English 2', 87, '2024-2025'),
        ('Morgan', 'Computer Science 2', 91, '2024-2025'),
        ('Morgan', 'US History', 84, '2024-2025'),
        ('Morgan', 'French 2', 79, '2024-2025'),
        ('Casey', 'Algebra 2', 79, '2024-2025'),
        ('Casey', 'English 2', 93, '2024-2025'),
        ('Casey', 'Computer Science 2', 84, '2024-2025'),
        ('Casey', 'US History', 90, '2024-2025'),
        ('Casey', 'Japanese 2', 87, '2024-2025')
        ]

    # Insert data into table query
    sql = """
        INSERT INTO students (student_name, course, grade, school_year)
        VALUES (?, ?, ?, ?)
    """

    # Insert data into table query
    cursor.executemany(sql, data)
    print("SQL query executed")

    # Commit changes
    conn.commit()
    print("changed committed")

def select_v7(conn):

    # Create a cursor object using the cursor() method
    cursor = conn.cursor()

    # SQL Query to SELECT all
    sql = "SELECT * FROM students"

    # Execute query
    cursor.execute(sql)
    print("SQL query executed")

    # fetch the rows
    rows = cursor.fetchall()
    for row in rows:
        print(row)

def example2_v6(conn):

    # Create a cursor object using the cursor() method
    cursor = conn.cursor()

    # Find the average score for each student
    sql = "SELECT student_name, AVG(grade) FROM students GROUP BY student_name"

    # Execute query
    cursor.execute(sql)
    print("SQL query executed")

    # fetch the row
    rows = cursor.fetchall()
    for row in rows:
        print(row)

def example3_v6(conn):

    # Create a cursor object using the cursor() method
    cursor = conn.cursor()

    # Find the max grade for each student
    sql = "SELECT student_name, course, MAX(grade) FROM students GROUP BY student_name"

    # Execute query
    cursor.execute(sql)
    print("SQL query executed")

    # fetch the rows
    rows = cursor.fetchall()
    for row in rows:
        print(row)

def example4_v6(conn):

    # Create a cursor object using the cursor() method
    cursor = conn.cursor()

    # Find the overall class average, minimum and maximum grades
    sql = "SELECT AVG(grade), MIN(grade), MAX(grade) FROM students"

    # Execute query
    cursor.execute(sql)
    print("SQL query executed")

    # fetch the rows
    rows = cursor.fetchall()
    for row in rows:
        print(row)

def example5_v6(conn):

    # Create a cursor object using the cursor() method
    cursor = conn.cursor()

    # Print each students average grade from greatest to least
    sql = "SELECT student_name, AVG(grade) FROM students GROUP BY student_name ORDER BY AVG(grade) DESC"

    # Execute query
    cursor.execute(sql)
    print("SQL query executed")

    # fetch the rows
    rows = cursor.fetchall()
    for row in rows:
        print(row)

main()

Last updated