SQLite 数据库

SQLite 数据库

SQLite 数据库

1. 简介

SQLite 是一个轻量级的关系型数据库管理系统,它以库的形式嵌入到其他应用程序中使用。与传统的数据库管理系统不同,SQLite 完全不需要独立的服务器进程,而是直接跟随应用程序进行通信,并将数据库存储在一个文件中。

SQLite 的特点如下:

  • 轻量级:SQLite 的核心库文件非常小巧,只有几百 KB,无需额外的配置和管理,非常适合嵌入到移动设备或资源受限的系统中使用。
  • 无服务器:SQLite 运行在应用程序的进程空间中,无需独立的服务器进程,简化了数据库的部署和维护过程。
  • 跨平台:SQLite 可以在多个平台上运行,包括 Windows、Mac OS、Linux 等。
  • 支持标准的 SQL 语句:SQLite 支持标准的 SQL 语句,包括 SELECT、INSERT、UPDATE、DELETE 等,方便开发者进行数据操作。

2. SQLite 基本操作

2.1 数据库连接

在使用 SQLite 数据库之前,需要首先通过连接数据库来获取数据库对象。SQLite 数据库连接的方法如下:

import sqlite3

# 连接数据库
conn = sqlite3.connect('example.db')

上述代码中,通过 sqlite3 模块的 connect 方法连接到名为 example.db 的数据库。如果该数据库文件不存在,则会自动创建一个新的数据库文件。

2.2 创建表

在 SQLite 中,可以使用 SQL 语句来操作数据库。下面是一个示例,创建一个名为 students 的表:

import sqlite3

# 连接数据库
conn = sqlite3.connect('example.db')

# 创建表
conn.execute('''
    CREATE TABLE students (
        id INT PRIMARY KEY,
        name TEXT,
        age INT
    )''')

# 提交并关闭连接
conn.commit()
conn.close()

上述代码中,使用 execute 方法执行 SQL 语句,创建了一个名为 students 的表,表中包含 idnameage 三个字段。

2.3 插入数据

SQLite 中插入数据的操作使用 INSERT 语句。以下是一个示例,向 students 表中插入一条数据:

import sqlite3

# 连接数据库
conn = sqlite3.connect('example.db')

# 插入数据
conn.execute("INSERT INTO students (id, name, age) VALUES (1, 'Alice', 20)")

# 提交并关闭连接
conn.commit()
conn.close()

上述代码中,使用 execute 方法执行 INSERT 语句,将一条数据插入到 students 表中。

2.4 查询数据

针对 SQLite 数据库的查询操作,可以使用 SELECT 语句。以下是一个示例,查询 students 表中的所有数据:

import sqlite3

# 连接数据库
conn = sqlite3.connect('example.db')

# 查询数据
cursor = conn.execute("SELECT * FROM students")
for row in cursor:
    print(f"id: {row[0]}, name: {row[1]}, age: {row[2]}")

# 关闭连接
conn.close()

上述代码中,使用 execute 方法执行 SELECT 语句,通过游标遍历查询结果并打印输出。

2.5 更新数据

SQLite 数据库的更新操作使用 UPDATE 语句。以下是一个示例,更新 students 表中的一条数据:

import sqlite3

# 连接数据库
conn = sqlite3.connect('example.db')

# 更新数据
conn.execute("UPDATE students SET age = 21 WHERE id = 1")

# 提交并关闭连接
conn.commit()
conn.close()

上述代码中,使用 execute 方法执行 UPDATE 语句,将 students 表中 id 为 1 的记录的 age 字段更新为 21。

2.6 删除数据

SQLite 数据库的删除操作使用 DELETE 语句。以下是一个示例,删除 students 表中的一条数据:

import sqlite3

# 连接数据库
conn = sqlite3.connect('example.db')

# 删除数据
conn.execute("DELETE FROM students WHERE id = 1")

# 提交并关闭连接
conn.commit()
conn.close()

上述代码中,使用 execute 方法执行 DELETE 语句,删除 students 表中 id 为 1 的记录。

3. SQLite 高级操作

3.1 数据库事务

SQLite 支持事务的操作,可以通过 commit 方法提交事务或 rollback 方法回滚事务。以下是一个示例,使用事务插入多条数据:

import sqlite3

# 连接数据库
conn = sqlite3.connect('example.db')

# 开启事务
conn.execute("BEGIN TRANSACTION")

# 插入数据
conn.execute("INSERT INTO students (id, name, age) VALUES (2, 'Bob', 22)")
conn.execute("INSERT INTO students (id, name, age) VALUES (3, 'Charlie', 23)")

# 提交事务
conn.commit()

# 查询数据
cursor = conn.execute("SELECT * FROM students")
for row in cursor:
    print(f"id: {row[0]}, name: {row[1]}, age: {row[2]}")

# 关闭连接
conn.close()

上述代码中,使用 BEGIN TRANSACTION 开启一个事务,然后插入多条数据,最后通过 commit 方法提交事务。

3.2 使用参数化查询

为了避免 SQL 注入等安全问题,并且提高查询的性能,可以使用参数化查询。以下是一个示例,使用参数化查询查询指定名称的学生信息:

import sqlite3

# 连接数据库
conn = sqlite3.connect('example.db')

# 查询数据
name = 'Bob'
cursor = conn.execute("SELECT * FROM students WHERE name = ?", (name,))
for row in cursor:
    print(f"id: {row[0]}, name: {row[1]}, age: {row[2]}")

# 关闭连接
conn.close()

上述代码中,使用 ? 占位符表示参数,然后在执行 execute 方法时,通过第二个参数传入参数的值。

4. 结语

本文介绍了 SQLite 数据库的基本操作,包括数据库连接、创建表、插入数据、查询数据、更新数据和删除数据。同时,还介绍了 SQLite 的高级操作,包括数据库事务和参数化查询。SQLite 是一个简单易用的轻量级数据库,非常适合嵌入式系统和移动应用程序的开发。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程