设有数据文件student.csv,内容如下图所示,请设计程序将此文件中的数据导入SQLite数据库或MySQL数据库stu.db的表data中,并对其中的数据进行插入、删除、更改、查询操作。
时间: 2024-03-17 21:43:24 浏览: 107
Student、Course、SC表的sql文件
以下是 Python 代码示例,用于将 CSV 文件数据导入 SQLite 数据库或 MySQL 数据库 stu.db 的表 data 中,并对其中的数据进行插入、删除、更改、查询操作。
注意:若要使用 MySQL 数据库,需要安装 PyMySQL 模块,并将代码中的 `sqlite3` 替换为 `pymysql`。
```python
import csv
import sqlite3
# 连接 SQLite 数据库
conn = sqlite3.connect('stu.db')
cursor = conn.cursor()
# 创建表 data
cursor.execute('CREATE TABLE IF NOT EXISTS data (id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT, age INTEGER, grade TEXT)')
# 读取 CSV 文件并将数据插入表 data
with open('student.csv', 'r', encoding='utf-8') as f:
reader = csv.reader(f)
next(reader) # 跳过标题行
for row in reader:
cursor.execute('INSERT INTO data (name, age, grade) VALUES (?, ?, ?)', (row[0], row[1], row[2]))
# 提交更改并关闭数据库连接
conn.commit()
conn.close()
# 查询数据并打印
conn = sqlite3.connect('stu.db')
cursor = conn.cursor()
cursor.execute('SELECT * FROM data')
result = cursor.fetchall()
for row in result:
print(row)
# 更新数据
cursor.execute('UPDATE data SET grade=? WHERE id=?', ('A', 1))
conn.commit()
# 删除数据
cursor.execute('DELETE FROM data WHERE id=?', (2,))
conn.commit()
# 查询更新和删除后的数据并打印
cursor.execute('SELECT * FROM data')
result = cursor.fetchall()
for row in result:
print(row)
# 关闭数据库连接
conn.close()
```
以上代码将 CSV 文件中的数据导入 SQLite 数据库 stu.db 的表 data 中,并进行插入、删除、更改、查询操作。其中,使用 `csv.reader` 读取 CSV 文件,并使用 `sqlite3` 创建和连接 SQLite 数据库。在插入数据时,使用 `cursor.execute` 执行 SQL 语句,将数据插入表 data 中。在查询数据时,使用 `cursor.execute` 执行 SELECT 语句,并使用 `fetchall()` 获取查询结果。在更新和删除数据时,也是使用 `cursor.execute` 执行 UPDATE 和 DELETE 语句。最后,使用 `conn.close()` 关闭数据库连接。
阅读全文