如何使用Python3操作SQLite嵌入式数据库?

发表时间: 2023-08-13 14:39

#暑期创作大赛#

SQLite在Python上的应用非常广泛,它是一个轻量级的嵌入式数据库引擎,适用于小型项目和临时数据存储。下面是一些SQLite在Python上的常见应用:

  1. 嵌入式数据库:SQLite是嵌入式数据库,可以将其嵌入到Python应用程序中,无需额外的服务器或配置。
  2. 数据存储:您可以使用SQLite来存储和管理应用程序的数据,例如用户信息、配置设置和日志记录。
  3. 桌面应用程序:SQLite可以用于开发桌面应用程序,例如个人管理工具、小型CRM系统和日历应用。
  4. 移动应用程序:SQLite是Android和iOS平台上的默认数据库引擎,您可以在Python中使用SQLite来开发移动应用程序。
  5. 数据分析:SQLite可以在数据分析和数据科学项目中使用,您可以将数据加载到SQLite数据库中,并使用SQL查询和Python进行数据分析和可视化。
  6. Web应用程序:SQLite可以用于开发轻量级的Web应用程序,例如博客、论坛和任务管理工具。
  7. 测试和开发:SQLite非常适合用于测试和开发目的,您可以在测试环境中使用SQLite来模拟和测试数据存储和查询。
  8. 教育和学习:由于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 = 22cursor.execute("INSERT INTO students (name, age) VALUES (?, ?)", (name, age))

使用占位符查询数据:

age = 20cursor.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()