使用Python操作SQLite

server/2024/10/11 11:22:19/

1、连接数据库

python">import sqlite3
conn = sqlite3.connect('example.db')

其中 example.db 是数据库文件名,如果不存在则会自动创建。connect() 方法还可以接收多个参数,用于设置连接属性,如

python">conn = sqlite3.connect('example.db', isolation_level=None, timeout=5)
# 其中 isolation_level 表示事务隔离级别,timeout 表示超时时间,None 表示不限制。

2、Python 如何创建 SQLite 数据库表

python">import sqlite3
conn = sqlite3.connect('example.db', isolation_level=None, timeout=5)
c = conn.cursor()
c.execute('''CREATE TABLE IF NOT EXISTS stocks
(date text, trans text, symbol text, qty real, price real)''')
# 以上代码创建了一个名为 stocks 的表,包含 date、trans、symbol、qty、price 五个字段,分别表示日期、交易类型、股票代码、数量和价格。其中 IF NOT EXISTS 表示如果表已经存在则不再创建。
conn.commit()
conn.close()

3、操作SQLite数据库

python">conn = sqlite3.connect('example.db', isolation_level=None, timeout=5)
c = conn.cursor()
c.execute("INSERT INTO stocks VALUES ('2006-01-05', 'BUY', 'RHAT', 100, 35.14)")
# 以上代码插入了一条数据,日期为 2006-01-05,交易类型为 BUY,股票代码为 RHAT,数量为 100,价格为 35.14。
conn.commit()
conn.close()
python">conn = sqlite3.connect('example.db', isolation_level=None, timeout=5)
c = conn.cursor()
for row in c.execute("SELECT * FROM stocks WHERE date='2006-01-05'"):print(row)
conn.close()
# 以上代码查询了表 stocks 中股票代码为 RHAT 的数据,并打印出来。
python">conn = sqlite3.connect('example.db', isolation_level=None, timeout=5)
c = conn.cursor()
c.execute("UPDATE stocks SET qty=200 WHERE symbol='RHAT'")
conn.commit()
conn.close()
# 以上代码更新了表 stocks 中股票代码为 RHAT 的数据,将数量改为 200。
python">conn = sqlite3.connect('example.db', isolation_level=None, timeout=5)
c = conn.cursor()
c.execute("DELETE FROM stocks WHERE symbol='RHAT'")
conn.commit()
conn.close()
# 以上代码删除了表 stocks 中股票代码为 RHAT 的数据。
python">conn = sqlite3.connect('example.db', isolation_level=None, timeout=5)
c = conn.cursor()
try:c.execute("BEGIN")c.execute("UPDATE stocks SET qty=200 WHERE symbol='RHAT'")c.execute("COMMIT")
except:c.execute("ROLLBACK")conn.close()
# 以上代码使用 BEGIN 开始一个事务,如果执行过程中出现异常,则使用 ROLLBACK 回滚事务,否则使用 COMMIT 提交事务。

查看数据库中的所有表名及其字段:

python"># 获取sqlite3数据库mydb.db中的表名和表字段名
import sqlite3
sqlite_path = r'E:\cbdb_sqlite\CBDB_20190424.db'
def sqlite_table(sqlite_path):conn = sqlite3.connect(sqlite_path)cur = conn.cursor()# 获取表名,保存在table_name列表cur.execute("select name from sqlite_master where type='table'")rows = cur.fetchall()table_name = [row[0] for row in rows]return table_name# 获取表的列名(字段名),保存在col_names列表,每个表的字段名集为一个元组
def sqlite_col_name(sqlite_path, table_name):conn = sqlite3.connect(sqlite_path)cur = conn.cursor()col_names = []cur.execute('pragma table_info({})'.format(table_name))col_name = cur.fetchall()col_name = [x[1] for x in col_name]col_name = tuple(col_name)col_names.append(col_name)return col_names
sqlite_table(sqlite_path)
sqlite_col_name(sqlite_path=sqlite_path, table_name='tablesfields')

http://www.ppmy.cn/server/9073.html

相关文章

高级软考项目管理之项目进度管理

项目进度管理 规划进度管理:为规划、编制、管理、执行和控制项目进度而制定政策程序和文档的过程。 #mermaid-svg-AxNznqgNM9LuBQ9a {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-AxNznqgNM9LuBQ9a .error-icon{f…

Linux之 USB驱动框架-USB总线(2)

一、linux 下,通过系统查看usb 总线 ls /sys/bus/usb/devices/也包含了很多信息: 其中usb1、usb2代表系统注册了2条usb总线,即有2个USB主机控制器,1和2用于区分不同总线,是USB的总线号。 每插入一个usb设备&#xff…

QML 中引用 js 文件闪退问题

问题描述 在移植 Android 中遇到这样一个引用兼容性问题,起因是这样的,Windows 版本的采用了 QML 分离的方式加载,而 Android 版本又采用了 qrc 的方式。而 Qt 中的机制是采用 QML 分离方式时则使用相对路径的方式引用 js 文件,而…

代码随想录训练营23day-贪心算法

一、贪心算法 贪心算法核心思想是局部最优,以确定全局最优。当然需要使用数学归纳去总结,但是实际应用过程,可以举反例来验证是不是可以使用贪心算法。参考代码随想录 贪心算法一般分为如下四步: 将问题分解为若干个子问题找出…

python Django中分配库存给用户包括定义库存模型、用户模型、以及一个用于分配库存的逻辑

在Django中分配库存给用户通常涉及几个步骤,包括定义库存模型、用户模型、以及一个用于分配库存的逻辑。以下是一个基本的示例来说明如何执行这个过程: 1. 定义模型 首先,你需要定义两个模型:一个是User模型(可以使用…

Lustre架构介绍的阅读笔记-SMB协议

本文是在阅读Introduction to Lustre* Architecture的Lustre SMB Gateway System Architecture时的笔记。 Lustre只支持Linux系统,但借助Samba可以支持SMB协议,进而对Windows主机提供文件访问能力。 参考资料 Welcome to the CTDB web pages CTDB is …

供应链投毒预警 | 开源供应链投毒202403月报发布啦!(含投毒案例分析)

悬镜供应链安全情报中心通过持续监测全网主流开源软件仓库,结合程序动静态分析方式对潜在风险的开源组件包进行动态跟踪和捕获,能够第一时间捕获开源组件仓库中的恶意投毒攻击。在2024年3月份,悬镜供应链安全情报中心在NPM官方仓库&#xff0…

Ubuntu不能启动,如何解决??

🏆本文收录于「Bug调优」专栏,主要记录项目实战过程中的Bug之前因后果及提供真实有效的解决方案,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&…