Database Querying - Python Programming Exercise

In this exercise, you will develop a Python program to create a utility that displays the data about books which your previous program has stored. This exercise is perfect for practicing file handling, database management, and data retrieval in Python. By implementing this program, you will gain hands-on experience in handling file operations, database management, and data retrieval in Python. This exercise not only reinforces your understanding of file handling but also helps you develop efficient coding practices for managing user interactions.

 Category

Working with Relational Databases

 Exercise

Database Querying

 Objective

Develop a Python program to create a utility that displays the data about books which your previous program has stored.

 Example Python Exercise

 Copy Python Code
import sqlite3

class Book:
    """Represents a book with a title, author, genre, and summary."""
    
    def __init__(self, title, author, genre, summary):
        """Initialize the book with title, author, genre, and summary."""
        self.title = title
        self.author = author
        self.genre = genre
        self.summary = summary

    def __str__(self):
        """Return a string representation of the book."""
        return f"Title: {self.title}\nAuthor: {self.author}\nGenre: {self.genre}\nSummary: {self.summary}\n"


class BookDatabase:
    """Manages a database of books."""
    
    def __init__(self, db_name="books.db"):
        """Initialize the database connection."""
        self.db_name = db_name
        self.connection = sqlite3.connect(self.db_name)
        self.cursor = self.connection.cursor()

    def get_all_books(self):
        """Retrieve all books from the database."""
        self.cursor.execute("SELECT title, author, genre, summary FROM books")
        rows = self.cursor.fetchall()
        return [Book(title, author, genre, summary) for title, author, genre, summary in rows]

    def close(self):
        """Close the database connection."""
        self.connection.close()


def display_books():
    """Display all books stored in the database."""
    db = BookDatabase()
    books = db.get_all_books()
    
    if not books:
        print("No books found in the database.")
    else:
        print("\nBooks stored in the database:\n")
        for book in books:
            print(book)
    
    db.close()


# Test Program
if __name__ == "__main__":
    display_books()

 Output

Books stored in the database:

Title: The Great Gatsby
Author: F. Scott Fitzgerald
Genre: Fiction
Summary: A story about Jay Gatsby's obsession with Daisy Buchanan.

Title: 1984
Author: George Orwell
Genre: Dystopian
Summary: A novel about a totalitarian regime led by Big Brother.

 Share this Python Exercise

 More Python Programming Exercises of Working with Relational Databases

Explore our set of Python Programming Exercises! Specifically designed for beginners, these exercises will help you develop a solid understanding of the basics of Python. From variables and data types to control structures and simple functions, each exercise is crafted to challenge you incrementally as you build confidence in coding in Python.

  •  Complete Database Access

    In this exercise, you will develop a Python program to create a utility that allows the user to enter information about books and browse the existing data. This ex...

  •  Database Construction

    In this exercise, you will develop a Python program to create a utility that asks the user for data about books (title, author, genre, and summary) and stores this in...