Python wird mit einer leichten relationalen DatenbankSQLite geliefert. Diese Datenbank verwendet die SQL-Sprache. Als Back-End-Datenbank kann SQLite mit Python zum Erstellen von Websites oder zum Erstellen von Tools verwendet werden, die Datenspeicherung erfordern. SQLite wird auch in anderen Bereichen häufig verwendet, beispielsweise HTML5 und mobile Endgeräte. sqlite3 in der Python-Standardbibliothek bietet eine Schnittstelle zu dieser Datenbank.
Ich werde eine einfache relationale Datenbank erstellen, um Buchkategorien und Preise für einen Buchladen zu speichern. Die Datenbank enthält zwei Tabellen: „Kategorie“ dient zum Aufzeichnen der Klassifizierung und „Buch“ zum Aufzeichnen von Informationen zu einem bestimmten Buch. Ein Buch gehört zu einer bestimmten Kategorie, daher verfügt das Buch über einen Fremdschlüssel (foreign key), der auf die Primärschlüssel-ID der Kategorietabelle verweist.
Erstellen der Datenbank
Ich werde zuerst die Datenbank und die Tabellen in der Datenbank erstellen. Nachdem ich connect() verwendet habe, um eine Verbindung zur Datenbank herzustellen, kann ich den SQL-Befehl ausführen, indem ich den Cursor positioniere:
# By Vamei import sqlite3 # test.db is a file in the working directory. conn = sqlite3.connect("test.db") c = conn.cursor() # create tables c.execute('''CREATE TABLE category (id int primary key, sort int, name text)''') c.execute('''CREATE TABLE book (id int primary key, sort int, name text, price real, category int, FOREIGN KEY (category) REFERENCES category(id))''') # save the changes conn.commit() # close the connection with the database conn.close()
SQLites Datenbank befindet sich auf einer Festplatte mit Dateien , wie beispielsweise test.db oben, sodass die gesamte Datenbank problemlos verschoben oder kopiert werden kann. test.db existiert zunächst nicht, daher erstellt SQLite automatisch eine neue Datei.
Mit dem Befehl „execute()“ habe ich zwei SQL-Befehle ausgeführt, um zwei Tabellen in der Datenbank zu erstellen. Speichern Sie nach der Erstellung die Verbindung zur Datenbank und trennen Sie sie.
Daten einfügen
Die Datenbank und die Tabellen werden oben erstellt und die abstrakte Struktur der Datenbank festgelegt. Folgendes fügt Daten in dieselbe Datenbank ein:
# By Vamei import sqlite3 conn = sqlite3.connect("test.db") c = conn.cursor() books = [(1, 1, 'Cook Recipe', 3.12, 1), (2, 3, 'Python Intro', 17.5, 2), (3, 2, 'OS Intro', 13.6, 2), ] # execute "INSERT" c.execute("INSERT INTO category VALUES (1, 1, 'kitchen')") # using the placeholder c.execute("INSERT INTO category VALUES (?, ?, ?)", [(2, 2, 'computer')]) # execute multiple commands c.executemany('INSERT INTO book VALUES (?, ?, ?, ?, ?)', books) conn.commit() conn.close()
Beim Einfügen von Daten kann auchexecute() verwendet werden, um eine vollständige SQL-Anweisung auszuführen. Verwenden Sie für Parameter in SQL-Anweisungen „?“ als Ersatzsymbol und geben Sie in nachfolgenden Parametern bestimmte Werte an. Sie können Pythons -formatierte Zeichenfolge , z. B. „%s“, nicht verwenden, da diese Verwendung anfällig für SQL-Injection-Angriffe ist.
Ich kann auch die Methodeexecutemany() verwenden, um mehrere Einfügungen durchzuführen und mehrere Datensätze hinzuzufügen. Jeder Datensatz ist ein Element in der Tabelle, beispielsweise die Elemente in der Büchertabelle oben.
Abfrage
Nach der Ausführung der Abfrageanweisung gibt Python einen Looper zurück, der mehrere durch die Abfrage erhaltene Datensätze enthält. Sie können eine Schleife einlesen oder die von sqlite3 bereitgestellten Methoden fetchone() und fetchall() verwenden, um Datensätze zu lesen:
# By Vamei import sqlite3 conn = sqlite3.connect('test.db') c = conn.cursor() # retrieve one record c.execute('SELECT name FROM category ORDER BY sort') print(c.fetchone()) print(c.fetchone()) # retrieve all records as a list c.execute('SELECT * FROM book WHERE book.category=1') print(c.fetchall()) # iterate through the records for row in c.execute('SELECT name, price FROM book ORDER BY sort'): print(row)
Aktualisieren und Löschen
Sie können einen Datensatz aktualisieren oder löschen:
# By Vamei conn = sqlite3.connect("test.db") c = conn.cursor() c.execute('UPDATE book SET price=? WHERE id=?',(1000, 1)) c.execute('DELETE FROM book WHERE id=2') conn.commit() conn.close()
Sie können auch die gesamte Tabelle direkt löschen:
c.execute('DROP TABLE book')
Wenn test.db gelöscht wird, wird die gesamte Datenbank gelöscht.
Zusammenfassung
sqlite3 ist lediglich eine Schnittstelle zu SQLite. Wenn Sie die SQLite-Datenbank kompetent nutzen möchten, müssen Sie sich mehr Wissen über relationale Datenbanken aneignen.
Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung der Anwendungsmethode der Python-Datenbank sqlite3. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!