数据库实现学生选课系统及代码实现
时间: 2023-09-01 07:06:55 浏览: 113
实现一个学生选课系统需要设计数据库中的多张表,包括学生表、课程表、选课表等。下面是一个简单的数据库设计及代码实现示例:
1. 学生表
学生表中包含学生的基本信息,如学号、姓名、性别、年龄等。
```sql
CREATE TABLE student (
id INT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(50) NOT NULL,
gender VARCHAR(10) NOT NULL,
age INT NOT NULL,
-- 其他字段
);
```
2. 课程表
课程表中包含课程的基本信息,如课程编号、课程名称、学分等。
```sql
CREATE TABLE course (
id INT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(50) NOT NULL,
credit INT NOT NULL,
-- 其他字段
);
```
3. 选课表
选课表中包含学生选课的信息,如学生编号、课程编号、选课时间等。
```sql
CREATE TABLE selection (
id INT PRIMARY KEY AUTO_INCREMENT,
student_id INT NOT NULL,
course_id INT NOT NULL,
selected_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
FOREIGN KEY (student_id) REFERENCES student(id),
FOREIGN KEY (course_id) REFERENCES course(id)
);
```
上述代码中,使用了外键约束来确保选课表中的学生编号和课程编号在对应的表中存在。
对于代码实现,可以使用 Python 的 MySQLdb 或者 PyMySQL 等库来连接数据库,并执行 SQL 语句。
```python
import pymysql
# 连接数据库
conn = pymysql.connect(host='localhost', user='root', password='password', database='testdb', charset='utf8mb4')
# 创建游标
cursor = conn.cursor()
# 插入学生数据
sql = "INSERT INTO student (name, gender, age) VALUES (%s, %s, %s)"
values = ('张三', '男', 18)
cursor.execute(sql, values)
conn.commit()
# 查询学生数据
sql = "SELECT * FROM student WHERE name = %s"
name = '张三'
cursor.execute(sql, name)
result = cursor.fetchone()
print(result)
# 关闭游标和数据库连接
cursor.close()
conn.close()
```
以上示例代码中,使用了 pymysql 库来连接数据库,并执行了插入和查询的操作。需要注意的是,在使用完游标和数据库连接后需要关闭它们,以释放资源。
阅读全文