Dieser Artikel stellt hauptsächlich die Methode zum Betrieb der SQLite-Datenbank in Python vor. Er bietet eine detailliertere Analyse der Python-Installation des SQLite-Datenbankmoduls und gängiger Betriebstechniken für die SQLite-Datenbank.
Dies Der Artikel erklärt die Beispiele. Erfahren Sie, wie Python SQLite-Datenbanken bedient. Teilen Sie es als Referenz mit allen. Die Details lauten wie folgt:
Eine kurze Einführung in SQLite
SQLite-Datenbank ist eine sehr kompakte eingebettete Datenbank Open-Source-Datenbanksoftware, das heißt, es gibt keinen unabhängigen Wartungsprozess und die gesamte Wartung erfolgt durch das Programm selbst. Es handelt sich um ein relationales Datenbankverwaltungssystem, das dem ACID-Standard entspricht und in vielen eingebetteten Produkten verwendet wird. In eingebetteten Geräten sind möglicherweise nur wenige 100 KB Speicher erforderlich genug. Es kann gängige Betriebssysteme wie Windows/Linux/Unix unterstützen und mit vielen Programmiersprachen wie Tcl, C#, PHP, Java usw. sowie ODBC-Schnittstellen kombiniert werden. Es wird auch mit den beiden offenen Schnittstellen verglichen Im Vergleich zu den bekannten Datenbankverwaltungssystemen ist die Verarbeitungsgeschwindigkeit schneller als bei allen anderen. Die erste Alpha-Version von SQLite wurde im Mai 2000 geboren. Es ist nun 10 Jahre her und SQLite hat auch die Veröffentlichung einer Version von SQLite 3 eingeläutet.
Installation und Verwendung
1. Importieren Sie das Python SQLITE-Datenbankmodul
Nach Python2. 5, integriertes SQLite3, wird zu einem integrierten Modul, was uns den Installationsaufwand erspart, einfach importieren~
import sqlite3
2. Erstellen / Öffnen Sie die Datenbank
Geben Sie beim Aufruf der Verbindungsfunktion den Bibliotheksnamen an. Wenn die angegebene Datenbank vorhanden ist, öffnen Sie sie direkt. Wenn sie nicht vorhanden ist, erstellen Sie eine neue.
cx = sqlite3.connect("E:/test.db")
Sie können auch eine Datenbank im Speicher erstellen.
con = sqlite3.connect(":memory:")
3. Datenbankverbindungsobjekt
Das beim Öffnen der Datenbank zurückgegebene Objekt cx ist ein Datenbankverbindungsobjekt, das Es gibt folgende Vorgänge:
① commit()--Transaktionsübermittlung
② rollback()--Transaktions-Rollback
③ close()--Schließen einer Datenbankverbindung
④ Cursor () --Cursor erstellen
Wenn in Bezug auf commit() die Isolationsstufe „isolation_level“ die Standardeinstellung ist, müssen Sie diesen Befehl für jede Operation in der Datenbank verwenden. Sie können dazu auch „isolation_level=None“ festlegen es wird zum automatischen Übermittlungsmodell.
4.Verwenden Sie den Cursor , um die Datenbank abzufragen.
Wir müssen die SQL-Anweisung des Cursorobjekts verwenden, um die Datenbank abzufragen und das Abfrageobjekt abzurufen . Definieren Sie einen Cursor auf folgende Weise.
cu=cx.cursor()
Das Cursorobjekt verfügt über die folgenden Operationen:
①execute() – SQL-Anweisung ausführen
②executemany – mehrere SQL-Anweisungen ausführen
③ close() – den Cursor schließen
④ fetchone() – einen Datensatz aus dem Ergebnis übernehmen und den Cursor auf den nächsten Datensatz zeigen
⑤ fetchmany( ) – Mehrere Datensätze aus dem Ergebnis abrufen
⑥ fetchall() – Alle Datensätze aus dem Ergebnis abrufen
⑦ scroll() – Cursor-Scroll
1 >
Code kopieren Der Code lautet wie folgt:
cu.execute("Tabellenkatalog erstellen (idinteger Primary Key,pid integer, name varchar( 10) UNIQUE, Nickname text NULL)")
Die obige Anweisung erstellt eine Tabelle namens Katalog, die eine Primärschlüssel-ID, eine PID und einen Namen hat. Der Name kann nicht wiederholt werden und a Der Standardwert für den Spitznamen ist NULL. Bitte vermeiden Sie folgende Schreibweise:# Never do this -- insecure 会导致注入攻击 pid=200 c.execute("... where pid = '%s'" % pid)
for t in[(0,10,'abc','Yu'),(1,20,'cba','Xu')]: cx.execute("insert into catalog values (?,?,?,?)", t)
cx.commit()
3. Abfrage
cu.execute("select * from catalog")
In [10]: cu.fetchall() Out[10]: [(0, 10, u'abc', u'Yu'), (1, 20, u'cba', u'Xu')]
Hinweis, Änderung Daten später übermitteln
In [12]: cu.execute("update catalog set name='Boy' where id = 0") In [13]: cx.commit()
6 . Verwenden Sie Chinesisch
cu.execute("delete from catalog where id = 1") cx.commit()
Bitte stellen Sie zunächst sicher, dass Ihre IDE- oder System-Standardkodierung utf-8 ist, und fügen Sie u
vor Chinesisch hinzu
x=u'鱼' cu.execute("update catalog set name=? where id = 0",x) cu.execute("select * from catalog") cu.fetchall() [(0, 10, u'\u9c7c', u'Yu'), (1, 20, u'cba', u'Xu')]
如果要显示出中文字体,那需要依次打印出每个字符串
In [26]: for item in cu.fetchall(): ....: for element in item: ....: print element, ....: print ....: 0 10 鱼 Yu 1 20 cba Xu
7.Row类型
Row提供了基于索引和基于名字大小写敏感的方式来访问列而几乎没有内存开销。 原文如下:
sqlite3.Row provides both index-based and case-insensitive name-based access to columns with almost no memory overhead. It will probably be better than your own custom dictionary-based approach or even a db_row based solution.
Row对象的详细介绍
class sqlite3.Row
A Row instance serves as a highly optimized row_factory for Connection objects. It tries to mimic a tuple in most of its features.
It supports mapping access by column name and index, iteration, representation, equality testing and len().
If two Row objects have exactly the same columns and their members are equal, they compare equal.
Changed in version 2.6: Added iteration and equality (hashability).
keys()
This method returns a tuple of column names. Immediately after a query, it is the first member of each tuple in Cursor.description.
New in version 2.6.
下面举例说明
In [30]: cx.row_factory = sqlite3.Row In [31]: c = cx.cursor() In [32]: c.execute('select * from catalog') Out[32]: <sqlite3.Cursor object at 0x05666680> In [33]: r = c.fetchone() In [34]: type(r) Out[34]: <type 'sqlite3.Row'> In [35]: r Out[35]: <sqlite3.Row object at 0x05348980> In [36]: print r (0, 10, u'\u9c7c', u'Yu') In [37]: len(r) Out[37]: 4 In [39]: r[2] #使用索引查询 Out[39]: u'\u9c7c' In [41]: r.keys() Out[41]: ['id', 'pid', 'name', 'nickname'] In [42]: for e in r: ....: print e, ....: 0 10 鱼 Yu
使用列的关键词查询
In [43]: r['id'] Out[43]: 0 In [44]: r['name'] Out[44]: u'\u9c7c'
Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung der Schritte zum Betrieb einer SQLite-Datenbank in Python. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!