Heim >Backend-Entwicklung >Python-Tutorial >Detaillierte Erläuterung der Anwendungsmethode der Python-Datenbank sqlite3

Detaillierte Erläuterung der Anwendungsmethode der Python-Datenbank sqlite3

高洛峰
高洛峰Original
2017-03-23 17:05:152029Durchsuche

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.

Detaillierte Erläuterung der Anwendungsmethode der Python-Datenbank sqlite3

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn