python--sqlite

server/2025/2/12 7:37:38/

1. 连接到数据库

使用 sqlite3.connect() 方法可以创建一个到SQLite数据库的连接。如果指定的数据库文件不存在,它会自动创建一个新的数据库文件。

python">import sqlite3# 连接到数据库,如果数据库文件不存在则会创建一个新的
conn = sqlite3.connect('example.db')# 创建一个游标对象,用于执行SQL语句
cursor = conn.cursor()

2. 创建表

使用游标对象的 execute() 方法执行SQL语句来创建表。

python"># 创建一个名为 users 的表
cursor.execute('''
CREATE TABLE IF NOT EXISTS users (id INTEGER PRIMARY KEY AUTOINCREMENT,name TEXT NOT NULL,age INTEGER
)
''')# 提交事务
conn.commit()

在上述代码中,CREATE TABLE IF NOT EXISTS 语句用于创建一个名为 users 的表,如果该表不存在的话。表包含三个列:id(主键,自动递增)、name(文本类型,不能为空)和 age(整数类型)。

3. 插入数据

可以使用 INSERT 语句向表中插入数据。

python"># 插入单条记录
cursor.execute("INSERT INTO users (name, age) VALUES (?, ?)", ('Alice', 25))# 插入多条记录
users = [('Bob', 30), ('Charlie', 35)]
cursor.executemany("INSERT INTO users (name, age) VALUES (?, ?)", users)# 提交事务
conn.commit()

这里使用了参数化查询(? 占位符),可以避免SQL注入攻击。executemany() 方法用于一次性插入多条记录。

4. 查询数据

使用 SELECT 语句从表中查询数据。

python"># 查询所有记录
cursor.execute("SELECT * FROM users")
rows = cursor.fetchall()
for row in rows:print(row)# 查询特定条件的记录
cursor.execute("SELECT * FROM users WHERE age > 30")
rows = cursor.fetchall()
for row in rows:print(row)

fetchall() 方法用于获取查询结果的所有行。

5. 更新数据

使用 UPDATE 语句更新表中的数据。

python"># 更新 age 为 26 的用户的 name 为 'Alice Smith'
cursor.execute("UPDATE users SET name = ? WHERE age = ?", ('Alice Smith', 25))# 提交事务
conn.commit()

6. 删除数据

使用 DELETE 语句从表中删除数据。

python"># 删除 age 大于 35 的用户
cursor.execute("DELETE FROM users WHERE age > 35")# 提交事务
conn.commit()

7. 关闭连接

操作完成后,需要关闭游标和数据库连接。

python"># 关闭游标
cursor.close()# 关闭数据库连接
conn.close()

完整示例代码

python">import sqlite3# 连接到数据库
conn = sqlite3.connect('example.db')
cursor = conn.cursor()# 创建表
cursor.execute('''
CREATE TABLE IF NOT EXISTS users (id INTEGER PRIMARY KEY AUTOINCREMENT,name TEXT NOT NULL,age INTEGER
)
''')
conn.commit()# 插入数据
cursor.execute("INSERT INTO users (name, age) VALUES (?, ?)", ('Alice', 25))
users = [('Bob', 30), ('Charlie', 35)]
cursor.executemany("INSERT INTO users (name, age) VALUES (?, ?)", users)
conn.commit()# 查询数据
cursor.execute("SELECT * FROM users")
rows = cursor.fetchall()
for row in rows:print(row)# 更新数据
cursor.execute("UPDATE users SET name = ? WHERE age = ?", ('Alice Smith', 25))
conn.commit()# 删除数据
cursor.execute("DELETE FROM users WHERE age > 35")
conn.commit()# 关闭游标和连接
cursor.close()
conn.close()

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

相关文章

动态词表设计:从小说创作到超大规模语言模型的启示

在自然语言处理(NLP)领域,随着深度学习技术的发展,构建能够理解和生成人类语言的大规模语言模型成为了研究热点。然而,随着词汇量的增长,传统的固定大小词表方法面临着计算资源和效率的巨大挑战。本文将探讨一种创新的动态词表设计思路,并通过类比小说创作过程来论证这种…

25考研材料复试面试常见核心问题真题汇总,材料考研复试面试有哪些经典问题?材料考研复试过程最看重什么内容?

材料复试面试难!千万不要死磕!复试是有技巧的! 是不是刷了三天三夜经验贴,还是不知道材料复试会问啥?去年我复试时被导师连环追问"非晶合金的原子扩散机制",差点当场宕机...今天学姐掏心窝总结&…

自动化xpath定位元素(附几款浏览器xpath插件)

在 Web 自动化测试、数据采集、前端调试中,XPath 仍然是不可或缺的技能。虽然 CSS 选择器越来越强大,但面对复杂 DOM 结构时,XPath 仍然更具灵活性。因此,掌握 XPath,不仅能提高自动化测试的稳定性,还能在爬…

嵌入式Linux系统下的 QT 截图程序

嵌入式Linux系统下的 QT 截图程序 前言环境配置QT程序源码效果 前言 程序可以截取整个屏幕 环境配置 Linux终端运行QT程序,环境变量配置 export QT_EGLFS_IMX6_NO_FB_MULTI_BUFFER1# 嵌入式FrameBuffer模式 export QT_QPA_PLATFORMlinuxfb:fb/dev/fb0 # 或使用…

无人机图像拼接数据在GIS中的处理与分析、可视化与制图;无人机航拍;无人机生态环境监测、图像处理与GIS数据分析

ArcGIS作为地理信息系统领域最主流的GIS平台软件,空间数据处理和分析功能强大,十分适用于地表空间监测数据的读写、管理、分析与可视化。本教程融合无人机生态环境监测技术和ArcGIS数据分析技术,通过具体案例分析与软件操作实践,详…

【自学笔记】JavaScript基础知识点总览-持续更新

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 JavaScript重点知识点总览一、JavaScript基础1. 变量与数据类型2. 运算符3. 分支结构4. 循环结构 二、函数与作用域1. 函数2. 作用域3. 作用域链 三、面向对象编程1…

Visual Studio Code 的 AI 编程助手

文章目录 1. 写在最前面2. AI 编程助手2.1 Top 10 AI Extensions for Visual Studio Code2.1.1 脑图概括2.1.2 详细介绍 2.2 10 Best AI Code Tools: Quick and Easy Guide (2024)2.2.1 脑图概括2.2.2 详细介绍 3. Cody 插件试用4. 碎碎念5. 参考资料 1. 写在最前面 最近在研究…

实战演练!DeepSeek+Chatbox 10分钟构建AI客户端应用与智能助手实例

在人工智能技术日新月异的今天,将AI融入我们的日常生活和工作已成为一种趋势。DeepSeekChatbox作为一款强大的工具组合,能够帮助我们在短时间内构建出功能丰富的AI客户端应用和智能助手。本文将通过一个实战演练,向你展示如何在短短10分钟内&…