<

In diesem Kapitel erfahren Sie, wie Sie SQLite in Python-Programmen verwenden.

Installation

SQLite3 kann mithilfe des sqlite3-Moduls, das von Gerhard Haring geschrieben wurde, in Python integriert werden. Es bietet eine SQL-Schnittstelle, die mit der von PEP 249 beschriebenen DB-API 2.0-Spezifikation konform ist. Sie müssen dieses Modul nicht separat installieren, da es standardmäßig zusammen mit Python Version 2.5 ausgeliefert wird.x ab.,

Um das sqlite3-Modul zu verwenden, müssen Sie zuerst ein Verbindungsobjekt erstellen, das die Datenbank darstellt, und dann optional ein Cursorobjekt erstellen, das Ihnen bei der Ausführung aller SQL-Anweisungen hilft.

Python sqlite3 Modul APIs

Im Folgenden sind wichtige sqlite3 Modulroutinen aufgeführt, die ausreichen können, um mit der SQLite-Datenbank aus Ihrem Python-Programm zu arbeiten. Wenn Sie nach einer anspruchsvolleren Anwendung suchen, können Sie sich die offizielle Dokumentation des Python sqlite3-Moduls ansehen.

Sr. No., API & Beschreibung
1

sqlite3.connect (database)

Diese API öffnet eine Verbindung zur SQLite-Datenbankdatei. Sie können „:memory:“ verwenden, um eine Datenbankverbindung zu einer Datenbank zu öffnen, die sich im RAM statt auf der Festplatte befindet. Wenn die Datenbank erfolgreich geöffnet wurde, wird ein Verbindungsobjekt zurückgegeben.

Wenn auf eine Datenbank über mehrere Verbindungen zugegriffen wird und einer der Prozesse die Datenbank ändert, wird die SQLite-Datenbank gesperrt, bis diese Transaktion festgeschrieben ist., Der Timeout-Parameter gibt an, wie lange die Verbindung warten soll, bis die Sperre aufgehoben wird, bis eine Ausnahme ausgelöst wird. Der Standardwert für den Timeout-Parameter ist 5.0 (fünf Sekunden).

Wenn der angegebene Datenbankname nicht vorhanden ist, erstellt dieser Aufruf die Datenbank. Sie können auch den Dateinamen mit dem erforderlichen Pfad angeben, wenn Sie eine Datenbank an einer anderen Stelle als im aktuellen Verzeichnis erstellen möchten.

2

Verbindung.cursor ()

Diese Routine erstellt einen Cursor, der während der gesamten Datenbankprogrammierung mit Python verwendet wird., Diese Methode akzeptiert einen einzelnen optionalen Parameter cursorClass. Falls angegeben, muss dies eine benutzerdefinierte Cursorklasse sein, die sqlite3 erweitert.Cursor.

3

cursor.execute(sql )

Diese routine führt eine SQL-Anweisung. Die SQL-Anweisung kann parametrisiert werden (z. B. Platzhalter anstelle von SQL-Literalen). Das sqlite3-Modul unterstützt zwei Arten von Platzhaltern: Fragezeichen und benannte Platzhalter (benannter Stil).

Zum Beispiel-Cursor.execute(„insert into Personen values (?, ?)“, (der, Alter,))

4

Verbindung.,execute (sql)

Diese Routine ist eine Verknüpfung der obigen execute-Methode, die vom Cursor-Objekt bereitgestellt wird, und erstellt ein Zwischen-Cursor-Objekt, indem die Cursor-Methode aufgerufen wird, und ruft dann die execute-Methode des Cursors mit den angegebenen Parametern auf.

5

cursor.executemany (sql, seq_of_parameters)

Diese Routine führt einen SQL-Befehl für alle Parametersequenzen oder Zuordnungen aus, die in der Sequenz sql gefunden wurden.

6

Verbindung.,executemany (sql)

Diese Routine ist eine Verknüpfung, die ein zwischenzeitiges Cursorobjekt erstellt, indem Sie die Cursormethode aufruft und dann den Cursor aufruft.s executemany Methode mit den angegebenen Parametern.

7

cursor.executescript (sql_script)

Diese Routine führt mehrere SQL-Anweisungen gleichzeitig aus, die in Form eines Skripts bereitgestellt werden. Es gibt zuerst eine COMMIT-Anweisung aus und führt dann das SQL-Skript aus, das es als Parameter erhält. Alle SQL-Anweisungen sollten durch einen Semikolon (;) getrennt sein.

8

Verbindung.,executescript (sql_script)

Diese Routine ist eine Verknüpfung, die durch Aufrufen der Cursor-Methode ein Zwischen-Cursor-Objekt erstellt und dann die Executescript-Methode des Cursors mit den angegebenen Parametern aufruft.

9

Verbindung.total_changes ()

Diese Routine gibt die Gesamtzahl der Datenbankzeilen zurück, die seit dem Öffnen der Datenbankverbindung geändert, eingefügt oder gelöscht wurden.

10

Verbindung.commit ()

Diese Methode schreibt die aktuelle Transaktion fest., Wenn Sie diese Methode nicht aufrufen, ist alles, was Sie seit dem letzten Aufruf von commit() getan haben, in anderen Datenbankverbindungen nicht sichtbar.

11

Verbindung.rollback ()

Diese Methode setzt alle Änderungen an der Datenbank seit dem letzten Aufruf von commit () zurück.

12

Verbindung.close ()

Diese Methode schließt die Datenbankverbindung. Beachten Sie, dass commit () dadurch nicht automatisch aufgerufen wird. Wenn Sie nur Ihre Datenbankverbindung schließen, ohne zuerst commit() aufzurufen, gehen Ihre Änderungen verloren!

13

cursor.,fetchone ()

Diese Methode ruft die nächste Zeile einer Abfrageergebnismenge ab und gibt eine einzelne Sequenz oder Keine zurück, wenn keine Daten mehr verfügbar sind.

14

cursor.fetchmany ()

Diese Routine ruft den nächsten Satz von Zeilen eines Abfrageergebnisses ab und gibt eine Liste zurück. Eine leere Liste wird zurückgegeben, wenn keine Zeilen mehr verfügbar sind. Die Methode versucht, so viele Zeilen abzurufen, wie im Parameter size angegeben.

15

cursor.fetchall ()

Diese Routine ruft alle (verbleibenden) Zeilen eines Abfrageergebnisses ab und gibt eine Liste zurück., Eine leere Liste wird zurückgegeben, wenn keine Zeilen verfügbar sind.

Mit Datenbank verbinden

Der folgende Python-Code zeigt, wie eine Verbindung zu einer vorhandenen Datenbank hergestellt wird. Wenn die Datenbank nicht vorhanden ist, wird sie erstellt und schließlich ein Datenbankobjekt zurückgegeben.

#!/usr/bin/pythonimport sqlite3conn = sqlite3.connect('test.db')print "Opened database successfully";

Hier können Sie auch den Datenbanknamen als speziellen Namen angeben :Speicher: um eine Datenbank im RAM zu erstellen. Führen wir nun das obige Programm aus, um unseren Datenbanktest zu erstellen.db im aktuellen Verzeichnis. Sie können Ihren Pfad gemäß Ihrer Anforderung ändern., Halten Sie den obigen Code in sqlite.py datei und führen Sie es wie unten gezeigt aus. Wenn die Datenbank erfolgreich erstellt wurde, wird die folgende Meldung angezeigt.

$chmod +x sqlite.py$./sqlite.pyOpen database successfully

Erstellen Sie eine Tabelle

Folgende Python-Programm wird verwendet, um eine Tabelle in der zuvor erstellten Datenbank zu erstellen.

Wenn das obige Programm ausgeführt wird, wird die Firmentabelle in Ihrem Test erstellt.,db und es werden die folgenden Nachrichten angezeigt –

Opened database successfullyTable created successfully

Einfügeoperation

Das folgende Python-Programm zeigt, wie Datensätze in der im obigen Beispiel erstellten Firmentabelle erstellt werden.

Wenn das obige Programm ausgeführt wird, werden die angegebenen Datensätze in der Firmentabelle erstellt und die folgenden zwei Zeilen angezeigt:

Opened database successfullyRecords created successfully

SELECT Operation

Das folgende Python −Programm zeigt, wie Datensätze aus der im obigen Beispiel erstellten Firmentabelle abgerufen und angezeigt werden.,

Wenn das obige Programm ausgeführt wird, wird das folgende Ergebnis erzeugt.

Aktualisierungsvorgang

Der folgende Python-Code zeigt, wie mit der UPDATE-Anweisung ein Datensatz aktualisiert und dann die aktualisierten Datensätze aus der Firmentabelle abgerufen und angezeigt werden.

Wenn das obige Programm ausgeführt wird, wird das folgende Ergebnis erzeugt.

Opened database successfullyTotal number of rows updated : 1ID = 1NAME = PaulADDRESS = CaliforniaSALARY = 25000.0ID = 2NAME = AllenADDRESS = TexasSALARY = 15000.0ID = 3NAME = TeddyADDRESS = NorwaySALARY = 20000.0ID = 4NAME = MarkADDRESS = Rich-MondSALARY = 65000.0Operation done successfully

Löschvorgang

Der folgende Python-Code zeigt, wie mit der DELETE-Anweisung ein beliebiger Datensatz gelöscht und dann die verbleibenden Datensätze aus der Firmentabelle abgerufen und angezeigt werden.,

When the above program is executed, it will produce the following result.

Opened database successfullyTotal number of rows deleted : 1ID = 1NAME = PaulADDRESS = CaliforniaSALARY = 20000.0ID = 3NAME = TeddyADDRESS = NorwaySALARY = 20000.0ID = 4NAME = MarkADDRESS = Rich-MondSALARY = 65000.0Operation done successfully
Advertisements

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.