Eine Einführung in SQLite mit Python
In diesem Artikel wird eine detaillierte SQLite-Datenbank und ihre Verwendung mit Python untersucht. Wir werden lernen, wie Sie SQLite -Datenbanken in der Pythons sqlite3
-Bibliothek manipulieren und schließlich einige der erweiterten Funktionen von sqlite3
untersuchen, um unsere Arbeit zu vereinfachen.
Hinweis: Bevor Sie beginnen, ist es am besten mit SQL vertraut. Wenn Sie damit nicht vertraut sind, können Sie sich einfach auf SQL Learning beziehen.
Kernpunkte
- SQLite ist ein leichtes, dateibasiertes zugehöriges Datenbankverwaltungssystem, das aufgrund seiner Einfachheit und einfachen Konfiguration üblicherweise in Python-Anwendungen verwendet wird. Es unterstützt den gleichzeitigen Zugriff und ermöglicht es, dass mehrere Prozesse oder Threads auf dieselbe Datenbank zugreifen. Es fehlen jedoch Multi-User-Funktionen und wird nicht wie andere Datenbanktechnologien wie MySQL oder PostgreSQL als Prozess verwaltet. Das
- Das
sqlite3
-Modul in Python liefert SQLite SQLite und ist mit Python vorinstalliert. Dadurch können Benutzer Datenbanken erstellen, eine Verbindung zu Datenbanken herstellen, Tabellen erstellen, Daten einfügen und SQL -Befehle ausführen. Das Modul unterstützt außerdem Platzhalter und ermöglicht den Parameterersatz in SQL -Befehlen und erleichtert das Einfügen von Variablen in Abfragen. - Transaktionen in SQLite sind eine Reihe von Datenbankvorgängen, die als Einheit behandelt werden, um die Datenintegrität zu gewährleisten. Das Python -Modul von Python startet eine Transaktion, bevor die Anweisungen einfügen, aktualisieren, löschen oder ersetzt werden. Der Benutzer muss die Methode
sqlite3
aufrufen, um Änderungen zu speichern, die während der Transaktion vorgenommen wurden, und kann die Transaktion explizit verarbeiten, indem Siecommit()
aufisolation_level
bei der Verbindung mit der Datenbank einstellen.None
sqlites Motto lautet: "klein, schnell und zuverlässig. Wählen Sie zwei davon."
SQLite ist eine eingebettete Datenbankbibliothek in C -Sprache. Möglicherweise sind Sie mit anderen Datenbanktechnologien wie MySQL oder PostgreSQL vertraut. Diese Techniken verwenden die Client-Server-Methode: Die Datenbank wird als Server installiert und stellt dann mit dem Client eine Verbindung zum IT her. SQLite ist anders: Es wird als eingebettete Datenbank bezeichnet, da sie als Bibliothek im Programm enthalten ist. Alle Daten werden in einer Datei gespeichert - normalerweise mit .db -Erweiterung - und Sie können Funktionen verwenden, um SQL -Anweisungen auszuführen oder andere Aktionen in der Datenbank auszuführen.
Dateibasierte Speicherlösungen bieten auch einen gleichzeitigen Zugriff, was bedeutet, dass mehrere Prozesse oder Threads auf dieselbe Datenbank zugreifen können. Wofür ist SQLite? Ist es für eine Art von Anwendung geeignet?
sqlite funktioniert in den folgenden Situationen gut:
- Da es in den meisten mobilen Betriebssystemen wie Android und iOS enthalten ist, ist SQLite möglicherweise die perfekte Wahl, wenn Sie eine eigenständige, serverlose Datenspeicherlösung benötigen.
- Im Vergleich zur Verwendung großer CSV -Dateien können Sie die Leistung von SQL nutzen und alle Ihre Daten in eine einzelne SQLite -Datenbank einfügen.
- SQLite kann verwendet werden, um Konfigurationsdaten für Anwendungen zu speichern. Tatsächlich ist SQLite 35% schneller als dateibasierte Systeme wie Konfigurationsdateien.
Was sind die Gründe, warum sie sich nicht für SQLite entscheiden?
- Im Gegensatz zu MySQL oder PostgreSQL fehlt SQLite Multi-User-Funktionen.
- SQLite ist immer noch eine dateibasierte Datenbank, kein Dienst. Sie können es weder als Prozess verwalten, noch können Sie starten, stoppen oder die Ressourcennutzung verwalten.
Pythons SQLite -Schnittstelle
Wie ich in der Einführung erwähnt habe, ist SQLite eine C -Bibliothek. Es gibt jedoch viele Sprachen, die Schnittstellen schreiben, einschließlich Python. Das sqlite3
-Modul bietet eine SQL -Schnittstelle und benötigt mindestens SQLite 3.7.15.
erstaunlicherweise ist sqlite3
mit Python erhältlich, sodass Sie nichts installieren müssen.
SQLite3
verwendenEs ist Zeit, Code zu schreiben! Im ersten Teil erstellen wir eine grundlegende Datenbank. Das erste, was zu tun ist, ist eine Datenbank zu erstellen und eine Verbindung dazu herzustellen:
import sqlite3 dbName = 'database.db' try: conn = sqlite3.connect(dbName) cursor = conn.cursor() print("Database created!") except Exception as e: print("Something bad happened: ", e) if conn: conn.close()
In Zeile 1 importieren wir die Bibliothek sqlite3
. Dann rufen wir in einem try/except
-Codeblock sqlite3.connect()
auf, um die Verbindung zur Datenbank zu initialisieren. Wenn alles gut läuft, ist conn
eine Instanz des Connection
-Objekts. Wenn try
fehlschlägt, drucken wir die empfangene Ausnahme und schließen die Verbindung zur Datenbank. Wie in der offiziellen Dokumentation angegeben, wird jede offene SQLite -Datenbank durch ein Connection
-Objekt dargestellt. Jedes Mal, wenn wir SQL -Befehle ausführen müssen, verfügt das Connection
-Objekt über eine Methode namens cursor()
. In der Datenbanktechnologie sind Cursors eine Kontrollstruktur, die das Durchqueren von Datensätzen in einer Datenbank ermöglicht.
Wenn wir diesen Code ausführen, sollten wir die folgende Ausgabe erhalten:
<code>> Database created!</code>
Wenn wir uns den Ordner ansehen, in dem sich das Python -Skript befindet, sollten wir eine neue Datei namens database.db
sehen. Diese Datei wird automatisch durch sqlite3
erstellt.
Erstellen, Lesen und Ändern von Datensätzen
Zu diesem Zeitpunkt sind wir bereit, eine neue Tabelle zu erstellen, den ersten Eintrag hinzuzufügen und SQL -Befehle auszuführen, z. B. auswählen, aktualisieren oder fallen.
Um eine Tabelle zu erstellen, müssen wir nur eine einfache SQL -Anweisung ausführen. In diesem Beispiel erstellen wir eine students
Tabelle mit den folgenden Daten:
id | name | surname |
---|---|---|
1 | John | Smith |
2 | Lucy | Jacobs |
3 | Stephan | Taylor |
Nach der Zeile print("Database created!")
fügen Sie Folgendes hinzu:
import sqlite3 dbName = 'database.db' try: conn = sqlite3.connect(dbName) cursor = conn.cursor() print("Database created!") except Exception as e: print("Something bad happened: ", e) if conn: conn.close()
Wir erstellen eine Tabelle und rufen die cursor.execute()
-Methode auf, die verwendet wird, wenn wir eine einzelne SQL -Anweisung ausführen möchten.
Dann führen wir für jede Zeile, die wir hinzufügen möchten, eine Einfügungsoperation durch. Nach Abschluss aller Änderungen rufen wir conn.commit()
an, um die ausstehende Transaktion an die Datenbank zu senden. Wenn die commit()
-Methode nicht aufgerufen wird, gehen alle ausstehenden Änderungen an der Datenbank verloren. Schließlich schließen wir die Verbindung zur Datenbank, indem wir die Methode conn.close()
aufrufen.
Okay, jetzt lass uns unsere Datenbank abfragen! Wir brauchen eine Variable, um das Ergebnis der Abfrage zu halten. Sparen wir also das Ergebnis von cursor.execute()
in einer Variablen mit dem Namen records
:
<code>> Database created!</code>
Danach sehen wir alle Datensätze aus der Standardausgabe:
# 创建操作 create_query = '''CREATE TABLE IF NOT EXISTS student( id INTEGER PRIMARY KEY, name TEXT NOT NULL, surname TEXT NOT NULL); ''' cursor.execute(create_query) print("Table created!") # 插入和读取操作 cursor.execute("INSERT INTO student VALUES (1, 'John', 'Smith')") print("Insert #1 done!") cursor.execute("INSERT INTO student VALUES (2, 'Lucy', 'Jacobs')") print("Insert #2 done!") cursor.execute("INSERT INTO student VALUES (3, 'Stephan', 'Taylor')") print("Insert #3 done!") conn.commit() conn.close()
Zu diesem Zeitpunkt haben Sie möglicherweise festgestellt, dass wir in der cursor.execute()
-Methode die SQL -Befehle platziert haben, die ausgeführt werden müssen. Wenn wir einen anderen SQL -Befehl (z. B. Update oder Drop) ausführen möchten, ändert die Python -Syntax nichts.
Platzhalter
Die cursor.execute()
-Methode erfordert eine Zeichenfolge als Argument. Im vorherigen Abschnitt haben wir gesehen, wie Daten in unsere Datenbank eingefügt werden, aber alles ist hartcodiert. Was ist, wenn wir den Inhalt in Variablen in der Datenbank speichern müssen? Zu diesem Zweck hat sqlite3
einige clevere Funktionen, die als Platzhalter bezeichnet werden. Mit den Platzhaltern können wir den Parameterersatz verwenden, wodurch das Einfügen von Variablen in Abfragen einfacher wird.
schauen wir uns dieses Beispiel an:
records = cursor.execute("SELECT * FROM student") for row in records: print(row)
Wir haben eine Methode namens insert_command()
erstellt. Diese Methode akzeptiert vier Parameter: Der erste Parameter ist eine Connection
-Stanz, und die anderen drei werden in unseren SQL -Befehlen verwendet.
in der Variablen command
?
repräsentiert einen Platzhalter. Dies bedeutet, dass, wenn Sie die student_id=1
, name='Jason'
und surname='Green'
aufrufen, die Anweisung Insert insert_command
wird. INSERT INTO student VALUES(1, 'Jason', 'Green')
nennen, übergeben wir unseren Befehl und alle Variablen, die durch Platzhalter ersetzt werden. Von nun an werden wir jedes Mal, wenn wir eine Zeile in die Tabelle execute()
einfügen müssen, die student
-Methode mit den erforderlichen Parametern auf. insert_command()
Ich werde schnell die Bedeutung davon überprüfen, auch wenn Sie nicht neu für die Transaktionsdefinition sind. Eine Transaktion ist eine Reihe von Operationen, die in einer Datenbank ausgeführt werden, und wird logischerweise als Einheit betrachtet.
Der wichtigste Vorteil einer Transaktion besteht darin, die Datenintegrität sicherzustellen. In dem oben eingeführten Beispiel ist es möglicherweise nicht nützlich, aber die Transaktion wirkt sich aus, wenn wir mehr Daten verarbeiten, die in mehreren Tabellen gespeichert sind.
Pythons sqlite3
Modul startet eine Transaktion vor execute()
und executemany()
Ausführen, Aktualisieren, Löschen oder Ersetzen von Anweisungen. Dies bedeutet zwei Dinge:
- Wir müssen darauf achten, die Methode
commit()
zu rufen. Wenn wircommit()
aufrufen, ohneConnection.close()
auszuführen, gehen alle Änderungen, die wir während der Transaktion vornehmen, verloren. - Wir können keine Transaktionen mit Beginn im selben Prozess öffnen.
Lösung? Prozesstransaktionen explizit.
wie? Durch die Verwendung von Funktionsaufrufen sqlite3.connect(dbName, isolation_level=None)
anstelle von sqlite3.connect(dbName)
. Indem wir isolation_level
auf None
festlegen, zwingen wir sqlite3
, die Transaktion niemals implizit zu öffnen.
Der folgende Code ist ein Umschreiben des vorherigen Codes, verwendet jedoch explizit die Transaktion:
import sqlite3 dbName = 'database.db' try: conn = sqlite3.connect(dbName) cursor = conn.cursor() print("Database created!") except Exception as e: print("Something bad happened: ", e) if conn: conn.close()
Schlussfolgerung
Ich hoffe, Sie haben ein gutes Verständnis dafür, was SQLite ist, wie Sie es für Ihr Python -Projekt verwenden und wie einige seiner erweiterten Funktionen funktionieren. Die expliziten Verwaltung von Transaktionen kann zunächst etwas schwierig sein, aber es kann Ihnen sicherlich helfen, das Beste daraus zu machen. sqlite3
- Beginnen Sie mit SQLite3: Basic -Befehle
- Beginnen Sie mit Python -Unit -Tests unter Verwendung von Unittest und PyTest
- Daten in iOS -Anwendungen verwalten mit SQLite
- http python anfordern Anfängerhandbuch
- SQL und NoSQL: Differenz
Was ist SQLite und warum benutze ich es mit Python? SQLite ist ein leichtes, dateibasiertes zugehöriges Datenbankverwaltungssystem. Aufgrund seiner Einfachheit und minimalen Konfiguration wird es in eingebetteten Datenbankanwendungen häufig verwendet. Die Verwendung von SQLite mit Python bietet eine bequeme Möglichkeit, Datenbanken in Python -Anwendungen zu integrieren, ohne dass ein separater Datenbankserver erforderlich ist.
Wie stellt ich eine Verbindung zur SQLite -Datenbank in Python her? Sie können das
-Modul (vorinstalliert mit Python) verwenden, um eine Verbindung zur SQLite -Datenbank herzustellen. Verwenden Sie die Methode sqlite3
, um eine Verbindung herzustellen und das Verbindungsobjekt abzurufen, und erstellen Sie dann einen Cursor, um den SQL -Befehl auszuführen. connect()
-Methode im Cursorobjekt ausführen. Verwenden Sie zum Erstellen einer Tabelle die Anweisung execute()
. CREATE TABLE
, um Daten in die Tabelle einzufügen. Platzhalter INSERT INTO
oder %s
können für parametrisierte Abfragen verwendet werden, um eine SQL -Injektion zu vermeiden. ?
und commit()
im Verbindungsobjekt verwaltet. Setzen Sie mehrere SQL -Befehle zwischen rollback()
und begin
ein, um sicherzustellen, dass sie als einzelne Transaktion behandelt werden. commit
Das obige ist der detaillierte Inhalt vonEine Einführung in SQLite mit Python. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



Lösung für Erlaubnisprobleme beim Betrachten der Python -Version in Linux Terminal Wenn Sie versuchen, die Python -Version in Linux Terminal anzuzeigen, geben Sie Python ein ...

Bei der Verwendung von Pythons Pandas -Bibliothek ist das Kopieren von ganzen Spalten zwischen zwei Datenrahmen mit unterschiedlichen Strukturen ein häufiges Problem. Angenommen, wir haben zwei Daten ...

Wie lehre ich innerhalb von 10 Stunden die Grundlagen für Computer -Anfänger für Programmierungen? Wenn Sie nur 10 Stunden Zeit haben, um Computer -Anfänger zu unterrichten, was Sie mit Programmierkenntnissen unterrichten möchten, was würden Sie dann beibringen ...

Wie kann man nicht erkannt werden, wenn Sie Fiddlereverywhere für Man-in-the-Middle-Lesungen verwenden, wenn Sie FiddLereverywhere verwenden ...

Regelmäßige Ausdrücke sind leistungsstarke Tools für Musteranpassung und Textmanipulation in der Programmierung, wodurch die Effizienz bei der Textverarbeitung in verschiedenen Anwendungen verbessert wird.

Wie hört Uvicorn kontinuierlich auf HTTP -Anfragen an? Uvicorn ist ein leichter Webserver, der auf ASGI basiert. Eine seiner Kernfunktionen ist es, auf HTTP -Anfragen zu hören und weiterzumachen ...

In dem Artikel werden beliebte Python-Bibliotheken wie Numpy, Pandas, Matplotlib, Scikit-Learn, TensorFlow, Django, Flask und Anfragen erörtert, die ihre Verwendung in wissenschaftlichen Computing, Datenanalyse, Visualisierung, maschinellem Lernen, Webentwicklung und h beschreiben

Wie erstellt in Python ein Objekt dynamisch über eine Zeichenfolge und ruft seine Methoden auf? Dies ist eine häufige Programmieranforderung, insbesondere wenn sie konfiguriert oder ausgeführt werden muss ...
