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

python--sqlite

1. 连接到数据库

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

import sqlite3

# 连接到数据库,如果数据库文件不存在则会创建一个新的
conn = sqlite3.connect('example.db')

# 创建一个游标对象,用于执行SQL语句
cursor = conn.cursor()

2. 创建表

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

# 创建一个名为 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 语句向表中插入数据。

# 插入单条记录
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 语句从表中查询数据。

# 查询所有记录
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 语句更新表中的数据。

# 更新 age 为 26 的用户的 name 为 'Alice Smith'
cursor.execute("UPDATE users SET name = ? WHERE age = ?", ('Alice Smith', 25))

# 提交事务
conn.commit()

6. 删除数据

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

# 删除 age 大于 35 的用户
cursor.execute("DELETE FROM users WHERE age > 35")

# 提交事务
conn.commit()

7. 关闭连接

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

# 关闭游标
cursor.close()

# 关闭数据库连接
conn.close()

完整示例代码

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.kler.cn/a/539094.html

相关文章:

  • 信创领域的PostgreSQL管理员认证
  • 微信小程序案例2——天气微信小程序(学会绑定数据)
  • 激活函数篇 04 —— softmax函数
  • 在 Open WebUI+Ollama 上运行 DeepSeek-R1-70B 实现调用
  • day44 QT核心机制
  • IDEA+DeepSeek让Java开发起飞
  • K8s —基础指南(K8s - Basic Guide)
  • DeepSeek本地安装+集成VScode使用
  • LM Studio本地调用模型的方法
  • rockmq配置出现的问题
  • 表单配置化方案:Formily
  • 攻防世界32 very_easy_sql
  • elasticsearch实战三 elasticsearch与mysql数据实时同步
  • 活动预告 | Power Hour: Copilot 引领商业应用的未来
  • 全面理解-c++11中的移动语义
  • Windows系统下设置Vivado默认版本:让工程文件按需打开
  • emlog最新跨站脚本漏洞(CNVD-2025-01607、CVE-2024-13140)
  • DeepSeek为何能爆火
  • QUIC 与 UDP 关系
  • 知识图谱可视化系统python+neo4j+vue3
  • 1.2 变革里程碑:Transformer 的崛起
  • 使用wpa_supplicant和wpa_cli 扫描wifi热点及配网
  • python--常用内置库
  • 机器学习:朴素贝叶斯分类器
  • BMS应用软件开发 — 11 CAN通讯
  • MongoDB开发规范