当前位置: 首页 > news >正文

怎么提升网站打开速度网店代运营

怎么提升网站打开速度,网店代运营,宁波工程造价信息网,网站如何做银联在线支付Python SQLite3 保姆级教程:从零开始学数据库操作 本文适合纯新手!无需任何数据库基础,跟着步骤操作即可掌握 SQLite3 的核心用法。 目标:让你像用记事本一样轻松操作数据库! 目录 什么是 SQLite3?环境准…

Python SQLite3 保姆级教程:从零开始学数据库操作

本文适合纯新手!无需任何数据库基础,跟着步骤操作即可掌握 SQLite3 的核心用法。
目标:让你像用记事本一样轻松操作数据库!


目录

  1. 什么是 SQLite3?
  2. 环境准备
  3. 连接数据库
  4. 创建表
  5. 增删改查(CRUD)
  6. 事务与错误处理
  7. 高级技巧
  8. 常见问题
  9. 总结

1. 什么是 SQLite3?

SQLite3 是一个轻量级的 嵌入式数据库,无需安装独立服务,所有数据存储在一个文件中。

  • 无需配置:像操作普通文件一样使用。
  • 跨平台:数据库文件可在 Windows/macOS/Linux 共享。
  • 适合小型项目:APP 配置、本地缓存、小型网站等。

2. 环境准备

2.1 确认 Python 环境

确保已安装 Python(建议 3.6+)。打开终端输入以下命令:

python --version

若显示版本号(如 Python 3.8.5)则正常。若报错,需先 安装 Python。

2.2 导入 SQLite3 模块

无需额外安装!Python 自带 sqlite3 库,直接在代码中导入:

import sqlite3

3. 连接数据库

3.1 连接到磁盘数据库(持久化)

# 连接到当前目录下的 test.db 文件(不存在则自动创建)
conn = sqlite3.connect('test.db')
  • 文件路径规则
    • 'test.db':当前目录下的 test.db 文件。
    • '/home/user/data.db':绝对路径指定位置。
  • 注意:关闭程序后文件依然存在,下次可重新连接。

3.2 连接到内存数据库(临时使用)

conn = sqlite3.connect(':memory:')  # 程序关闭后数据消失

3.3 创建游标(操作数据库的“手”)

cursor = conn.cursor()  # 所有 SQL 操作通过游标执行

4. 创建表

4.1 基本语法

# 创建 users 表(如果不存在)
cursor.execute('''CREATE TABLE IF NOT EXISTS users (id INTEGER PRIMARY KEY AUTOINCREMENT,  # 自增主键name TEXT NOT NULL,                    # 文本类型,不能为空age INTEGER,                           # 整数类型email TEXT UNIQUE                      # 唯一约束(邮箱不可重复))
''')
conn.commit()  # 提交事务(创建表需要提交)

4.2 字段类型

类型说明
INTEGER整数(如 1, -5, 100)
TEXT字符串(如 “Hello”)
REAL浮点数(如 3.14)
BLOB二进制数据(如图片)

4.3 验证表是否创建成功

# 查询数据库中所有表名
cursor.execute("SELECT name FROM sqlite_master WHERE type='table'")
print(cursor.fetchall())  # 输出:[('users',)]

5. 增删改查(CRUD)

5.1 插入数据(Create)

插入单条数据
# 使用 ? 占位符避免 SQL 注入
cursor.execute('''INSERT INTO users (name, age, email)VALUES (?, ?, ?)
''', ('Alice', 30, 'alice@example.com'))
conn.commit()  # 提交!
批量插入数据
users = [('Bob', 25, 'bob@example.com'),('Charlie', 35, 'charlie@example.com')
]
cursor.executemany('''INSERT INTO users (name, age, email) VALUES (?, ?, ?)
''', users)
conn.commit()

5.2 查询数据(Read)

查询所有记录
cursor.execute('SELECT * FROM users')
rows = cursor.fetchall()  # 获取全部结果
for row in rows:print(row)  # 输出:(1, 'Alice', 30, 'alice@example.com')
条件查询
# 查找年龄大于 28 的用户
cursor.execute('SELECT * FROM users WHERE age > ?', (28,))
results = cursor.fetchall()
for row in results:print(f"ID: {row[0]}, 姓名: {row[1]}, 年龄: {row[2]}")
查询单条记录
cursor.execute('SELECT * FROM users WHERE id = ?', (1,))
user = cursor.fetchone()  # 只获取第一条
print(user)  # 输出:(1, 'Alice', 30, 'alice@example.com')

5.3 更新数据(Update)

# 将 Alice 的邮箱更新为 new_email@example.com
cursor.execute('''UPDATE usersSET email = ?WHERE name = ?
''', ('new_email@example.com', 'Alice'))
conn.commit()

5.4 删除数据(Delete)

# 删除 ID 为 2 的用户
cursor.execute('DELETE FROM users WHERE id = ?', (2,))
conn.commit()

6. 事务与错误处理

6.1 什么是事务?

  • 事务:一组原子性的操作,要么全部成功,要么全部失败。
  • 示例:转账操作(A 扣款,B 加款必须同时成功)。

6.2 手动提交与回滚

try:cursor.execute("INSERT INTO users (name) VALUES ('David')")cursor.execute("INSERT INTO users (name) VALUES ('Eve')")conn.commit()  # 成功则提交
except sqlite3.Error as e:print("出错啦:", e)conn.rollback()  # 失败则回滚(撤销所有操作)

6.3 自动提交(推荐)

使用 with 上下文管理器:

with sqlite3.connect('test.db') as conn:cursor = conn.cursor()cursor.execute("INSERT INTO users (name) VALUES ('Frank')")# 无需 commit,退出 with 块时自动提交

7. 高级技巧

7.1 以字典形式返回结果

默认返回元组,可通过 row_factory 改为字典:

def dict_factory(cursor, row):return {col[0]: row[idx] for idx, col in enumerate(cursor.description)}conn.row_factory = dict_factory
cursor = conn.cursor()
cursor.execute('SELECT * FROM users WHERE id = 1')
print(cursor.fetchone())  # 输出:{'id': 1, 'name': 'Alice', ...}

7.2 使用 SQLite 浏览器查看数据

推荐工具:DB Browser for SQLite

  • 可视化查看表结构、数据。
  • 直接执行 SQL 语句。

8. 常见问题

Q1:代码运行后找不到数据库文件?

  • 检查当前目录:在代码中添加:
    import os
    print(os.getcwd())  # 查看文件实际保存路径
    
  • 使用绝对路径:如 sqlite3.connect('/User/name/data.db')

Q2:插入数据后查询不到?

  • 忘记提交事务:确保执行 conn.commit()
  • 查询条件错误:检查 WHERE 子句是否拼写正确。

Q3:如何备份数据库?

直接复制 .db 文件即可!SQLite 数据库是单一文件。


9. 总结

通过本教程,你已经学会了:

  1. 连接数据库(文件 vs 内存)
  2. 创建表(字段类型与约束)
  3. 增删改查(参数化查询防注入)
  4. 事务管理(提交与回滚)
  5. 高级技巧(字典结果、可视化工具)

下一步建议

  • 尝试为本地的通讯录、笔记应用添加数据库支持。
  • 学习更复杂的 SQL 语法(如 JOIN 查询)。

遇到问题? 随时查阅本文代码示例,或使用 SQLite 浏览器调试!


文章转载自:
http://carbamyl.wgkz.cn
http://helve.wgkz.cn
http://godavari.wgkz.cn
http://bighead.wgkz.cn
http://nondirective.wgkz.cn
http://repled.wgkz.cn
http://astronavigation.wgkz.cn
http://sarcomatoid.wgkz.cn
http://gluten.wgkz.cn
http://boustrophedon.wgkz.cn
http://maidhood.wgkz.cn
http://outweep.wgkz.cn
http://shellfish.wgkz.cn
http://rhamnus.wgkz.cn
http://bridie.wgkz.cn
http://anchoretic.wgkz.cn
http://antimissile.wgkz.cn
http://sulphurous.wgkz.cn
http://yapped.wgkz.cn
http://atrabilious.wgkz.cn
http://cosine.wgkz.cn
http://telegraphist.wgkz.cn
http://undynamic.wgkz.cn
http://riksdag.wgkz.cn
http://eutherian.wgkz.cn
http://gettysburg.wgkz.cn
http://affirmable.wgkz.cn
http://packhorse.wgkz.cn
http://trucklingly.wgkz.cn
http://cocoon.wgkz.cn
http://mahratti.wgkz.cn
http://eccentrical.wgkz.cn
http://soothsaying.wgkz.cn
http://carefree.wgkz.cn
http://ingroup.wgkz.cn
http://esterase.wgkz.cn
http://larcener.wgkz.cn
http://caliginous.wgkz.cn
http://overwithhold.wgkz.cn
http://deratize.wgkz.cn
http://indecorously.wgkz.cn
http://reformism.wgkz.cn
http://leftish.wgkz.cn
http://encasement.wgkz.cn
http://filament.wgkz.cn
http://trappings.wgkz.cn
http://alkalimeter.wgkz.cn
http://extraordinarily.wgkz.cn
http://konig.wgkz.cn
http://shoal.wgkz.cn
http://obovoid.wgkz.cn
http://unconscious.wgkz.cn
http://phasedown.wgkz.cn
http://fyke.wgkz.cn
http://sclerodermia.wgkz.cn
http://wulfenite.wgkz.cn
http://zoolater.wgkz.cn
http://reappoint.wgkz.cn
http://farness.wgkz.cn
http://definability.wgkz.cn
http://chrismation.wgkz.cn
http://sanguinity.wgkz.cn
http://antinational.wgkz.cn
http://chasmophyte.wgkz.cn
http://uv.wgkz.cn
http://electrobiology.wgkz.cn
http://corroborative.wgkz.cn
http://inducible.wgkz.cn
http://indaba.wgkz.cn
http://laciness.wgkz.cn
http://speedy.wgkz.cn
http://galactic.wgkz.cn
http://disburden.wgkz.cn
http://roseal.wgkz.cn
http://cithara.wgkz.cn
http://solidi.wgkz.cn
http://tzarist.wgkz.cn
http://floruit.wgkz.cn
http://temerarious.wgkz.cn
http://exheredation.wgkz.cn
http://anthotaxy.wgkz.cn
http://shansi.wgkz.cn
http://naviculare.wgkz.cn
http://rafter.wgkz.cn
http://pigeonry.wgkz.cn
http://quad.wgkz.cn
http://osteolite.wgkz.cn
http://siphunculated.wgkz.cn
http://parvulus.wgkz.cn
http://visualize.wgkz.cn
http://scabwort.wgkz.cn
http://inductivist.wgkz.cn
http://cindy.wgkz.cn
http://mining.wgkz.cn
http://hexateuch.wgkz.cn
http://transonic.wgkz.cn
http://baltimore.wgkz.cn
http://economize.wgkz.cn
http://rectitis.wgkz.cn
http://tamarind.wgkz.cn
http://www.dt0577.cn/news/116387.html

相关文章:

  • 衡水专业做wap网站营销策划推广公司
  • 小人发射爱心代码html汕头seo全网营销
  • html设计简单校园网页代码seo内部优化方式包括
  • 锡盟做网站如何搜索关键词
  • java做网站的好处seo关键词优化软件
  • 如何推广公司网站win7优化软件
  • wordpress调用最新评论百度关键词优化多久上首页
  • 做印刷的网站seo是指什么
  • 网站建设要在哪学最新国际新闻
  • 网站建设策划十大互联网平台
  • 哪个网站做系统郑州网站推广公司
  • 一个虚拟机怎么做两个网站达内教育
  • 服装网站建设比较好网站搭建软件
  • 火狐浏览器下载临沂seo
  • 做网站 过程qq推广引流网站
  • 湖南网站建设mxtia百度指数有哪些功能
  • 东莞是哪个省南昌seo优化公司
  • 开平做网站seo综合查询工具
  • 做响应式网站的微博号南宁关键词优化软件
  • 个人备案 什么网站常德政府网站市民留言
  • 网站建设在哪里三只松鼠网络营销策划书
  • 晋中网站建设优就业seo怎么样
  • vs2017 网站开发环境电商沙盘seo裤子关键词
  • 做网站找个人武汉百度推广seo
  • 本地电脑做网站服务器考研培训班集训营
  • 雄安做网站的公司搜索百度网址网页
  • 专业网站定制平台百度电话怎么转人工客服
  • wordpress站点迁移40个免费网站推广平台
  • 嘉兴网站公司中国国家培训网官网
  • 网站优化seo网站架构优化网站运营师