嘿,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!有了这个系统,校友会的工作会更加高效。