So verwenden Sie eine SQLite-Datenbank in Python

王林
Freigeben: 2023-05-11 08:25:06
nach vorne
1871 Leute haben es durchsucht

SQL (Structured Query Language) ist eine allgemeine Datenbankabfragesprache. SQL verfügt über Datendefinitions-, Datenoperations- und Datenkontrollfunktionen und kann die gesamte Arbeit der Datenbank erledigen. Wenn Sie die SQL-Sprache verwenden, müssen Sie dem Computer nur sagen, „was er tun soll“, ohne ihm zu sagen, „wie es zu tun ist“.

Es gibt zwei Möglichkeiten, die SQL-Sprache interaktiv im Befehlsmodus zu verwenden. Die andere besteht darin, sie in Hauptsprachen wie C/C++ und Python einzubetten.

Vorkenntnisse

Erstellung und Verbindung einer SQLite-Datenbank

Erstellung und Verbindung einer SQLite-Datenbank sind in drei Schritte unterteilt:

(1) Modul importieren

import sqlite3
#或者:
from sqlite3 import dbapi2       #导入sqlite3模块的dbapi2接口模块
Nach dem Login kopieren

(2) Datenbank mit der Verbindungsmethode erstellen

connection=sqlite3.connect(filename) 
#filename为数据库文件名,如果该文件存在则打开该数据库,如果不存在则创建一个新的数据库文件。 
#该方法返回一个数据库连接对象
Nach dem Login kopieren

(3) Verbindungsobjekt schließen

connection.close() 
#关闭连接,更新数据库文件
Nach dem Login kopieren

SQL-Anweisung erstellt Datentabelle

Eine Tabelle ist eine Sammlung relationaler Daten, die in einer Datenbank gespeichert sind. Eine Datenbank enthält normalerweise mehrere Tabellen, z. B. Schülertabellen, Klassentabellen, Lehrertabellen usw. Tabellen sind miteinander verbunden externe Schlüsselzuordnung.

In SQL lautet die Syntaxstruktur zum Erstellen einer Tabelle mithilfe der create-Anweisung wie folgt:

create table 表名(字段1,…,字段n)
Nach dem Login kopieren

Beispiel: Erstellen einer Mytb-Tabelle:

create table if not exists mytb( xm char, cj real, kc text )
Nach dem Login kopieren

Der Tabellenname lautet mytb; IF NOT EXISTS bedeutet, dass die mytb-Datentabelle vorhanden ist nicht in der Datenbank vorhanden, erstellen Sie die Tabelle. Wenn die Datentabelle bereits vorhanden ist, tun Sie nichts. xm char, cj real, kc text bedeutet, dass die Datentabelle 3 Felder hat, xm (Name) ist ein Zeichenfolgentyp, cj (note) ist ein Gleitkommazahlentyp, kc(course) ist eine Textzeichenfolge.

Die von SQLite3 unterstützten Datentypen sind:

(Binärdatenblock).

null(值=空)、integer(整数)、real(浮点数)、text(字符串文本)、blobexecute()-Methode

In Python können wir dieexecute-Methode verwenden, um eine SQL-Anweisung auszuführen

conn.execute('create table if not exists mytb( xm char, cj real, kc text )')
Nach dem Login kopieren

conn ist das Verbindungsobjekt. Der Parameter in derexecute()-Methode ist eine SQL-Anweisung, der Typ ist string

Datensatz einfügen

(1) Die SQL-Anweisung zum Einfügen von Datensätzen

Das Syntaxformat lautet wie folgt:

insert into 表名 [字段名] values [常量]
Nach dem Login kopieren

Zum Beispiel:

insert into Persons values ('Gates', 'Bill', 'Xuanwumen 10', 'Beijing')
Nach dem Login kopieren

(2) Verwenden Sieexecute(), um die SQL-Anweisung auszuführen

cur.exceute(sql语句)
Nach dem Login kopieren

(3) Senden Sie die Transaktion

conn.commit() #提交事务,将数据写入文件,保存到磁盘中。
Nach dem Login kopieren

Fragen Sie die SQL-Anweisung ab

Von „Tabelle“ Fragen Sie die „Zielspalte“ ab, die den bedingten Ausdruck in

SELECT 目标列 FROM 表 [WHERE 条件表达式]
Nach dem Login kopieren

erfüllt. Fragen Sie beispielsweise die Namen und das Alter von Schülern unter 20 Jahren ab:

select sname age from student where age<20
Nach dem Login kopieren

Zum Beispiel abfragen Alle Datensätze in der Tabelle:

select * from student
Nach dem Login kopieren

fetchall()

Mehrere Datensätze zurückgeben. Datensätze (Zeilen). Wenn keine Ergebnisse vorhanden sind, geben Sie eine leere () zurück.

sqlite_master-Tabelle

Jede SQLite-Datenbank verfügt über eine Tabelle namens sqlite_master automatisch erstellt.

sqlite_master ist eine spezielle Tabelle, die Metainformationen der Datenbank speichert, z. B. Tabelle, Index, Ansicht und Trigger. Zugehörige Informationen können über Select abgefragt werden.

select name,sql from sqlite_master where type=&#39;table&#39;
Nach dem Login kopieren

Diese Anweisung wird verwendet, um den Namen der Datentabelle in der Datenbank abzufragen und die SQL-Anweisung zum Erstellen der Tabelle

Datensätze aktualisieren

SQL-Anweisungen zum Aktualisieren von Datensätzen:

UPDATE 表名 SET 列名=表达式… [WHERE 条件]
Nach dem Login kopieren

Wenn die „Bedingung“ wahr ist, Ändern Sie den Wert einer Spalte. Für „Ausdruck“ wie:

update student set cj=90 where xh="001"
Nach dem Login kopieren

Sie können die Note des Schülers Nr. 001 in 90 ändern

Datensätze löschen

DROP TABLE- und DELETE-Anweisungen:

(1) Löschen Sie alle Datensätze in der Datentabelle

DELETE FROM <表名>
Nach dem Login kopieren

Löschen Sie beispielsweise die Schülertabelle

delete from student
Nach dem Login kopieren

(2) Löschen Sie Datensätze

DELETE FROM <表名> WHERE <条件>
Nach dem Login kopieren

Löschen Sie beispielsweise den Datensatz, dessen Mittelschulnummer Ebene 1: Erstellen und verbinden Sie die Datenbankdatei

Die Aufgabe dieser Ebene: Erstellen und verbinden Sie die Datenbank mytest.db im aktuellen Verzeichnis.

Code-Analyse

delete from student where xh=&#39;001&#39;
Nach dem Login kopieren

Level 2: Erstellen Sie eine Datentabelle

Aufgabe in diesem Level: Erstellen oder öffnen Sie ein Beispiel für eine Datentabelle.

Code-Analyse

DROP TABLE 表名
Nach dem Login kopieren

Ebene 3: Datensätze einfügen

Die Aufgabe dieser Ebene: Erstellen Sie eine SQLite3-Datenbankdatei mytest.db, erstellen Sie dann eine Datentabelle mytb.db und fügen Sie drei Zeilen mit Datensätzen in die Tabelle ein.

Code-Analyse

drop table student
Nach dem Login kopieren

Ebene 4: Datensätze abfragen

Die Aufgabe dieser Ebene: Entwerfen Sie ein Programm, um alle Datensätze in der Datentabelle mytb in der vorhandenen Datenbankdatei myfile.db abzufragen und die Datentabellenstruktur abzufragen.

Code-Analyse

def return_values():
#***********Begin**********#
    #(1)导入内置sqlite3模块
    import sqlite3
    #(2)创建conn连接对象(在当前路径下建立mytest.db数据库)
    conn = sqlite3.connect("mytest.db")
    #(3)关闭连接
    conn.close()
#***********End**********#
Nach dem Login kopieren

Level 5: Datensätze aktualisieren und löschen

Aufgabe dieser Ebene: Datensätze in der SQLite-Datenbank aktualisieren und löschen

Code-Analyse

#(1)导入sqlite3模块
import sqlite3
#(2)创建conn连接对象,建立mytest.db数据库
conn = sqlite3.connect("mytest.db")
#(3)定义sql语句,创建mytb数据表,表中有三个字段xm、cj、kc,其数据类型分别为char、real、text
sql_demo = "create table if not exists mytb( xm char , cj real , kc text )"
#(4)执行sql语句
conn.execute(sql_demo)
#(5)关闭连接
conn.close()
Nach dem Login kopieren

Level 6: Umfassender Betrieb der Buchdatenbank

Aufgabe dieser Ebene: Erstellen Sie die Datenbank mybook.db in SQLite; erstellen Sie die Datentabelle mytb in der Datenbank. Definieren Sie Felder wie isbn (text), Buchtitel (text), Preis (real) usw. in der Tabelle und fügen Sie Datensätze ein.

Code-Analyse

#(1)导入sqlite3模块
import sqlite3
#(2)创建数据库文件mytest.db
conn = sqlite3.connect("mytest.db")
#(3)定义一个游标对象
cur = conn.cursor()
#(4)定义创建数据表SQL语句
sql_create = "create table if not exists mytb(xm char,cj real,kc text)"
sql_insert_by = "insert into mytb values (&#39;宝玉&#39;,85,&#39;计算机&#39;)"
sql_insert_dy = "insert into mytb values (&#39;黛玉&#39;,90,&#39;计算机&#39;)"
sql_insert_bc = "insert into mytb values (&#39;宝钗&#39;,80,&#39;数据库&#39;)"
#(5)执行SQL语句,创建数据表mytb
conn.execute(sql_create)
#(6)依次插入3条记录,内容分别为:(&#39;宝玉&#39;,85,&#39;计算机&#39;)、(&#39;黛玉&#39;,92,&#39;计算机&#39;)、(&#39;宝钗&#39;,80,&#39;数据库&#39;)
cur.execute(sql_insert_by)
cur.execute(sql_insert_dy)
cur.execute(sql_insert_bc)
#(7)提交事务
conn.commit()
#(8)关闭连接
cur.close()
conn.close()
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonSo verwenden Sie eine SQLite-Datenbank in Python. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:yisu.com
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage