Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lernen Leseoperationen | CRUD
Datenbanken in Python

book
Leseoperationen

Leseoperationen in SQLite beinhalten das Abrufen von Daten aus einer Datenbanktabelle. Diese Operationen ermöglichen es Ihnen, Daten aus Ihrer Datenbank zu holen und abzufragen.

Der gebräuchlichste Weg, um Daten aus einer SQLite-Datenbank zu lesen, ist die Verwendung der SQL-SELECT-Anweisung. Hier ist ein einfaches Beispiel:

python
import sqlite3

# Connect to the database
conn = sqlite3.connect("my_database.db")
cursor = conn.cursor()

# SQL query to select all records from the `articles` table
select_query = "SELECT * FROM articles"
# Execute the SQL query
cursor.execute(select_query)
# Fetch all the selected records
records = cursor.fetchall()

print(records) # display the retrieved data
conn.close() # close the connection

Dieser Code führt eine SQL-Abfrage aus, um alle Zeilen aus der articles-Tabelle abzurufen. Die execute-Methode führt die Abfrage aus, und die fetchall()-Methode sammelt die Ergebnisse als Liste von Tupeln, wobei jedes Tupel eine Zeile in der Tabelle darstellt. Schließlich werden die abgerufenen Datensätze auf der Konsole ausgegeben.

Auffrischung der Datenfilterungstechniken

Lassen Sie uns unser Gedächtnis auffrischen, wie man Daten während Abfragen filtert. Dies ist wichtig, da wir in diesem Kapitel und den folgenden mit vorhandenen Daten in der Datenbank arbeiten werden.

Daten filtern

Sie können Daten auch basierend auf bestimmten Kriterien mit der WHERE-Klausel in Ihrer SELECT-Abfrage filtern. Zum Beispiel:

sql
SELECT * FROM articles WHERE author = "John"

Diese Abfrage ruft nur Datensätze ab, bei denen der Autor "John" entspricht.

Spezifische Spalten abrufen

Um spezifische Spalten anstelle aller Spalten abzurufen, können Sie die Spaltennamen in der SELECT-Anweisung angeben:

sql
SELECT title, author FROM articles

Diese Abfrage wird nur die "title" und "author" Spalten für alle Datensätze in der "articles"-Tabelle abrufen.

Begrenzung der Anzahl der Ergebnisse

Sie können die Anzahl der Ergebnisse mit der LIMIT-Klausel begrenzen. Zum Beispiel, um die ersten drei Datensätze abzurufen:

sql
SELECT * FROM articles LIMIT 3

Dies sind die grundlegenden Konzepte für die Durchführung von Leseoperationen in SQLite. Sie können Ihre SELECT-Abfragen anpassen, um bei Bedarf spezifische Daten aus Ihrer Datenbank abzurufen.

Aufgabe

Swipe to start coding

Ihre Aufgabe ist es, die Lücken (___) auszufüllen, um sicherzustellen, dass das Programm alle Datensätze aus der users-Tabelle abruft, bei denen der user_name Alex ist.

  1. Schreiben Sie eine SQL-Abfrage, um alle Spalten aus der users-Tabelle auszuwählen, bei denen der user_name Alex ist.
  2. Verwenden Sie die richtige Methode, um alle Ergebnisse aus der ausgeführten Abfrage abzurufen.

Lösung

import sqlite3

conn = sqlite3.connect("my_database.db")
cursor = conn.cursor()

# Create the `users` table if it doesn't already exist
cursor.execute("CREATE TABLE IF NOT EXISTS users (id INTEGER, user_name TEXT, email TEXT, password TEXT)")

# Insert a record into the `users` table
cursor.execute("INSERT INTO users (id, user_name, email, password) VALUES (?, ?, ?, ?)", (1, "Alex", "AlexMain@gmail.com", "ZXCV2000"))

# Fetch all records where `user_name` is `Alex`
cursor.execute("SELECT * FROM users WHERE user_name = 'Alex'")
data = cursor.fetchall()

print(data) # print the fetched data

conn.commit() # commit the changes
conn.close() # close the connection

War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 2. Kapitel 3
import sqlite3

conn = sqlite3.connect("my_database.db")
cursor = conn.cursor()

# Create the `users` table if it doesn't already exist
cursor.execute("CREATE TABLE IF NOT EXISTS users (id INTEGER, user_name TEXT, email TEXT, password TEXT)")

# Insert a record into the `users` table
cursor.execute("INSERT INTO users (id, user_name, email, password) VALUES (?, ?, ?, ?)", (1, "Alex", "AlexMain@gmail.com", "ZXCV2000"))

# Fetch all records where `user_name` is `Alex`
cursor.execute("___")
data = ___.___()

print(data) # print the fetched data

conn.commit() # commit the changes
conn.close() # close the connection

Fragen Sie AI

expand
ChatGPT

Fragen Sie alles oder probieren Sie eine der vorgeschlagenen Fragen, um unser Gespräch zu beginnen

We use cookies to make your experience better!
some-alt