Python sqlite3安装及使用

1. 什么是sqlite3?

SQLite是一款轻型的、嵌入式的数据库,它是开源的,并且可以在多个平台上运行。SQLite通常被用作开发移动设备和小型应用程序的数据库。它具有以下特点:

  • 轻量级:SQLite不需要独立的服务器进程或配置。
  • 嵌入式:SQLite数据库引擎被嵌入到应用程序中,应用程序可以直接访问数据库文件。
  • 零配置:与大多数数据库不同,SQLite不需要任何配置或安装过程。
  • 事务支持:SQLite支持事务,可以确保数据库中的数据完整性。

Python内置了sqlite3模块,通过它可以方便地使用SQLite数据库。

2. 安装sqlite3模块

Python自带的sqlite3模块不需要额外安装。要开始使用它,只需要导入sqlite3模块即可:

import sqlite3

3. 连接到数据库

在使用sqlite3之前,我们需要先连接到一个已存在的数据库,或者创建一个新的数据库。连接数据库的代码如下:

import sqlite3

conn = sqlite3.connect('mydatabase.db')

这里,我们使用sqlite3.connect()函数来连接到一个名为mydatabase.db的数据库。如果该数据库不存在,则会自动创建一个新的数据库。通过连接对象conn,我们可以执行后续的数据库操作。

4. 创建表

在SQLite中,数据是以表的形式存储的,我们需要先创建表结构,然后才能向表中插入数据。下面是一个创建名为employees的表的示例:

import sqlite3

conn = sqlite3.connect('mydatabase.db')

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

# 创建表
cursor.execute('''CREATE TABLE employees
                  (id INT PRIMARY KEY NOT NULL,
                  name TEXT NOT NULL,
                  age INT NOT NULL,
                  department TEXT NOT NULL)''')

# 提交事务
conn.commit()

# 关闭连接
conn.close()

在上面的代码中,我们创建了一个名为employees的表,表中包含idnameagedepartment四个字段。id字段为主键,nameagedepartment字段都是非空字段。

5. 插入数据

在表创建完成后,我们可以向表中插入数据。下面是一个向employees表中插入一条记录的示例:

import sqlite3

conn = sqlite3.connect('mydatabase.db')
cursor = conn.cursor()

# 插入数据
cursor.execute("INSERT INTO employees (id, name, age, department) VALUES (1, 'John Doe', 30, 'IT')")

# 提交事务
conn.commit()

# 关闭连接
conn.close()

6. 查询数据

要从表中检索数据,我们可以使用SELECT语句。下面是一个查询employees表中所有记录的示例:

import sqlite3

conn = sqlite3.connect('mydatabase.db')
cursor = conn.cursor()

# 查询数据
cursor.execute("SELECT * FROM employees")

# 获取所有查询结果
results = cursor.fetchall()

# 输出查询结果
for row in results:
    print(row)

# 关闭连接
conn.close()

上面的代码中,SELECT * FROM employees语句用于查询employees表中的所有数据。cursor.fetchall()方法用于获取所有的查询结果,然后我们可以通过遍历结果集来输出每一条记录。

7. 更新数据

要更新表中的记录,我们可以使用UPDATE语句。下面是一个更新employees表中某个记录的示例:

import sqlite3

conn = sqlite3.connect('mydatabase.db')
cursor = conn.cursor()

# 更新数据
cursor.execute("UPDATE employees SET age = 35 WHERE id = 1")

# 提交事务
conn.commit()

# 关闭连接
conn.close()

上面的代码中,UPDATE employees SET age = 35 WHERE id = 1语句用于将id为1的记录的age字段更新为35。

8. 删除数据

要从表中删除记录,我们可以使用DELETE语句。下面是一个删除employees表中某个记录的示例:

import sqlite3

conn = sqlite3.connect('mydatabase.db')