SQLite3是一款轻量级的嵌入式数据库,由于具有易于使用、稳定性好、占用空间小等特点,广泛应用于移动设备和嵌入式系统中。本篇文章将介绍如何使用Python操作SQLite3数据库进行数据存储和管理。
一、安装SQLite3
在开始操作SQLite3之前,你需要先在你的电脑上安装这个数据库。在Python中,使用SQLite3可以通过Python自带的sqlite3模块来实现。首先需要检查一下,自己的电脑上是否安装了SQLite3。如果没有,可以通过以下步骤来安装。
1.访问SQLite3官网,从其中下载适合本机的SQLite3源代码
2.解压源代码到本地,打开命令行进入解压后的目录
3.执行以下命令进行编译并安装:make && make install
二、创建数据库
在Python中,可以使用以下命令来连接SQLite3数据库:
```python
import sqlite3
conn = sqlite3.connect('test.db')
```
这个命令将会在本地创建一个名为“test.db”的数据库,如果这个数据库已经存在,则会直接连接到该数据库。其中,“conn”是连接对象,我们之后可以通过它进行一些对数据库的操作。
三、创建数据表
对于大多数应用程序来说,需要在数据库中创建一个新的表。表中可以包含多个字段,同时表中的每个记录都可以包含多个不同的字段值。下面是一个创建一个名为“user”的表的实例。
```python
import sqlite3
conn = sqlite3.connect('test.db')
print("Opened database successfully")
conn.execute('''CREATE TABLE USER
(ID INT PRIMARY KEY NOT NULL,
NAME TEXT NOT NULL,
AGE INT NOT NULL,
ADDRESS CHAR(50),
SALARY REAL);''')
print("Table created successfully")
conn.close()
```
上面代码中,我们定义了一个名为“USER”的表,该表包含五个字段:ID、姓名、年龄、地址和工资。其中,“ID”字段是主键,不能为空。通过“CREATE TABLE”语句可以在本地的SQLite3数据库中创建出我们需要的数据表。
四、插入数据
一旦你创建了所需的数据表,你可以开始向其中插入数据。在Python中,可以通过“INSERT INTO”语句往表格中插入数据。示例如下:
```python
import sqlite3
conn = sqlite3.connect('test.db')
print("Opened database successfully")
conn.execute("INSERT INTO USER (ID,NAME,AGE,ADDRESS,SALARY) \
VALUES (1, 'Paul', 32, 'California', 20000.00 )")
conn.execute("INSERT INTO USER (ID,NAME,AGE,ADDRESS,SALARY) \
VALUES (2, 'Allen', 25, 'Texas', 15000.00 )")
conn.execute("INSERT INTO USER (ID,NAME,AGE,ADDRESS,SALARY) \
VALUES (3, 'Teddy', 23, 'Norway', 20000.00 )")
conn.execute("INSERT INTO USER (ID,NAME,AGE,ADDRESS,SALARY) \
VALUES (4, 'Mark', 25, 'Rich-Mond', 65000.00 )")
conn.commit()
print("Records created successfully")
conn.close()
```
在上面代码中,我们使用“INSERT INTO”语句向“USER”表格中新增了四条记录。注意,在执行完数据插入后,我们需要使用“commit()”函数来提交我们的所有修改,以使它们在数据库中生效。
五、查询数据
在SQLite3中,可以使用以下语句来查询数据:
```python
SELECT * FROM USER;
```
上面的语句会返回“USER”表格中的所有数据,包含ID、姓名、年龄、地址和工资。4条记录查出来,数据如下所示:
| ID | NAME | AGE | ADDRESS | SALARY |
|---|---|---|---|---|
| 1 | Paul | 32 | California | 20000.0 |
| 2 | Allen | 25 | Texas | 15000.0 |
| 3 | Teddy | 23 | Norway | 20000.0 |
| 4 | Mark | 25 | Rich-Mond | 65000.0 |
你也可以使用特定的条件来查询数据。例如,查询所有年龄大于等于25岁的用户的记录:
```python
SELECT * FROM USER WHERE AGE >= 25;
```
在Python中,我们可以使用“SELECT”语句来查询数据。示例代码如下:
```python
import sqlite3
conn = sqlite3.connect('test.db')
print("Opened database successfully")
cursor = conn.execute("SELECT id, name, address, salary from USER")
for row in cursor:
print("ID = ", row[0])
print("NAME = ", row[1])
print("ADDRESS = ", row[2])
print("SALARY = ", row[3], "\n")
print("Operation done successfully")
conn.close()
```
在上面代码中,我们使用“SELECT”语句查询了“USER”表格中的记录。使用“execute”方法来执行这个语句,并使用Python中的for循环来遍历返回的数据。然后使用字符串格式化达到输出的效果。
六、更新数据
SQLite3数据库允许修改已存在的数据。在Python中可以使用以下语句来进行数据更新:
```python
UPDATE USER SET SALARY = 25000.00 WHERE ID = 1;
```
在上面的代码中,我们将“ID”为1的记录中的“SALARY”字段更新为25000.00。
在Python中,实现数据更新的示例如下:
```python
import sqlite3
conn = sqlite3.connect('test.db')
print("Opened database successfully")
conn.execute("UPDATE USER set SALARY = 25000.00 where ID = 1")
conn.commit()
print("Total number of rows updated :", conn.total_changes)
cursor = conn.execute("SELECT id, name, address, salary from USER")
for row in cursor:
print("ID = ", row[0])
print("NAME = ", row[1])
print("ADDRESS = ", row[2])
print("SALARY = ", row[3], "\n")
print("Operation done successfully")
conn.close()
```
在上面的代码中,我们使用以下语句将ID为1的记录中的SALARY字段的值改为了25000.00:
```python
conn.execute("UPDATE USER set SALARY = 25000.00 where ID = 1")
```
其中,“total_changes”函数返回更新的行数。
七、删除数据
SQLite3也允许删除一个表格中的记录。在Python中,可以使用以下语句来执行操作:
```python
DELETE from USER where ID=2;
```
在上面的代码中,删除了“ID”为2的记录中的数据。
在Python中,实现数据删除的示例如下:
```python
import sqlite3
conn = sqlite3.connect('test.db')
print("Opened database successfully")
conn.execute("DELETE from USER where ID=2;")
conn.commit()
print("Total number of rows deleted :", conn.total_changes)
cursor = conn.execute("SELECT id, name, address, salary from USER")
for row in cursor:
print("ID = ", row[0])
print("NAME = ", row[1])
print("ADDRESS = ", row[2])
print("SALARY = ", row[3], "\n")
print("Operation done successfully")
conn.close()
```
八、总结
通过本篇文章的学习,你将会了解到如何使用Python对SQLite3数据库进行数据的存储和管理。我们首先讲解了SQLite3数据库的安装和新建,然后介绍了创建表、插入数据、查询数据、更新数据和删除数据等操作的方法。无论你是在学习数据管理,还是在开发处理海量数据的应用程序,SQLite3都是一个出色的选择。