MySQL(8)删除班级名称为电子2101的所有学生信息。(9)统计查询选课了的学生人数和未选课的学生人数。
时间: 2024-02-19 07:58:00 浏览: 64
(8) 删除班级名称为电子2101的所有学生信息的 MySQL 语句如下:
```
DELETE FROM student WHERE class_name='电子2101';
```
其中,`student` 为学生信息表,`class_name` 为班级名称字段。
(9) 统计查询选课了的学生人数和未选课的学生人数的 MySQL 语句如下:
选课了的学生人数:
```
SELECT COUNT(*) FROM student WHERE course_name IS NOT NULL;
```
未选课的学生人数:
```
SELECT COUNT(*) FROM student WHERE course_name IS NULL;
```
其中,`course_name` 为选课名称字段。
相关问题
① 以MySQL为数据库,围绕班级学生个人信息、课程信息、学生选课信息、学生课程结果信息,建立实体-关系数据库,求各表之间有主键、外键 ② 利用Python + MySQL 从程序端连写数据库,编写代号,现实学生个人信息录入、学生选课信息录入、学生成绩录入、班级学生成绩查询、班级学生成绩平均分+排名查询,查询结果利用Python保存为,Excel表格文件;
好的,我来为您解答。
① 建立实体-关系数据库
首先,我们需要定义表格的字段和类型,然后建立表格并设置主键和外键。
以下是一个简单的示例:
1. 学生表格(Student)
| Field | Type | Key |
| --- | --- | --- |
| id | int(11) | PRIMARY KEY |
| name | varchar(50) | |
| gender | varchar(10) | |
| birthday | date | |
2. 课程表格(Course)
| Field | Type | Key |
| --- | --- | --- |
| id | int(11) | PRIMARY KEY |
| name | varchar(50) | |
| teacher | varchar(50) | |
3. 学生选课表格(StudentCourse)
| Field | Type | Key |
| --- | --- | --- |
| id | int(11) | PRIMARY KEY |
| student_id | int(11) | FOREIGN KEY (Student.id) |
| course_id | int(11) | FOREIGN KEY (Course.id) |
4. 学生成绩表格(Score)
| Field | Type | Key |
| --- | --- | --- |
| id | int(11) | PRIMARY KEY |
| student_id | int(11) | FOREIGN KEY (Student.id) |
| course_id | int(11) | FOREIGN KEY (Course.id) |
| score | float | |
② 利用Python + MySQL 连接数据库,编写代号
接下来,我们需要使用Python来连接MySQL数据库,并编写相应的代码实现录入、查询、保存为Excel表格文件等功能。
这里提供一个简单的示例代码:
```python
import pymysql
import xlwt
def connect_db():
# 连接数据库
db = pymysql.connect(host='localhost', user='root', password='password', database='test', charset='utf8')
return db
def insert_student(db, name, gender, birthday):
# 插入学生信息
cursor = db.cursor()
sql = "INSERT INTO Student (name, gender, birthday) VALUES (%s, %s, %s)"
cursor.execute(sql, (name, gender, birthday))
db.commit()
def insert_course(db, name, teacher):
# 插入课程信息
cursor = db.cursor()
sql = "INSERT INTO Course (name, teacher) VALUES (%s, %s)"
cursor.execute(sql, (name, teacher))
db.commit()
def insert_student_course(db, student_id, course_id):
# 插入学生选课信息
cursor = db.cursor()
sql = "INSERT INTO StudentCourse (student_id, course_id) VALUES (%s, %s)"
cursor.execute(sql, (student_id, course_id))
db.commit()
def insert_score(db, student_id, course_id, score):
# 插入学生成绩信息
cursor = db.cursor()
sql = "INSERT INTO Score (student_id, course_id, score) VALUES (%s, %s, %s)"
cursor.execute(sql, (student_id, course_id, score))
db.commit()
def query_class_score_avg(db):
# 查询班级学生成绩平均分和排名
cursor = db.cursor()
sql = "SELECT Student.name, AVG(Score.score) AS avg_score, RANK() OVER (ORDER BY AVG(Score.score) DESC) AS rank FROM Student JOIN Score ON Student.id = Score.student_id GROUP BY Student.id ORDER BY avg_score DESC"
cursor.execute(sql)
data = cursor.fetchall()
return data
def save_to_excel(data):
# 保存为Excel表格文件
workbook = xlwt.Workbook(encoding='utf-8')
worksheet = workbook.add_sheet('Sheet1')
row = 0
for i in range(len(data)):
col = 0
for j in range(len(data[i])):
worksheet.write(row, col, data[i][j])
col += 1
row += 1
workbook.save('result.xls')
if __name__ == '__main__':
db = connect_db()
insert_student(db, '张三', '男', '2000-01-01')
insert_student(db, '李四', '女', '2000-01-02')
insert_course(db, '语文', '王老师')
insert_course(db, '数学', '李老师')
insert_student_course(db, 1, 1)
insert_student_course(db, 1, 2)
insert_student_course(db, 2, 1)
insert_score(db, 1, 1, 90)
insert_score(db, 1, 2, 80)
insert_score(db, 2, 1, 70)
data = query_class_score_avg(db)
save_to_excel(data)
db.close()
```
以上代码实现了录入学生信息、课程信息、学生选课信息、学生成绩信息,查询班级学生成绩平均分和排名,并将查询结果保存为Excel表格文件的功能。
需要注意的是,这里使用了pymysql库来连接MySQL数据库,以及xlwt库来保存为Excel表格文件。同时,还需要根据实际情况修改数据库连接信息、表格名称、字段名称等参数。
希望能对您有所帮助!
基于PHP和MYSQL做一个班级学生成绩管理系统,里面需要包含以下几点:1、学生表(学号、姓名、性别、年龄、身份证号、专业编号、班级编号、联系方式、家庭住址、备注) 2、课程表(课程编号、课程名称、主编、出版社、学分) 3、选课表(学号、课程编号、分数)4、学生表基本信息管理界面(增加、删除、修改) 5、课程表基本信息管理界面(增加、删除、修改) 6、学生选课界面 7、成绩查询界面,能够通过网页实现班级指定课程所有同学的成绩,能够实现指定学生所有课程的成绩,能够实现指定课程、指定学生的成绩,要求查询信息完整 8、补考查询界面,能够通过网页实现指定班级、指定课程的补考名单,能够实现指定学生补考名单
好的,这是一个典型的学生成绩管理系统,基于PHP和MYSQL可以实现这个系统。下面是一些实现思路:
1. 创建学生表、课程表、选课表的数据表,分别存储学生信息、课程信息和选课信息。
2. 实现学生表和课程表的基本信息管理界面,包括增加、删除、修改学生和课程的基本信息。
3. 实现学生选课界面,让学生可以在网页上选择课程。
4. 实现成绩查询界面,通过网页实现班级指定课程所有同学的成绩,指定学生所有课程的成绩,指定课程、指定学生的成绩。
5. 实现补考查询界面,通过网页实现指定班级、指定课程的补考名单,指定学生补考名单。
以上是实现思路,具体实现需要根据实际情况来。如果你有具体的问题或需要更多帮助,请告诉我。
阅读全文