Python玩转SQLite3:从入门到精通,轻松搞定数据库操作!

B站影视 欧美电影 2025-01-09 06:54 1

摘要:在数据存储和管理的世界里,SQLite3以其轻量、易用和高效的特点,成为了无数开发者的首选。无论是移动应用、嵌入式设备,还是小型Web应用,SQLite3都能轻松应对。而Python作为一门简洁强大的编程语言,与SQLite3的结合更是天作之合!今天,我们将带

喜欢的条友记得关注、点赞、转发、收藏,你们的支持就是我最大的动力源泉。

在数据存储和管理的世界里,SQLite3以其轻量、易用和高效的特点,成为了无数开发者的首选。无论是移动应用、嵌入式设备,还是小型Web应用,SQLite3都能轻松应对。而Python作为一门简洁强大的编程语言,与SQLite3的结合更是天作之合!今天,我们将带你从零开始,深入探索Python中SQLite3的使用,从入门到精通,让你轻松搞定数据库操作!

Python内置了sqlite3模块,无需额外安装,直接导入即可:

import SQLite3

使用sqlite3.connect方法创建或连接数据库。如果数据库文件不存在,会自动创建。

# 连接数据库(如果不存在则创建)conn = sqlite3.connect('./sqlite3数据库/example.db')

运行后在当前目录生成example.db数据库文件。

通过执行SQL语句创建表。使用cursor.execute方法执行SQL命令。

# 创建游标对象cursor = conn.cursor# 创建表cursor.execute('''CREATE TABLE IF NOT EXISTS users (id INTEGER PRIMARY KEY AUTOINCREMENT,name TEXT NOT NULL,age INTEGER)''')# 提交更改conn.COMMIT

使用INSERT INTO语句插入数据。

# 插入单条数据cursor.execute("INSERT INTO users (name, age) VALUES (?, ?)", ('Alice', 25))# 插入多条数据users = [('Bob', 30), ('Charlie', 35), ('David', 40)]cursor.executemany("INSERT INTO users (name, age) VALUES (?, ?)", users)# 提交更改conn.commit

使用SELECT语句查询数据,并通过cursor.fetchall或cursor.fetchone获取结果。

import sqlite3# 连接数据库(前期已经创建,并建立表users和插入数据)conn = sqlite3.connect('./sqlite3数据库/example.db')# 创建游标对象cursor = conn.cursor# 查询所有数据cursor.execute("SELECT * FROM users")rows = cursor.fetchallfor row in rows:print(row)# 查询单条数据cursor.execute("SELECT * FROM users WHERE name = ?", ('Alice',))row = cursor.fetchoneprint(row)

使用UPDATE语句更新数据。

import sqlite3# 连接数据库(前期已经创建,并建立表users和插入数据)conn = sqlite3.connect('./sqlite3数据库/example.db')# 创建游标对象cursor = conn.cursor# 更新数据cursor.execute("UPDATE users SET age = ? WHERE name = ?", (26, 'Alice'))# 提交更改conn.commit# 查询所有数据cursor.execute("SELECT * FROM users")rows = cursor.fetchallfor row in rows:print(row)

使用DELETE语句删除数据。

import sqlite3# 连接数据库(前期已经创建,并建立表users和插入数据)conn = sqlite3.connect('./sqlite3数据库/example.db')# 创建游标对象cursor = conn.cursor# 删除数据cursor.execute("DELETE FROM users WHERE name = ?", ('David',))# 提交更改conn.commit# 查询所有数据cursor.execute("SELECT * FROM users")rows = cursor.fetchallfor row in rows:print(row)

操作完成后,记得关闭数据库连接。

# 关闭游标和连接cursor.closeconn.close

SQLite3支持事务操作,确保数据的一致性。使用BEGIN、COMMIT和ROLLBACK管理事务。

try:conn.execute("BEGIN")cursor.execute("INSERT INTO users (name, age) VALUES (?, ?)", ('Eve', 28))cursor.execute("UPDATE users SET age = ? WHERE name = ?", (27, 'Alice'))conn.commitexcept:conn.rollback

通过with语句自动管理连接和游标,避免资源泄露。

with sqlite3.connect('example.db') as conn:cursor = conn.cursorcursor.execute("SELECT * FROM users")print(cursor.fetchall)

使用SQLite3的备份API或直接复制数据库文件进行备份。

import shutilshutil.copy2('example.db', 'example_backup.db')使用索引:为常用查询字段创建索引,提升查询速度。cursor.execute("CREATE INDEX idx_name ON users (name)")批量操作:使用executemany批量插入或更新数据,减少I/O开销。cursor.execute('''CREATE TABLE IF NOT EXISTS tasks (id INTEGER PRIMARY KEY AUTOINCREMENT,description TEXT NOT NULL,status TEXT DEFAULT 'pending')''')def add_task(description):cursor.execute("INSERT INTO tasks (description) VALUES (?)", (description,))conn.commitdef view_tasks:cursor.execute("SELECT * FROM tasks")return cursor.fetchalldef complete_task(task_id):cursor.execute("UPDATE tasks SET status = 'completed' WHERE id = ?", (task_id,))conn.commitdef delete_task(task_id):cursor.execute("DELETE FROM tasks WHERE id = ?", (task_id,))conn.commitimport sqlite3# 连接数据库(前期已经创建,并建立表users和插入数据)conn = sqlite3.connect('./sqlite3数据库/example.db')# 创建游标对象cursor = conn.cursorcursor.execute('''CREATE TABLE IF NOT EXISTS tasks (id INTEGER PRIMARY KEY AUTOINCREMENT,description TEXT NOT NULL,status TEXT DEFAULT 'pending')''')def add_task(description):cursor.execute("INSERT INTO tasks (description) VALUES (?)", (description,))conn.commitdef view_tasks:cursor.execute("SELECT * FROM tasks")return cursor.fetchalldef complete_task(task_id):cursor.execute("UPDATE tasks SET status = 'completed' WHERE id = ?", (task_id,))conn.commitdef delete_task(task_id):cursor.execute("DELETE FROM tasks WHERE id = ?", (task_id,))conn.commitadd_task("学习 Python")add_task("学习 SQLite3")print(view_tasks)complete_task(1)print(view_tasks)delete_task(2)print(view_tasks)

通过本文的学习,你已经掌握了Python中SQLite3的从入门到精通的全部技巧!无论是简单的数据存储,还是复杂的任务管理,SQLite3都能轻松应对。赶快动手试试吧,让你的数据管理更加高效!

来源:心静佛现

相关推荐