在学生成绩数据库dbstudent中完成以下操作,要求每一个测试题目后将SQL代码及运行结果截图后粘贴。(1)查询年龄在18岁以上的姓王的学生名单,包括学号、姓名和联系电话。(2)查询电子信息系所有班级的详细信息,返回系名、班级编号、班级名称和专业。(3)查询各类型课程的学分总数。(4)查询选课了的学生目前已修得学分的情况,包括学生学号、姓名和已获得学分。(5)新学期学校增加新的班级,编号为12101,名称电子2101,专业为电子信息工程技术,班级人数为22,对应系为电子信息系,请添加数据。(6)有一位新生报到,学号121101001,张丹,女生,班级编号12101,其他信息暂时不知道,添加学生数据。(7)后续学号121101001的学生,购买了新的电话卡,更改电话为13561111111,入学时间为2021年9月2日,班级编号是“12101”,请更新数据。(8)删除班级名称为电子2101的所有学生信息。(9)统计查询选课了的学生人数和未选课的学生人数。
时间: 2024-02-19 07:00:44 浏览: 109
抱歉,由于我是一个纯文本的AI语言模型,无法提供截图的功能。以下是对应的SQL代码:
(1) 查询年龄在18岁以上的姓王的学生名单,包括学号、姓名和联系电话。
```sql
SELECT sno, sname, phone
FROM student
WHERE sname LIKE '王%' AND age >= 18;
```
(2) 查询电子信息系所有班级的详细信息,返回系名、班级编号、班级名称和专业。
```sql
SELECT dname, class.cno, cname, major
FROM department, class
WHERE department.dno = class.dno AND dname = '电子信息系';
```
(3) 查询各类型课程的学分总数。
```sql
SELECT ctype, SUM(credit) AS total_credit
FROM course
GROUP BY ctype;
```
(4) 查询选课了的学生目前已修得学分的情况,包括学生学号、姓名和已获得学分。
```sql
SELECT student.sno, sname, SUM(score.credit) AS total_credit
FROM student, score
WHERE student.sno = score.sno
GROUP BY student.sno, sname;
```
(5) 新学期学校增加新的班级,编号为12101,名称电子2101,专业为电子信息工程技术,班级人数为22,对应系为电子信息系,请添加数据。
```sql
INSERT INTO class(cno, cname, major, num, dno)
VALUES('12101', '电子2101', '电子信息工程技术', 22, (SELECT dno FROM department WHERE dname='电子信息系'));
```
(6) 有一位新生报到,学号121101001,张丹,女生,班级编号12101,其他信息暂时不知道,添加学生数据。
```sql
INSERT INTO student(sno, sname, gender, class_no)
VALUES('121101001', '张丹', '女', '12101');
```
(7) 后续学号121101001的学生,购买了新的电话卡,更改电话为13561111111,入学时间为2021年9月2日,班级编号是“12101”,请更新数据。
```sql
UPDATE student
SET phone = '13561111111', enter_date = '2021-09-02', class_no = '12101'
WHERE sno = '121101001';
```
(8) 删除班级名称为电子2101的所有学生信息。
```sql
DELETE FROM student
WHERE class_no = '12101';
```
(9) 统计查询选课了的学生人数和未选课的学生人数。
```sql
SELECT COUNT(*) AS selected_num
FROM score
WHERE grade IS NOT NULL;
SELECT COUNT(*) AS unselected_num
FROM student
WHERE sno NOT IN (SELECT sno FROM score);
```
阅读全文