python散装笔记——50: Sqlite3 模块

python散装笔记——50: Sqlite3 模块

技术教程gslnedu2025-03-16 14:21:194A+A-

1: Sqlite3 - 不需要单独的服务器进程

sqlite3 模块由 Gerhard H"aring 编写。要使用该模块,首先必须创建一个表示数据库的 Connection 对象。这里的数据将存储在 example.db 文件中:

import sqlite3
conn = sqlite3.connect('example.db')

您还可以提供特殊名称 :memory:,在 RAM 中创建数据库。有了 Connection 之后,就可以创建一个游标对象,并调用其 execute() 方法来执行 SQL 命令:

c = conn.cursor()

# 创建表
c.execute('''CREATE TABLE stocks (date text, trans text, symbol text, qty real, price real)''')

# 插入一行数据
c.execute("INSERT INTO stocks VALUES ('2025-01-05','BUY','RHAT',100,35.14)")

# 保存(提交)更改
conn.commit()

# 如果已经完成,我们也可以关闭连接。只要确保任何更改都已提交,否则就会丢失。
conn.close()

2: 从数据库获取数值和错误处理

从 SQLite3 数据库获取数值。

为了使下面的的示例不至于只有一条数据,我们先为为数据库添加多条数据:

import sqlite3
conn = sqlite3.connect('example.db')
c = conn.cursor()

c.execute("INSERT INTO stocks VALUES ('2025-01-02','BUY','SOCKTS',200,35.14)")
c.execute("INSERT INTO stocks VALUES ('2024-12-24','BUY','GLOVES',100,33.53)")
c.execute("INSERT INTO stocks VALUES ('2024-12-21','SELL','COAT',40,148.69)")
c.execute("INSERT INTO stocks VALUES ('2024-12-05','SELL','PANTS',80,125.98)")
c.execute("INSERT INTO stocks VALUES ('2024-11-30','BUY','SHOES',130,206.47)")

conn.commit()
conn.close()

打印选择查询返回的行值

import sqlite3
conn = sqlite3.connect('example.db')
c = conn.cursor()
c.execute("SELECT * from stocks where trans='BUY'")
for row in c:
  print(row) # will be a list

获取单个匹配的 fetchone() 方法

print(c.fetchone())

对于多行,使用 fetchall() 方法

a=c.fetchall() #which is similar to list(cursor) method used previously
for row in a:
  print(row)

可使用 sqlite3.Error 内置函数进行错误处理

try:
  #SQL Code
except sqlite3.Error as e:
  print("An error occurred:", e.args[0])
点击这里复制本文地址 以上内容由朽木教程网整理呈现,请务必在转载分享时注明本文地址!如对内容有疑问,请联系我们,谢谢!
qrcode

朽木教程网 © All Rights Reserved.  蜀ICP备2024111239号-8