Featured image of post Python Basic 10 Sqlite 基础操作

Python Basic 10 Sqlite 基础操作

本篇文章主要介绍Python的 Sqlite 操作

连接数据库

首先需要建立数据库连接:

1
2
3
4
5
6
7
import sqlite3

# 连接数据库(如果不存在会自动创建)
conn = sqlite3.connect('example.db')  # (ノ◕ヮ◕)ノ*:・゚✧

# 获取游标对象
cursor = conn.cursor()

创建表

使用execute()方法执行SQL语句创建表:

1
2
3
4
5
6
cursor.execute('''CREATE TABLE IF NOT EXISTS users
               (id INTEGER PRIMARY KEY, 
               name TEXT NOT NULL, 
               age INTEGER)''')

conn.commit()  # 别忘记提交哦!(`・ω・´)ゞ

插入数据

插入数据有以下几种方式:

简单插入

1
cursor.execute("INSERT INTO users (name, age) VALUES ('Alice', 25)")

参数化插入(推荐!可以防SQL注入)

1
cursor.execute("INSERT INTO users (name, age) VALUES (?, ?)", ('Bob', 30))

批量插入

1
2
users = [('Charlie', 45), ('David', 29), ('Eve', 33)]
cursor.executemany("INSERT INTO users (name, age) VALUES (?, ?)", users)

记得提交:

1
conn.commit()  # 重要的提交要重复三遍!✧(≖ ◡ ≖✿)

查询数据

查询数据有以下几种方式:

简单查询

1
2
cursor.execute("SELECT * FROM users")
print(cursor.fetchall())  # 获取所有结果 ٩(◕‿◕。)۶

查询单条记录

1
2
cursor.execute("SELECT * FROM users WHERE name=?", ('Alice',))
print(cursor.fetchone())  # 获取一条结果

带条件的查询

1
2
3
cursor.execute("SELECT name, age FROM users WHERE age > ?", (30,))
for row in cursor:
    print(f"{row[0]} 今年 {row[1]} 岁啦~")  # 迭代获取结果

这里是 (30,) 而不是 (30) 是因为当只有一个元素时, (30) 在 python 中表示数字,而后面有一个逗号才表示为元组

更新数据

更新数据使用UPDATE语句:

1
2
cursor.execute("UPDATE users SET age = ? WHERE name = ?", (26, 'Alice'))
conn.commit()  # 提交是必须的!(>ω<)

删除数据

删除数据使用DELETE语句:

1
2
cursor.execute("DELETE FROM users WHERE name = ?", ('Eve',))
conn.commit()  # 最后再说一次,不要忘记提交!(╯°□°)╯︵ ┻━┻

关闭连接

使用完毕后记得关闭连接:

1
2
cursor.close()  # 关闭游标
conn.close()   # 关闭连接

使用with语句 (进阶技巧 ✨)

Python的with语句可以让代码更简洁:

1
2
3
4
5
with sqlite3.connect('example.db') as conn:
    cursor = conn.cursor()
    cursor.execute("SELECT * FROM users")
    print(cursor.fetchall())
# 不需要手动关闭,with会自动处理哦!(ノ◕ヮ◕)ノ*:・゚✧

希望这个小教程能帮到你!SQLite + Python真是开发小项目的好搭档呢~( ̄▽ ̄)~*

Licensed under CC BY-NC-SA 4.0
使用 Hugo 构建
主题 StackJimmy 设计