设有数据文件student.csv,内容如下图所示,请设计程序将此文件中的数据导入SQLite数据库或MySQL数据库stu.db的表data中,并对其中的数据进行插入、删除、更改、查询操作。
时间: 2024-03-09 12:51:33 浏览: 20
好的,我可以帮您解决这个问题。我会提供Python代码来导入数据、插入、删除、更改和查询数据。由于SQLite和MySQL的语法有些不同,所以我会提供两种不同的代码,您可以根据您选择的数据库来使用相应的代码。
首先,您需要安装相应的数据库驱动程序。如果您选择使用SQLite,可以使用以下命令安装Python的SQLite驱动程序:
```
pip install sqlite3
```
如果您选择使用MySQL,请使用以下命令安装Python的MySQL驱动程序:
```
pip install mysql-connector-python
```
接下来,我们来看看如何将CSV文件中的数据导入数据库中。假设您的CSV文件名为student.csv,包含以下数据:
```
id,name,age,gender,score
1,John,18,Male,90
2,Mary,19,Female,85
3,David,20,Male,95
4,Susan,18,Female,92
5,Steven,19,Male,87
```
我们可以使用以下代码将它们导入SQLite数据库中:
```python
import sqlite3
import csv
# 连接到SQLite数据库
conn = sqlite3.connect('stu.db')
c = conn.cursor()
# 创建数据表
c.execute('''CREATE TABLE data
(id INTEGER PRIMARY KEY,
name TEXT,
age INTEGER,
gender TEXT,
score INTEGER)''')
# 读取CSV文件并插入数据到数据表中
with open('student.csv') as csvfile:
reader = csv.DictReader(csvfile)
for row in reader:
c.execute("INSERT INTO data (id, name, age, gender, score) VALUES (?, ?, ?, ?, ?)",
(row['id'], row['name'], row['age'], row['gender'], row['score']))
# 提交更改并关闭连接
conn.commit()
conn.close()
```
如果您选择使用MySQL数据库,可以使用以下代码:
```python
import mysql.connector
import csv
# 连接到MySQL数据库
conn = mysql.connector.connect(user='your_user_name', password='your_password',
host='your_host_name',
database='your_database_name')
c = conn.cursor()
# 创建数据表
c.execute('''CREATE TABLE data
(id INTEGER PRIMARY KEY,
name TEXT,
age INTEGER,
gender TEXT,
score INTEGER)''')
# 读取CSV文件并插入数据到数据表中
with open('student.csv') as csvfile:
reader = csv.DictReader(csvfile)
for row in reader:
c.execute("INSERT INTO data (id, name, age, gender, score) VALUES (%s, %s, %s, %s, %s)",
(row['id'], row['name'], row['age'], row['gender'], row['score']))
# 提交更改并关闭连接
conn.commit()
conn.close()
```
接下来,我们来看看如何对数据进行插入、删除、更改和查询操作。以下代码中,我们假设已经连接到数据库并创建了名为data的数据表。
插入数据:
```python
# 插入一条数据
c.execute("INSERT INTO data (id, name, age, gender, score) VALUES (?, ?, ?, ?, ?)",
(6, 'Tom', 21, 'Male', 88))
# 批量插入多条数据
data = [(7, 'Lucy', 20, 'Female', 93), (8, 'Bob', 19, 'Male', 86)]
c.executemany("INSERT INTO data (id, name, age, gender, score) VALUES (?, ?, ?, ?, ?)", data)
```
删除数据:
```python
# 删除指定id的数据
c.execute("DELETE FROM data WHERE id=?", (1,))
# 删除所有成绩低于90分的数据
c.execute("DELETE FROM data WHERE score<90")
```
更改数据:
```python
# 更改指定id的数据
c.execute("UPDATE data SET name=?, age=?, gender=?, score=? WHERE id=?",
('John Smith', 19, 'Male', 92, 2))
```
查询数据:
```python
# 查询所有数据
c.execute("SELECT * FROM data")
rows = c.fetchall()
for row in rows:
print(row)
# 查询成绩大于等于90分的数据
c.execute("SELECT * FROM data WHERE score>=90")
rows = c.fetchall()
for row in rows:
print(row)
```
以上就是将CSV文件中的数据导入SQLite数据库或MySQL数据库,并对其中的数据进行插入、删除、更改、查询操作的示例代码。您可以根据自己的需要进行修改和扩展。