Programmierung

Grundlagen der Arbeit mit der SQLite-Datenbank in Python

Grundlagen der Arbeit mit der SQLite-Datenbank in Python

Eine Datenbank ist eine der nützlichsten und beliebtesten Dateien zum Speichern von Daten. Sie können verwendet werden, um jede Art von Daten zu speichern, einschließlich Text, Zahlen, Bilder, Binärdaten, Dateien usw. SQLite ist ein relationales Datenbankverwaltungssystem basierend auf der Sprache SQL. Es ist eine C-Bibliothek und bietet eine API für die Arbeit mit anderen Programmiersprachen, einschließlich Python. In großen Datenbank-Engines wie MySQL und Postgresql muss kein separater Serverprozess ausgeführt werden.

Es ist schnell und leicht, und die gesamte Datenbank wird in einer einzigen Festplattendatei gespeichert, was sie wie CSV oder andere Datenspeicherdateien portabel macht. Viele Anwendungen verwenden SQLite für die interne Datenspeicherung, hauptsächlich in Umgebungen wie mobilen Geräten oder kleinen Anwendungen.

SQLite-Datenbank für Python

Lassen Sie uns mit der Programmiersprache Python tief in SQLite eintauchen. In diesem Tutorial lernen wir die Vorteile der Verwendung von SQLite, die Grundlagen des Python-Moduls sqlite3, das Erstellen einer Tabelle in einer Datenbank, das Einfügen von Daten in die Tabelle, das Abfragen von Daten aus der Tabelle und das Aktualisieren von Daten der Tabelle.

Vorteile der Verwendung von SQLite

Die Hauptvorteile der Verwendung von SQLite sind:

SQLite wird auch in Google Chrome verwendet, um Cookies, Benutzerdaten und andere wichtige Daten, einschließlich Benutzerpasswörter, zu speichern store. Das Android-Betriebssystem verwendet auch SQLite als primäre Datenbank-Engine zum Speichern von Daten.

Python SQLite3-Modul

Um SQLite verwenden zu können, muss Python in unserem System installiert sein. Wenn Python noch nicht auf Ihrem System installiert ist, können Sie unsere Schritt-für-Schritt-Anleitung zur Installation von Python unter Linux lesen. Wir könnten SQLite in Python mit dem verwenden sqlite3 Modul in Pythons Standardbibliothek verfügbar. Gerhard Häring hat das sqlite3-Modul geschrieben; es bietet eine SQL-Schnittstelle, die mit der DB-API 2 kompatibel ist.0. Es ist mit der Python-Standardbibliothek vorinstalliert, sodass wir uns um keine weitere Installation kümmern müssen.

Verbindung zu einer Datenbank herstellen

Der erste Schritt bei der Arbeit mit SQLite in Python ist das Einrichten einer Verbindung mit einer Datenbank. Wir können dies tun, indem wir die Methode connect() von sqlite3 verwenden, um eine Verbindung aufzubauen. Sehen Sie sich den folgenden Code als Beispiel an. Sie können den Code einfach in eine IDE oder einen Texteditor kopieren und ausführen. Wenn Sie ein Problem bei der Auswahl der IDE für Python haben, lesen Sie unseren Leitfaden zum Vergleich der besten Python-IDE. Es wird empfohlen, den Code in Ihrer IDE erneut zu schreiben, und wenn Sie den Code kopieren möchten, überprüfen Sie bitte die Syntax mit dem hier vorhandenen Code.

# Importieren der erforderlichen Module import sqlite3 # Verbindung mit Datenbank aufbauen conn = sqlite3.connect("Beispiel.db") print("Erfolgreich mit der Datenbank verbunden") # Verbindung schließen conn.schließen()

Das obige Programm stellt eine Verbindung mit der SQLite-Datenbankdatei „sample“ her.db.” Es gibt die folgende Ausgabe im Terminal.

Mal sehen, was im obigen Code passiert. In der ersten Zeile haben wir das sqlite3-Modul importiert, das uns hilft, mit SQLite-Datenbanken in Python zu arbeiten.

In der zweiten Zeile erstellen wir eine Verbindung mit einer SQLite-Datenbankdatei namens „sample“.db“ mit dem verbinden() Funktion. Die Funktion connect() akzeptiert den Pfad zur Datenbankdatei als Argument. Wenn die Datei im angegebenen Pfad nicht existiert, erstellt sie selbst eine neue Datenbankdatei mit dem angegebenen Namen in diesem Pfad. Die Funktion connect() gibt ein Datenbankobjekt in unserem Programm zurück; Wir speichern das zurückgegebene Objekt in einer Variablen namens conn.

Die dritte Zeile in unserem Programm ist ein einfaches drucken Anweisung, um eine Nachricht über eine erfolgreiche Verbindung anzuzeigen. Die letzte Zeile des Programms unterbricht die Verbindung zur Datenbank mit dem schließen() Funktion des Verbindungsobjekts.

Im vorherigen Beispiel haben wir die Datenbank auf der Festplatte erstellt, wir können aber auch eine Datenbank im primären Arbeitsspeicher RAM erstellen. Das Erstellen einer Datenbank im RAM macht die Ausführung der Datenbank schneller als üblich. Dennoch wird die Datenbank temporär erstellt und wenn die Programmausführung stoppt, wird die Datenbank aus dem Speicher gelöscht. Wir können eine Datenbank im Speicher erstellen, indem wir den bestimmten Namen :memory: als Argument für die verbinden() Funktion. Siehe das folgende Programm zur Veranschaulichung.

sqlite3 conn importieren = sqlite3.connect(:memory:") print("\n [+] Datenbank wurde erfolgreich im Speicher erstellt") conn.schließen()

Das obige Programm erstellt eine Datenbank im RAM, und wir können es verwenden, um fast jede Aufgabe auszuführen, die wir mit auf der Festplatte erstellten Datenbanken ausführen können created. Diese Methode ist aus irgendeinem Grund beim Erstellen einer temporären virtuellen Datenbank nützlich.

SQLite3-Cursor

EINMauszeiger das objekt ist unsere schnittstelle zur datenbank, die es erlaubt, alle auszuführenSQL-Abfrage in der Datenbank. Um SQL-Skripte mit sqlite3 auszuführen, müssen wir ein Cursor-Objekt erstellen. Um ein Cursor-Objekt zu erstellen, müssen wir die Mauszeiger() Methode der Verbindung Objekt. Wir können ein Cursor-Objekt unserer Datenbank mit dem folgenden Code erstellen.

# Importieren der erforderlichen Module import sqlite3 # Verbindung zur Datenbank aufbauen conn = sqlite3.connect("Beispiel.db") print("\n [+] Erfolgreich mit der Datenbank verbunden") cur = conn.Cursor() print("\n [+] Cursor wurde erfolgreich eingerichtet") cur.close() # Schließen der Verbindung conn.schließen()

Wenn das Programm ausgeführt wird, wird die Ausgabe wie in der folgenden Abbildung angezeigt.

Mal sehen, wie der obige Code funktioniert. Im obigen Code stellt der erste, zweite, dritte eine Verbindung mit der Datenbank her, wie zuvor gezeigt. In der vierten Zeile haben wir die Mauszeiger() Methode des Verbindungsobjekts, um ein Cursorobjekt zu erstellen und das zurückgegebene Cursorobjekt in einer Variablen namens „cur“ zu speichern. Die fünfte Zeile ist ein General drucken() Aussage. In der sechsten Zeile haben wir das Cursor-Objekt aus dem Speicher zerstört, indem wir die schließen() Methode des Cursor-Objekts.

SQLite-Datentypen

Bevor wir fortfahren, lassen Sie uns zuerst die SQLite-Datentypen verstehen. Die SQLite-Datenbank-Engine verfügt über mehrere Speicherklassen zum Speichern vieler Datentypen, einschließlich Text, Binärdaten, Integer usw. Jeder Wert hat einen der folgenden Datentypen.

SQLite-Datentypen:

Vergleich von SQLite- und Python-Datentypen

Es wird viele Male geben, in denen wir Python-Datentypen verwenden müssen, um einige SQL-Daten zu speichern und einige Aktivitäten auszuführen. Dazu müssen wir wissen, welche SQL-Datentypen sich auf welche Python-Datentypen beziehen.

Die folgenden Python-Typen sind den SQLite-Datentypen etwas ähnlich:

Python-Typ SQLite-Typ
Keiner NULL
int GANZE ZAHL
schweben REAL
str TEXT
Bytes KLECKS

Erstellen einer Tabelle mit SQLite

Um eine Tabelle mit SQLite zu erstellen, müssen wir die TABELLE ERSTELLEN Anweisung von SQL in der ausführen() Methode des Cursor-Objekts. Die grundlegende Syntax der CREATE TABLE-Anweisung in SQL wird unten gezeigt:

CREATE TABLE Tabellenname( Spaltenname Datentyp-Einschränkung,… Spaltenname Datentyp-Einschränkung);

Um die obige SQLite-Anweisung in Python zu verwenden, müssen wir das folgende Beispielprogramm ausführen. Es wird eine Tabelle mit dem Namen Employee in unserer Datenbank erstellen.

sqlite3 conn importieren = sqlite3.connect("Beispiel.db") print("\n [+] Erfolgreich mit der Datenbank verbunden") cur = conn.Cursor() print("\n [+] Cursor wurde erfolgreich eingerichtet") table = cur.execute(""" CREATE TABLE Mitarbeiter( id INT PRIMARY KEY, name CHAR(25), Gehalt CHAR(25), join_date DATE ); """) print("\n [+] Die Tabelle wurde erfolgreich erstellt ") heilen.schließen() Verbindung.schließen()

Im obigen Programm haben wir ein Mitarbeiter Tabelle mit den Attributen Ich würde, Name, Gehalt, und Beitrittsdatum. Diese Tabelle kann nun je nach Anforderung zum Speichern von Daten oder Abfragen von Daten verwendet werden. Sie sehen die folgende Ausgabe im Terminal.

Im obigen Code haben wir die ausführen() Methode des Cursor-Objekts, um den SQL-Befehl auszuführen, um eine Tabelle mit den angegebenen Spalten zu erstellen.

Einfügen von Daten in eine Tabelle

Wir haben eine Tabelle in unserer SQLite-Datenbank erstellt. Lassen Sie uns nun einige Daten mit SQL einfügen. Die grundlegende Syntax der INSERT-Anweisung von SQL ist:

INSERT INTO Tabellenname (Spalten_Name_1, Spalten_Name_2,… ) WERTE (Spalten_Daten_1, Spalten_Daten_1,… )

In der obigen Syntax ist das Tabellenname ist der Name der Tabelle, in die wir unsere Daten einfügen wollen. Das Spaltenname_1, Spaltenname_2, sind die Namen der Spalten, die in der Tabelle vorhanden sind. Das column_data_1, Spalte_Daten_2,… sind die Daten, die wir in die angegebenen Spalten einfügen möchten.

Sehen wir uns eine praktische Demo zum Einfügen von Daten in eine Tabelle an. Wir werden einige Daten in unsere Tabelle namens . hinzufügen Mitarbeiter mit SQLite und Python. Führen Sie den folgenden Code aus, um einige Daten in die Tabelle einzufügen.

sqlite3 conn importieren = sqlite3.connect("Beispiel.db") print("\n [+] Erfolgreich mit der Datenbank verbunden") cur = conn.Cursor() print("\n [+] Cursor wurde erfolgreich eingerichtet") cur.execute("INSERT INTO Employee (ID, Name, Gehalt, Beitrittsdatum) VALUES (1001, 'David', 50000, '1-08-2019')").execute("INSERT INTO Employee (ID, Name, Gehalt, Eintrittsdatum) VALUES (1002, 'Sam', 80000, '3-09-2020')") cur.execute("INSERT INTO Employee (ID, Name, Gehalt, Beitrittsdatum) VALUES (1003, 'Roshan', 90000, '8-08-2020')") cur.execute("INSERT INTO Employee (ID, Name, Gehalt, Beitrittsdatum) VALUES (1004, 'Kishan', 100000, '9-09-2020')") cur.execute("INSERT INTO Employee (ID, Name, Salär, Eintrittsdatum) VALUES (1005, 'Ankit', 111000, '10-05-2019')") print("\n [+] Die Daten wurden erfolgreich eingefügt " ) heilen.schließen() Verbindung.commit() conn.schließen()

Der obige Code fügt einige Daten in die Mitarbeiter Tabelle, die wir zuvor erstellt haben. Mal sehen was im Code passiert. Die ersten fünf Zeilen dienen zum Herstellen einer Verbindung mit der Datenbank und zum Einrichten des Cursors. In den Zeilen sechs bis zehn müssen wir den INSERT-Befehl von SQL verwenden, um Daten in die Mitarbeitertabelle einzufügen. Wir müssen den Spaltennamen der Mitarbeitertabelle in der ersten Klammer und die Daten für die Spalten in der zweiten Klammer verwenden. Wir brauchen nur die verpflichten() Methode des Verbindungsobjekts, bevor die Verbindung zur Datenbank getrennt wird, sonst werden die von uns vorgenommenen Änderungen nicht in der Datenbank gespeichert.

Abfragen von Daten aus einer Tabelle

Wir haben gelernt, wie man Daten in eine SQLite-Datenbank einfügt, aber wir müssen auch Daten aus der Datenbank abfragen, die von unserem Programm oder Benutzern verwendet werden sollen. Um Daten abzufragen, können wir die SELECT-Anweisung der SQL unter der Methode execute() verwenden. Die grundlegende Syntax der SELECT-Anweisung wird unten gezeigt.

SELECT column_names FROM table_name

Das Spalten_Namen in der Syntax wird der Name der Spalten sein, die wir abfragen müssen. Diese Spalten müssen in der Tabelle vorhanden sein, deren Name anstelle von angegeben wird Tabellenname. Sehen wir uns nun an, wie wir diese Syntax verwenden können, um Daten aus unserer Mitarbeitertabelle abzufragen. Führen Sie einfach den folgenden Code aus, um eine Illustration zu sehen.

sqlite3 importieren conn = sqlite3.connect("Beispiel.db") print("\n [+] Erfolgreich mit der Datenbank verbunden") cur = conn.Cursor() print("\n [+] Cursor wurde erfolgreich eingerichtet") cur.execute("SELECT id,name FROM Employee") table = cur.fetchall() für i in der Tabelle: print(i) cur.schließen() Verbindung.commit() conn.schließen()

Die Ausgabe des obigen Programms ist unten gezeigt.

Das obige Programm fragt die Mitarbeitertabelle nach den Spalten ab Ich würde und Name. Wir können die zurückgegebenen Daten sammeln, indem wir die holen () Methode des Cursor-Objekts. Die zurückgegebenen Daten sind eine Python-Liste mit den abgefragten Zeilen row. Um einzelne Zeilen anzuzeigen, müssen wir die Python-for-Schleife verwenden, um über die Liste zu iterieren; Sie können hier mehr über die Python for-Schleife lesen read. Sehen wir uns nun einige nützliche Dinge an, die wir mit der SELECT-Anweisung ausführen können.

Alle Daten aus einer Tabelle abrufen

Manchmal besteht die Notwendigkeit, alle Datensätze aus einer Datenbanktabelle zu holen. Um alle Datensätze mit der SELECT-Anweisung von SQL zu erhalten, müssen wir die unten angegebene grundlegende Syntax befolgen:

SELECT * FROM Tabellenname

Das * Symbol wird verwendet, um alle Spalten zu bezeichnen, und damit können wir alle Spalten einer SQLite-Tabelle abfragen. Um alle Datensätze aus dem zuvor erstellten Tabellenmitarbeiter abzurufen, müssen wir den folgenden Code ausführen.

sqlite3 conn importieren = sqlite3.connect("Beispiel.db") print("\n [+] Erfolgreich mit der Datenbank verbunden") cur = conn.Cursor() print("\n [+] Cursor wurde erfolgreich eingerichtet") cur.execute("SELECT * FROM Employee") rows = cur.fetchall() print("\n [+] Abfrage der Daten \n") für i in Zeilen: print(i) cur.schließen() Verbindung.commit() conn.schließen()

Der obige Code zeigt alle Datensätze an, die in der Mitarbeitertabelle vorhanden sind, die wir zuvor erstellt haben. Die Ausgabe des Programms sieht in etwa so aus:

Daten in bestimmter Reihenfolge abfragen

Manchmal müssen wir Daten aus einer Tabelle in einer bestimmten Reihenfolge wie aufsteigend oder absteigend abfragen. Wir können die SELECT-Anweisung mit dem ORDER BY-Schlüsselwort verwenden, um Daten in der richtigen Reihenfolge anzuzeigen display. Die grundlegende Syntax des Schlüsselworts ORDER BY in der SELECT-Anweisung lautet:

SELECT Spaltenname FROM Tabellenname ORDER BY Spaltenname

Lassen Sie uns sehen, wie wir das Schlüsselwort ORDER BY verwenden können, um Daten aus der Mitarbeitertabellenreihenfolge nach dem Namen anzuzeigen.

sqlite3 conn importieren = sqlite3.connect("Beispiel.db") print("\n [+] Erfolgreich mit der Datenbank verbunden") cur = conn.Cursor() print("\n [+] Cursor wurde erfolgreich eingerichtet") cur.execute("SELECT * FROM Employee ORDER BY name") table = cur.fetchall() für i in der Tabelle: print(i) cur.schließen() Verbindung.commit() conn.schließen()

Möglicherweise sehen Sie die Ausgabe des obigen Codes, wie unten gezeigt.

Möglicherweise stellen Sie in der Ausgabe fest, dass die Daten in aufsteigender Reihenfolge der Spalte angezeigt wurden Name.

Aktualisieren von Datensätzen in einer Tabelle

Es gibt viele Situationen, in denen wir die Tabelle unserer Datenbanken aktualisieren möchten. Wenn wir die Datenbank beispielsweise für eine Schulbewerbung verwenden, müssen wir die Daten aktualisieren, wenn ein Schüler in eine neue Stadt wechselt. Wir können eine Zeile einer beliebigen Tabelle unserer Datenbank schnell aktualisieren, indem wir die AKTUALISIEREN SQL-Anweisung in der Methode execute()(). Wir müssen die WHERE-Klausel von SQL als Bedingung verwenden, um den Mitarbeiter auszuwählen. Die grundlegende Syntax des of AKTUALISIEREN Aussage ist unten gezeigt.

UPDATE table_name SET update_required WHERE Some_condition

Sehen Sie sich das folgende Beispiel zur Veranschaulichung der UPDATE-Anweisung an.

sqlite3 conn importieren = sqlite3.connect("Beispiel.db") print("\n [+] Erfolgreich mit der Datenbank verbunden") cur = conn.Cursor() print("\n [+] Cursor wurde erfolgreich eingerichtet") print("\n [+] Daten vor dem Update\n") cur.execute("SELECT * FROM Employee") before = cur.fetchall() for i in vor: print(i) cur.execute("UPDATE Employee SET name = 'Aditya' where name = 'Sam'") print("\n [+] Data After Update\n") cur.execute("SELECT * FROM Employee") after = cur.fetchall() for i in after: print(i) cur.schließen() Verbindung.commit() conn.schließen()

Das obige Programm aktualisiert die Tabelle Mitarbeiter. Es ersetzt den Namen Sam mit dem namen Aditya wo immer es in der Tabelle erscheint. Siehe das folgende Bild für die Ausgabe des Programms.

Fazit

Das ist unser umfassender Leitfaden zum Ausführen einiger grundlegender Aufgaben im Zusammenhang mit SQLite-Datenbanken mit Python. Im kommenden Tutorial werden wir einige fortgeschrittene Anwendungen sehen, die Sie auf die nächste Stufe des Erlernens der SQLite-Datenbank für Python bringen sollten. Bleiben Sie dran an FOSSLinux.

So ändern Sie die linke und rechte Maustaste auf einem Windows 10-PC
Es ist ganz normal, dass alle Computer-Maus-Geräte ergonomisch für Rechtshänder gestaltet sind. Es gibt aber auch Mausgeräte, die speziell für Linkshä...
Emulieren Sie Mausklicks, indem Sie den Mauszeiger mit der klicklosen Maus in Windows 10 bewegen
Die Verwendung einer Maus oder Tastatur in der falschen Haltung bei übermäßiger Nutzung kann zu vielen gesundheitlichen Problemen führen, einschließli...
Fügen Sie mit diesen kostenlosen Tools Mausgesten zu Windows 10 hinzu
In den letzten Jahren haben sich Computer und Betriebssysteme stark weiterentwickelt. Es gab eine Zeit, in der Benutzer Befehle verwenden mussten, um ...