SQLite在Python上的应用非常广泛,它是一个轻量级的嵌入式数据库引擎,适用于小型项目和临时数据存储。下面是一些SQLite在Python上的常见应用:
- 嵌入式数据库:SQLite是嵌入式数据库,可以将其嵌入到Python应用程序中,无需额外的服务器或配置。
- 数据存储:您可以使用SQLite来存储和管理应用程序的数据,例如用户信息、配置设置和日志记录。
- 桌面应用程序:SQLite可以用于开发桌面应用程序,例如个人管理工具、小型CRM系统和日历应用。
- 移动应用程序:SQLite是Android和iOS平台上的默认数据库引擎,您可以在Python中使用SQLite来开发移动应用程序。
- 数据分析:SQLite可以在数据分析和数据科学项目中使用,您可以将数据加载到SQLite数据库中,并使用SQL查询和Python进行数据分析和可视化。
- Web应用程序:SQLite可以用于开发轻量级的Web应用程序,例如博客、论坛和任务管理工具。
- 测试和开发:SQLite非常适合用于测试和开发目的,您可以在测试环境中使用SQLite来模拟和测试数据存储和查询。
- 教育和学习:由于SQLite易于使用和理解,它也是教育和学习数据库概念的良好选择。
SQLite在Python中的应用非常灵活,可以根据项目需求进行定制和扩展。通过Python的sqlite3模块,您可以方便地连接、操作和管理SQLite数据库。
当使用Python 3操作SQLite时,以下是25个常见的代码示例,每个示例都有详细的注释:
导入SQLite模块:
import sqlite3
连接到SQLite数据库:
conn = sqlite3.connect('database.db')
创建一个游标对象:
cursor = conn.cursor()
创建一个表:
cursor.execute('''CREATE TABLE students (id INTEGER PRIMARY KEY, name TEXT, age INTEGER)''')
插入数据到表中:
cursor.execute("INSERT INTO students (name, age) VALUES ('John', 20)")
提交更改:
conn.commit()
查询表中的所有数据:
cursor.execute("SELECT * FROM students")
rows = cursor.fetchall()
for row in rows:
print(row)
查询特定条件的数据:
cursor.execute("SELECT * FROM students WHERE age > 18")
更新表中的数据:
cursor.execute("UPDATE students SET age = 21 WHERE name = 'John'")
删除表中的数据:
cursor.execute("DELETE FROM students WHERE name = 'John'")
查询表中的列名:
cursor.execute("PRAGMA table_info(students)")
columns = cursor.fetchall()
for column in columns:
print(column[1])
使用占位符插入数据:
name = 'Alice'
age = 22
cursor.execute("INSERT INTO students (name, age) VALUES (?, ?)", (name, age))
使用占位符查询数据:
age = 20
cursor.execute("SELECT * FROM students WHERE age > ?", (age,))
使用事务提交更改:
with conn:
conn.execute("UPDATE students SET age = 23 WHERE name = 'Alice'")
回滚事务:
conn.rollback()
打开并执行SQL文件:
with open('script.sql', 'r') as file:
sql_script = file.read()
cursor.executescript(sql_script)
获取最后插入的行的ID:
last_row_id = cursor.lastrowid
使用连接的上下文管理器自动关闭连接:
with sqlite3.connect('database.db') as conn:
cursor = conn.cursor()
# 执行数据库操作
执行带有参数的多个SQL语句:
sql_query = "INSERT INTO students (name) VALUES (?);"
data = [('Bob',), ('Carol',), ('Dave',)]
cursor.executemany(sql_query, data)
执行事务来批量插入数据:
data = [('Bob', 21), ('Carol', 22), ('Dave', 23)]
with conn:
conn.executemany("INSERT INTO students (name, age) VALUES (?, ?)", data)
使用ORDER BY子句按照特定列排序查询结果:
cursor.execute("SELECT * FROM students ORDER BY age DESC")Python
使用LIMIT子句限制查询结果的数量:
cursor.execute("SELECT * FROM students LIMIT 10")
使用OFFSET子句设置查询结果的偏移量:
cursor.execute("SELECT * FROM students LIMIT 10 OFFSET 20")
使用JOIN语句联接多个表:
cursor.execute("SELECT students.name, grades.grade FROM students JOIN grades ON students.id = grades.student_id")
关闭游标和连接:
cursor.close()conn.close()