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.
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接口模块
(2) Datenbank mit der Verbindungsmethode erstellen
connection=sqlite3.connect(filename) #filename为数据库文件名,如果该文件存在则打开该数据库,如果不存在则创建一个新的数据库文件。 #该方法返回一个数据库连接对象
(3) Verbindungsobjekt schließen
connection.close() #关闭连接,更新数据库文件
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)
Beispiel: Erstellen einer Mytb-Tabelle:
create table if not exists mytb( xm char, cj real, kc text )
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
(字符串文本)、blob
execute()-Methode
conn.execute('create table if not exists mytb( xm char, cj real, kc text )')
conn ist das Verbindungsobjekt. Der Parameter in derexecute()-Methode ist eine SQL-Anweisung, der Typ ist string
Datensatz einfügen
Das Syntaxformat lautet wie folgt:
insert into 表名 [字段名] values [常量]
Zum Beispiel:
insert into Persons values ('Gates', 'Bill', 'Xuanwumen 10', 'Beijing')
(2) Verwenden Sieexecute(), um die SQL-Anweisung auszuführen
cur.exceute(sql语句)
(3) Senden Sie die Transaktion
conn.commit() #提交事务,将数据写入文件,保存到磁盘中。
Fragen Sie die SQL-Anweisung ab
SELECT 目标列 FROM 表 [WHERE 条件表达式]
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
Zum Beispiel abfragen Alle Datensätze in der Tabelle:
select * from student
fetchall()
sqlite_master-Tabelle
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='table'
Diese Anweisung wird verwendet, um den Namen der Datentabelle in der Datenbank abzufragen und die SQL-Anweisung zum Erstellen der Tabelle
Datensätze aktualisieren
UPDATE 表名 SET 列名=表达式… [WHERE 条件]
Wenn die „Bedingung“ wahr ist, Ändern Sie den Wert einer Spalte. Für „Ausdruck“ wie:
update student set cj=90 where xh="001"
Sie können die Note des Schülers Nr. 001 in 90 ändern
Datensätze löschen
(1) Löschen Sie alle Datensätze in der Datentabelle
DELETE FROM <表名>
Löschen Sie beispielsweise die Schülertabelle
delete from student
(2) Löschen Sie Datensätze
DELETE FROM <表名> WHERE <条件>
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='001'
Level 2: Erstellen Sie eine Datentabelle
Code-Analyse
DROP TABLE 表名
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
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**********#
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()
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 ('宝玉',85,'计算机')" sql_insert_dy = "insert into mytb values ('黛玉',90,'计算机')" sql_insert_bc = "insert into mytb values ('宝钗',80,'数据库')" #(5)执行SQL语句,创建数据表mytb conn.execute(sql_create) #(6)依次插入3条记录,内容分别为:('宝玉',85,'计算机')、('黛玉',92,'计算机')、('宝钗',80,'数据库') cur.execute(sql_insert_by) cur.execute(sql_insert_dy) cur.execute(sql_insert_bc) #(7)提交事务 conn.commit() #(8)关闭连接 cur.close() conn.close()
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!