张教授: 李同学,我们学校需要一个数据管理平台来整合学生信息、课程安排和科研成果。你有什么想法?
李同学: 教授,我们可以使用Python结合SQLite数据库来实现这个功能。首先,我们需要设计数据库结构。
张教授: 好的,那具体怎么设计呢?
李同学: 我们可以创建三个主要表:`students`, `courses`, 和`research`。每个表都有相应的字段,比如学生的ID、姓名、专业等。
张教授: 那么,Python代码应该怎么写呢?
李同学: 这是创建数据库的基本代码:
import sqlite3
# 创建连接
conn = sqlite3.connect('university.db')
cursor = conn.cursor()
# 创建students表
cursor.execute('''
CREATE TABLE students (
id INTEGER PRIMARY KEY,
name TEXT NOT NULL,
major TEXT NOT NULL
)
''')
# 创建courses表
cursor.execute('''
CREATE TABLE courses (
id INTEGER PRIMARY KEY,
course_name TEXT NOT NULL,
department TEXT NOT NULL
)
''')
# 创建research表
cursor.execute('''
CREATE TABLE research (
id INTEGER PRIMARY KEY,
title TEXT NOT NULL,
author_id INTEGER,
FOREIGN KEY(author_id) REFERENCES students(id)
)
''')
# 提交更改并关闭连接
conn.commit()
conn.close()
张教授: 很好!接下来我们怎么添加数据呢?
李同学: 我们可以编写插入数据的函数。例如:
def add_student(name, major):
conn = sqlite3.connect('university.db')
cursor = conn.cursor()
cursor.execute("INSERT INTO students (name, major) VALUES (?, ?)", (name, major))
conn.commit()
conn.close()
add_student('张三', '计算机科学')

张教授: 非常实用!那么查询数据呢?
李同学: 查询也很简单,比如查询所有学生的信息:
def list_students():
conn = sqlite3.connect('university.db')
cursor = conn.cursor()
cursor.execute("SELECT * FROM students")
rows = cursor.fetchall()
for row in rows:
print(row)
conn.close()
list_students()
张教授: 太棒了!这样我们就有了一个基础的数据管理平台。
]]>
