2026-05-19 03:25:52
Python中SQLite数据库的使用
SQLite是一种轻量级的嵌入式数据库,Python通过内置的sqlite3模块提供了对其的支持。以下是SQLite数据库在Python中的基本使用方法:
导入模块
import sqlite3或者:
from sqlite3 import dbapi2创建与连接数据库
connection = sqlite3.connect('filename.db')如果filename.db文件存在,则打开该数据库;如果不存在,则创建一个新的数据库文件。该方法返回一个数据库连接对象。
关闭连接
connection.close()关闭连接,更新数据库文件。
创建数据表
使用CREATE TABLE语句创建表。例如:
conn.execute('''CREATE TABLE IF NOT EXISTS mytb (xm CHAR, cj REAL, kc TEXT)''')IF NOT EXISTS表示如果数据库中不存在mytb数据表,就创建该表;如果该数据表已经存在,则什么也不做。
xm CHAR, cj REAL, kc TEXT表示该数据表有3个字段,xm(姓名)是字符串类型,cj(成绩)是浮点数类型,kc(课程)是文本字符串。
SQLite3支持的数据类型有:NULL(值=空)、INTEGER(整数)、REAL(浮点数)、TEXT(字符串文本)、BLOB(二进制数据块)。
插入记录
使用INSERT INTO语句插入记录。例如:
cur.execute("INSERT INTO mytb VALUES ('宝玉', 85, '计算机')")提交事务:
conn.commit()查询记录
使用SELECT语句查询记录。例如:
cur.execute("SELECT * FROM mytb")lst = cur.fetchall()print(lst)查询sqlite_master表以获取数据库的元信息:
cur.execute("SELECT name, sql FROM sqlite_master WHERE type='table'")print(cur.fetchall())更新记录
使用UPDATE语句更新记录。例如:
cur.execute("UPDATE mytb SET cj = 90 WHERE xm = '宝玉'")conn.commit()删除记录
使用DELETE FROM语句删除记录。例如:
cur.execute("DELETE FROM mytb WHERE cj > 90")conn.commit()删除整个数据表:
cur.execute("DROP TABLE mytb")conn.commit()例题练习
第1关:创建和连接数据库文件
import sqlite3conn = sqlite3.connect("mytest.db")conn.close()第2关:创建数据表
import sqlite3conn = sqlite3.connect("mytest.db")sql_demo = "CREATE TABLE IF NOT EXISTS mytb(xm CHAR, cj REAL, kc TEXT)"conn.execute(sql_demo)conn.close()第3关:插入记录
import sqlite3conn = sqlite3.connect("mytest.db")cur = conn.cursor()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, '数据库')"conn.execute(sql_create)cur.execute(sql_insert_by)cur.execute(sql_insert_dy)cur.execute(sql_insert_bc)conn.commit()cur.close()conn.close()第4关:查询记录
import sqlite3conn = sqlite3.connect("myfile.db")cur = conn.cursor()sql_select = "SELECT * FROM mytb"cur.execute(sql_select)lst = cur.fetchall()print(f"共{len(lst)}条记录")print(lst)cur.execute("SELECT name, sql FROM sqlite_master")print(cur.fetchall())cur.close()conn.close()第5关:更新和删除记录
import sqlite3conn = sqlite3.connect("my.db")cur = conn.cursor()cur.execute("UPDATE mytb SET cj = 0 WHERE xm = '宝玉'")cur.execute("DELETE FROM mytb WHERE cj > 90")cur.execute("DELETE FROM mytb")cur.execute("DROP TABLE mytb")conn.commit()cur.close()conn.close()第6关:图书数据库的综合操作
import sqlite3conn = sqlite3.connect("mybook.db")cur = conn.cursor()cur.execute("CREATE TABLE IF NOT EXISTS mytb(isbn TEXT, 书名 TEXT, 价格 REAL)")cur.execute("INSERT INTO mytb VALUES ('9787302518358', '欧美戏剧选读', 88.00)")cur.execute("INSERT INTO mytb VALUES ('9787302454038', '组织理论与设计 第12版', 75.00)")cur.execute("INSERT INTO mytb VALUES ('9787302496878', '中国文化经典读本', 45.00)")conn.commit()cur.execute("SELECT * FROM mytb")lst = cur.fetchall()for x in lst: print(x)cur.close()conn.close()通过以上步骤,您可以在Python中有效地使用SQLite数据库进行数据的创建、查询、更新和删除操作。