嘿,Bob,最近我们学校校友会需要一套管理系统,你能不能帮我设计一下?
当然可以!我们可以用Python结合SQLite来搭建一个简单的校友会管理系统。首先得有一个数据库来存储信息。
那么,我们需要哪些表呢?比如学生信息、活动记录之类的?
没错!我们可以设计两个主要的表:一个是`students`,另一个是`events`。`students`表包括字段如id, name, major等;`events`则有id, title, description, date等。
听起来不错。那我们怎么创建这些表呢?

使用Python的sqlite3模块很简单。看这段代码:
import sqlite3
conn = sqlite3.connect('alumni.db')
cursor = conn.cursor()
# 创建students表
cursor.execute('''
CREATE TABLE students (
id INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT NOT NULL,
major TEXT,
email TEXT UNIQUE
)
''')
# 创建events表
cursor.execute('''
CREATE TABLE events (
id INTEGER PRIMARY KEY AUTOINCREMENT,
title TEXT NOT NULL,
description TEXT,
date DATE
)
''')
conn.commit()
conn.close()
太棒了!接下来是如何添加一些数据进去?
我们可以用类似下面的方式插入数据:
conn = sqlite3.connect('alumni.db')
cursor = conn.cursor()
# 插入学生数据
cursor.execute('INSERT INTO students (name, major, email) VALUES (?, ?, ?)',
('Alice Smith', 'Computer Science', 'alice.smith@example.com'))
cursor.execute('INSERT INTO students (name, major, email) VALUES (?, ?, ?)',
('Bob Johnson', 'Mathematics', 'bob.johnson@example.com'))
# 插入活动数据
cursor.execute('INSERT INTO events (title, description, date) VALUES (?, ?, ?)',
('Alumni Networking Night', 'Join us for an evening of networking!', '2023-10-15'))
cursor.execute('INSERT INTO events (title, description, date) VALUES (?, ?, ?)',
('Tech Talk Series', 'Monthly talks by alumni in tech.', '2023-11-10'))
conn.commit()
conn.close()
这样就完成了基本的数据录入。如果我们要查询某个学生的活动记录怎么办?
查询也很简单。比如这样写:
conn = sqlite3.connect('alumni.db')
cursor = conn.cursor()
cursor.execute('SELECT e.title FROM events e JOIN students s ON e.id = s.id WHERE s.name = ?', ('Alice Smith',))
results = cursor.fetchall()
print("Alice's Events:")
for event in results:
print(event[0])
conn.close()
非常感谢,Bob!有了这个系统,校友会的工作会更加高效。
