Website-Suche

SQLite Python Beispiele


Die Datenbank wird verwendet, um die Anwendungsdaten in einem strukturierten Format zu speichern, sodass die Daten durch Ausführen der entsprechenden SQL-Anweisung leicht zugegriffen, geändert und gelöscht werden können. Python unterstützt viele Datenbank-Engines zur Speicherung der Daten. SQLite ist eine davon. Python3 hat ein sqlite3-Modul, um eine Verbindung zur Datenbank von SQLite herzustellen und verschiedene Arten von Datenbankoperationen durchzuführen. Die Methoden zur Verbindung mit der SQLite-Datenbank und zur Durchführung der CRUD-Operationen mit dem Python-Skript werden in diesem Tutorial gezeigt.

Voraussetzungen:

Sie müssen die folgenden Aufgaben abschließen, bevor Sie den Code dieses Tutorials ausführen:

Installieren Sie Python 3+ im System, wenn es noch nicht installiert ist. Python3 ist standardmäßig auf Ubuntu 20+ installiert. Führen Sie den folgenden Befehl aus, um die installierte Version von Python zu überprüfen:

python3 --version

Die folgende Ausgabe zeigt, dass Python-Version 3.10.6 auf dem System installiert ist:

Installieren Sie sqlite3 im System, wenn es vorher nicht installiert wurde. Sqlite3 ist standardmäßig auf Ubuntu 20+ installiert. Führen Sie den folgenden Befehl aus, um die installierte Version von Python zu überprüfen:

sqlite3 --version

Die folgende Ausgabe zeigt, dass SQLite-Version 3.37.2 auf dem System installiert ist:

Datenbankoperationen mit Python und SQLite

Die grundlegenden Datenbankoperationen mit der SQLite-Datenbank und dem Python-Skript werden in diesem Tutorial gezeigt. Die Liste der Datenbankaufgaben, die in diesem Tutorial behandelt werden, ist im Folgenden aufgeführt:

  1. Stellen Sie eine SQLite-Datenbankverbindung her
  2. Erstelle eine neue Tabelle
  3. Fügen Sie die Daten in die Tabelle ein
  4. Lese die Daten aus der Tabelle
  5. Aktualisiere die Daten der Tabelle
  6. Löschen Sie die Daten aus der Tabelle

SQLite-Datenbankverbindung mit Python

Sie können eine neue SQLite-Datenbankdatei erstellen oder eine bestehende SQLite-Datenbankdatei verwenden, um mit dem Python-Skript zu arbeiten. Das sqlite3-Modul von Python wird verwendet, um mit der SQLite-Datenbank über das Python-Skript zu arbeiten. Erstellen Sie eine Python-Datei mit dem folgenden Skript, das die Methode zur Verbindung mit der SQLite-Datenbank zeigt. Der Datenbankdateiname wird vom Benutzer eingegeben. Wenn der Datenbankdateiname im aktuellen Verzeichnis vorhanden ist, erstellt Python ein gültiges Datenbankobjekt, um mit dieser Datenbank zu arbeiten. Wenn der Datenbankdateiname im aktuellen Verzeichnis nicht vorhanden ist, wird eine neue SQLite-Datenbankdatei im aktuellen Verzeichnis erstellt und die Verbindung zur Datenbank hergestellt. Eine Erfolgsmeldung wird nach der Erstellung des gültigen Datenbankobjekts ausgegeben, und die Datenbankverbindung wird am Ende des Skripts geschlossen.

#!/usr/bin/python

#Import the required module

import sqlite3

#Take the SQLite database filename from the user

filename = input ("Enter a sqlite filename:")

#Make connect with the existing database or after creating the database

db = sqlite3.connect(filename)

#Print the success message

print ("Database connected successfully.");

#Close the database connection

db.close();

Die folgende Ausgabe zeigt, dass “company.db” als Dateiname der Datenbank verwendet wird und die Datenbank erfolgreich verbunden ist, da die Erfolgsnachricht “Datenbank erfolgreich verbunden” ausgegeben wird.

Erstellen Sie eine SQLite-Datenbanktabelle mit Python

Wenn Sie eine neue Tabelle erstellen möchten, ist es erforderlich, die Tabelle aus der Datenbank zu entfernen, wenn die Tabelle zuvor existiert. Erstellen Sie eine Python-Datei mit dem folgenden Skript, das die Methode zum Erstellen einer neuen Tabelle zeigt, indem die vorhandene Tabelle entfernt wird und überprüft wird, ob die neue Tabelle in der SQLite-Datenbank erstellt wurde oder nicht. Zu Beginn des Skripts wird die Datenbankverbindung mit der Datei “company.db” erstellt. Wenn die Tabelle “vendor” in der Datenbank existiert, wird sie mit dem DROP TABLE-Befehl gelöscht. Als nächstes wird die "vendor"-Tabelle mit vier Feldern und einem Primärschlüssel erstellt. Das Cursor-Objekt wird erstellt, um zu überprüfen, ob die neue Tabelle erstellt wurde oder nicht. Die sqlite_master-Tabelle enthält alle Tabelleninformationen der verbundenen Datenbank. Wenn also die "vendor"-Tabelle erstellt wird, ist der zurückgegebene Wert der SELECT-Abfrage größer als 0. Die count()-Funktion wird in der SELECT-Abfrage verwendet, um die Existenz der "vendor"-Tabelle zu überprüfen.

#!/usr/bin/python

#Import the required module

import sqlite3

#Make connection with the existing database

db = sqlite3.connect('company.db');

#Define the table name

tablename = 'vendor'

#Drop the table if exists in the database

db.execute('DROP TABLE IF EXISTS ' + tablename)

#Define the query to create the table

query = '''CREATE TABLE vendor

(id INT PRIMARY KEY NOT NULL,

name CHAR(50) NOT NULL,

address TEXT NOT NULL,

email CHAR(50));'''

#Execute the query to create the table

db.execute(query)

#Declare cursor

cr = db.cursor()

#Execute the query to check whether the table is created or not

cr.execute('''SELECT count(name) FROM sqlite_master WHERE type='table' AND name='vendor' ''')

#Check the counter value

if cr.fetchone()[0]==1 :

#Print the success message print ("%s table created successfully." %tablename) #Close the database connection db.close();

Die folgende Ausgabe erscheint, wenn die Anbieter-Tabelle in der Datenbank erstellt wird:

Fügen Sie die Daten mit Python in die SQLite-Tabelle ein

Ein oder mehrere Datensätze können mit einem einzelnen oder mehreren INSERT-Abfragen in die Datenbanktabelle eingefügt werden. Erstellen Sie eine Python-Datei mit dem folgenden Skript, das vier Datensätze in die Tabelle „vendor“ mit einer einzelnen INSERT-Abfrage einfügt. Die Methode connect() wird verwendet, um sich mit der Datenbankdatei „company.db“ zu verbinden. Die Methode execute() wird verwendet, um die INSERT INTO-Abfrage auszuführen, um die Datensätze in die Tabellen „vendor“ einzufügen. Als nächstes wird das Cursor-Objekt erstellt, um zu prüfen, ob die Datensätze erfolgreich eingefügt wurden oder nicht. Die SELECT-Abfrage wird verwendet, um die Gesamtanzahl der Datensätze der Tabelle „vendor“ zu zählen, die die eingefügten „id“-Werte enthält. Wenn die Datensätze erfolgreich eingefügt wurden, ist die Gesamtanzahl der von der SELECT-Abfrage zurückgegebenen Zeilen größer als 0 und eine Erfolgsmeldung wird ausgegeben. Die Methode commit() wird im Skript verwendet, um die Einfügeaufgabe zu bestätigen.

#!/usr/bin/python

#Import the required module

import sqlite3

#Make connection with the existing database

db = sqlite3.connect('company.db');

#Define the query to insert records into the table

query = '''INSERT INTO vendor (id, name, address, email)

VALUES

(1, 'Nahar Enterprise', '56, Motijeel, dhaka', '[email '),

(2, 'Rahat Electronics', '105, Mogbazar, dhaka', '[email '),

(3, 'Vision Emporium', '45/A, Dhanmondi, dhaka', '[email '),

(4, 'Walton Plaza', '78, Jigatala, dhaka', '[email ');'''

#Execute the query to insert data

db.execute(query)

#Declare cursor

cr = db.cursor()

#Execute the query to check the inserted number of rows

cr.execute('SELECT count(*) FROM vendor WHERE id between 1 and 4;')

#Count the total number of rows of the table

rows = cr.fetchone()[0];

#Check the counter value

if rows > 0 :

#Print the success message print ("%s rows inserted into the table." %rows) #Confirm the insertion db.commit() #Close the database connection db.close();

Die folgende Ausgabe zeigt, dass die Datensätze erfolgreich eingefügt wurden:

Lesen Sie die Daten aus der SQLite-Tabelle mit Python

Alle oder die speziellen Daten können aus der SQLite-Datenbanktabelle mit der SELECT-Abfrage abgerufen werden, und es ist ein wesentlicher Bestandteil der CRUD-Operation. Erstellen Sie eine Python-Datei mit dem folgenden Skript, das alle Datensätze und die speziellen Datensätze der Tabelle „vendor“ liest, bei denen der Wert des Namensfeldes teilweise mit dem Eingabewert übereinstimmt, der vom Benutzer eingegeben wird. Die connect()-Methode wird verwendet, um sich mit der Datenbankdatei „company.db“ zu verbinden. Das Cursor-Objekt wird erstellt, um das Ergebnisset zu lesen, das von der SELECT-Abfrage zurückgegeben wird, und die execute()-Methode wird verwendet, um die SELECT-Abfrage auszuführen. Die fetchall()-Methode wird verwendet, um das Ergebnisset der Abfrage in einem Array zu lesen. Die „for“-Schleife wird verwendet, um die Werte des Ergebnisset zu lesen und auszugeben, das von beiden SELECT-Abfragen zurückgegeben wird.

#!/usr/bin/python

#Import the required module

import sqlite3

#Make connection with the existing database

db = sqlite3.connect('company.db')

#Define the query to read all records from the vendor table

query = 'SELECT * FROM VENDOR;'

#Declare cursor

cr = db.cursor()

#Execute the query to read all records

cr.execute(query)

#Store all retrieved data into the array

rows = cr.fetchall()

print ("All records of vendor table:")

#Iterate the array values and print

for row in rows:

print(row) name = input("Enter the vendor name:"); #Define the query to read all records from the vendor table query = 'SELECT * FROM vendor WHERE name LIKE "%' + name + '%";' #Execute the query to read specific records cr.execute(query) #Store all retrieved data in the array rows = cr.fetchall(); print ("Specific records of vendor table:") #Iterate the array values and print for row in rows:

print(row) Close the connection db.close()

Der "Walton"-Stringwert wird als Eingabewert vom Benutzer übernommen. Die folgende Ausgabe zeigt, dass alle Datensätze der "vendor"-Tabelle für die Ausführung der ersten SELECT-Abfrage ausgegeben werden und die Datensätze der "vendor"-Tabelle, die das Wort "Walton" enthalten, für die Ausführung der zweiten SELECT-Abfrage ausgegeben werden:

Aktualisieren Sie die Daten der SQLite-Tabelle mit Python

Das Aktualisieren der Daten aus der SQLite-Datenbanktabelle ist ein wesentlicher Bestandteil der CRUD-Operation. Alle Datensätze können aktualisiert oder bestimmte Datensätze aus der Tabelle basierend auf der Bedingung aktualisiert werden. Erstellen Sie eine Python-Datei mit dem folgenden Skript, das das E-Mail-Feld der "vendor"-Tabelle aktualisiert, wenn der "id"-Wert mit dem Eingabewert übereinstimmt, der vom Benutzer eingegeben wird. Die connect()-Methode wird verwendet, um eine Verbindung zur "company.db"-Datenbankdatei herzustellen. Die execute()-Methode wird verwendet, um die UPDATE-Abfrage auszuführen. Das Cursor-Objekt wird erstellt, um das Ergebnisset zu lesen, das von der SELECT-Abfrage zurückgegeben wird, nachdem der Datensatz der Tabelle aktualisiert wurde. Die fetchall()-Methode wird verwendet, um das Ergebnisset der SELECT-Abfrage in einem Array wie im vorherigen Beispiel zu lesen. Die "for"-Schleife wird verwendet, um die Werte des Ergebnisses zu lesen und auszudrucken, die von der SELECT-Abfrage zurückgegeben werden. Die commit()-Methode wird verwendet, um die Aktualisierung der Datenbank zu bestätigen.

#!/usr/bin/python

#Import the required module

import sqlite3

#Make connection with the existing database

db = sqlite3.connect('company.db')

id = input("Enter the vendor id:")

#Define the query to update the specific record of the vendor table

query = 'UPDATE vendor SET email = "[email " WHERE id = ' + id + ';'

db.execute(query)

#Confirm the update task

db.commit()

#Define the query to read all records from the vendor table

query = 'SELECT * FROM VENDOR;'

#Declare cursor

cr = db.cursor()

#Execute the query to read all records

cr.execute(query)

#Store all retrieved data in the array

rows = cr.fetchall()

print ("All records of the vendor table after update:")

#Iterate the array values and print

for row in rows:

print(row) Close the connection db.close()

Drei (3) wird als der „id“-Wert vom Benutzer genommen. Der Wert des E-Mail-Feldes ist „[email “ bevor das Skript ausgeführt wird. Die folgende Ausgabe zeigt, dass der Wert des E-Mail-Feldes der „vendor“-Tabelle nach der Ausführung des Skripts auf „[email “ geändert wurde, die den „id“-Wert von 3 enthält.

Die Daten aus der SQLite-Tabelle mit Python löschen

Das Entfernen der Daten aus der Datenbank ist einer der wichtigsten Teile des CRUD-Vorgangs. Alle Datensätze können aus der Tabelle entfernt werden oder bestimmte Datensätze können basierend auf einer Bedingung entfernt werden. Erstellen Sie eine Python-Datei mit dem folgenden Skript, das den Datensatz der Tabelle „vendor“ löscht, wo der „id“-Wert mit dem Eingabewert übereinstimmt, der vom Benutzer eingegeben wird. Die connect()-Methode wird verwendet, um eine Verbindung zur Datenbankdatei „company.db“ herzustellen. Die execute()-Methode wird verwendet, um die DELETE-Abfrage auszuführen. Die erste SELECT-Abfrage wird hier verwendet, um zu überprüfen, ob ein Datensatz mit dem „id“-Wert, der vom Benutzer eingegeben wurde, existiert oder nicht. Die zweite SELECT-Abfrage wird verwendet, um alle Datensätze nach dem Löschen des Datensatzes anzuzeigen. Das Cursor-Objekt wird erstellt, um das Ergebnisset zu lesen, das durch die SELECT-Abfrage der "vendor"-Tabelle zurückgegeben wird. Die fetchall()-Methode wird verwendet, um das Ergebnisset der SELECT-Abfrage in ein Array zu lesen, ähnlich wie im vorherigen Beispiel. Die "for"-Schleife wird verwendet, um die Werte des Ergebnisses, das durch die SELECT-Abfrage zurückgegeben wird, zu lesen und auszugeben. Die commit()-Methode wird verwendet, um die Löschoperation der Datenbank zu bestätigen. Wenn der commit()-Befehl nicht für die INSERT-, UPDATE- und DELETE-Abfrage verwendet wird, wird die ursprüngliche Datenbank nicht geändert. Nach dem Ausführen der commit()-Methode können Sie die rollback()-Methode aufrufen, um die letzte Änderung, die in diesem Tutorial nicht gezeigt wurde, rückgängig zu machen.

#!/usr/bin/python

#Import the required module

import sqlite3

#Make connection with the existing database

db = sqlite3.connect('company.db')

id = input("Enter the vendor id to delete:")

#Declare cursor

cr = db.cursor()

#Execute the query to check the inserted number of rows

cr.execute('SELECT count(*) FROM vendor WHERE id = ' + id + ';')

#Count the total number of rows of the result set

rows = cr.fetchone()[0];

#Check the counter value

if rows == 0 :

#Print the success message print ("No vendor exists of this id") else:

#Define the query to delete the specific record of the vendor table query = 'DELETE FROM vendor WHERE id = ' + id + ';' db.execute(query) #Confirm the delete task db.commit() #Define the query to read all records from the vendor table query = 'SELECT * FROM VENDOR;' #Execute the query to read all records cr.execute(query) #Store all retrieved data in the array rows = cr.fetchall() print ("All records of the vendor table after delete:") #Iterate the array values and print for row in rows:

print(row) Close the connection db.close()

Die folgende Ausgabe zeigt, dass 4 als der "id"-Wert vom Benutzer übernommen wird und der 4.te Datensatz aus der "vendor"-Tabelle nach der Ausführung des Skripts entfernt wird:

Fazit

Verschiedene Arten von Anwendungen können leicht mit der Programmiersprache Python entwickelt werden. Python unterstützt sowohl die strukturierte Programmierung als auch die objektorientierte Programmierung. Wenn es erforderlich ist, eine Python-Anwendung mit einer sehr leichten Datenbank zu entwickeln, ist es besser, das SQLite-Datenbanktool zu verwenden. Die Methoden zum Erstellen von Tabellen, Einfügen von Daten in die Tabelle, Lesen der Daten aus der Tabelle, Aktualisieren der Daten in der Tabelle und Löschen der Daten aus der Tabelle werden in diesem Tutorial unter Verwendung mehrerer Python-Skripte gezeigt. Die neuen SQLite-Nutzer werden in der Lage sein, mit der SQLite-Datenbank mithilfe des Python-Skripts zu arbeiten, nachdem sie dieses Tutorial richtig gelesen haben.