### 1. 安装 Python 和 SQLite
确保你已经安装了 Python 和 SQLite。大多数现代操作系统默认已经安装了 Python。SQLite 是一个轻量级的数据库引擎,通常不需要单独安装。
### 2. 创建项目目录
创建一个新的项目目录,并在其中创建 Python 文件。
```bash
mkdir student_management_system
cd student_management_system
touch main.py
```
### 3. 初始化数据库连接
在 `main.py` 文件中,导入 `sqlite3` 模块,并创建一个数据库连接。
```python
import sqlite3
# 连接到 SQLite 数据库(如果数据库不存在则创建)
def setup_database():
conn = sqlite3.connect('students.db')
cursor = conn.cursor()
return conn, cursor
```
### 4. 创建数据库表
定义函数来创建数据库表。
```python
def create_tables():
conn, cursor = setup_database()
# 创建 Students 表
cursor.execute('''
CREATE TABLE IF NOT EXISTS Students (
id INTEGER PRIMARY KEY,
name TEXT NOT NULL,
age INTEGER NOT NULL,
email TEXT NOT NULL UNIQUE
)
''')
# 创建 Courses 表
cursor.execute('''
CREATE TABLE IF NOT EXISTS Courses (
course_id INTEGER PRIMARY KEY,
course_name TEXT NOT NULL,
instructor TEXT NOT NULL
)
''')
# 创建 Enrollments 表
cursor.execute('''
CREATE TABLE IF NOT EXISTS Enrollments (
id INTEGER PRIMARY KEY,
student_id INTEGER,
course_id INTEGER,
FOREIGN KEY (student_id) REFERENCES Students(id),
FOREIGN KEY (course_id) REFERENCES Courses(course_id)
)
''')
# 提交更改并关闭连接
conn.commit()
conn.close()
```
### 5. 插入数据
创建函数来插入学生、课程和注册记录。
```python
def insert_student(name, age, email):
conn, cursor = setup_database()
cursor.execute('''
INSERT INTO Students (name, age, email) VALUES (?, ?, ?)
''', (name, age, email))
conn.commit()
conn.close()
def insert_course(course_name, instructor):
conn, cursor = setup_database()
cursor.execute('''
INSERT INTO Courses (course_name, instructor) VALUES (?, ?)
''', (course_name, instructor))
conn.commit()
conn.close()
def enroll_student(student_id, course_id):
conn, cursor = setup_database()
cursor.execute('''
INSERT INTO Enrollments (student_id, course_id) VALUES (?, ?)
''', (student_id, course_id))
conn.commit()
conn.close()
```
### 6. 查询数据
创建函数来查询学生、课程和注册记录。
```python
def get_all_students():
conn, cursor = setup_database()
cursor.execute('SELECT * FROM Students')
students = cursor.fetchall()
conn.close()
return students
def get_all_courses():
conn, cursor = setup_database()
cursor.execute('SELECT * FROM Courses')
courses = cursor.fetchall()
conn.close()
return courses
def get_enrollments():
conn, cursor = setup_database()
cursor.execute('SELECT * FROM Enrollments')
enrollments = cursor.fetchall()
conn.close()
return enrollments
```
### 7. 主程序逻辑
编写主程序逻辑,创建表并插入示例数据。
```python
if __name__ == "__main__":
# 创建表
create_tables()
# 插入示例数据
insert_student('Alice', 20, 'alice@example.com')
insert_student('Bob', 22, 'bob@example.com')
insert_course('Mathematics', 'Dr. Smith')
insert_course('History', 'Prof. Johnson')
enroll_student(1, 1) # Alice enrolls in Mathematics
enroll_student(2, 2) # Bob enrolls in History
# 查询和打印数据
print("Students:")
for student in get_all_students():
print(student)
print("Courses:")
for course in get_all_courses():
print(course)
print("Enrollments:")
for enrollment in get_enrollments():
print(enrollment)
```
### 8. 运行程序
确保所有代码都已保存,然后在终端中运行程序。
```bash
python main.py
```
### 9. 检查输出
你应该会看到类似以下的输出:
```
Students:
(1, 'Alice', 20, 'alice@example.com')
(2, 'Bob', 22, 'bob@example.com')
Courses:
(1, 'Mathematics', 'Dr. Smith')
(2, 'History', 'Prof. Johnson')
Enrollments:
(1, 1, 1)
(2, 2, 2)
```
### 10. 进一步优化和扩展
你可以进一步优化和扩展这个简易的数据库系统。例如:
- **错误处理**: 添加错误处理机制,以捕获和处理数据库操作中的异常。
- **用户界面**: 创建一个简单的命令行界面或图形用户界面(GUI),使用户能够交互式地管理学生和课程数据。
- **数据验证**: 在插入数据之前,添加数据验证逻辑,确保数据的完整性和一致性。
- **性能优化**: 使用索引和其他优化技术来提高数据库查询的性能。
通过这些详细的步骤,你应该能够创建一个功能齐全的简易数据库系统。随着经验的积累,你可以进一步扩展和优化这个系统。

1126

被折叠的 条评论
为什么被折叠?



