在数据库EDUC中用SQL语句实现如下查询:
1) 查询学生的总人数 - -- 查询学生的总人数
- select count(*) from student
- select count(1) from student
复制代码
2) 查询每个专业的专业编号、专业名称、学生人数、学生的平均年龄 - -- 查询每个专业的专业编号、专业名称、学生人数、学生的平均年龄
- select mj_id '专业编号', mj_name '专业名称', count(*) '学生人数', avg(datediff(year,st_born,getdate())) '学生的平均年龄'
- from major,student
- where student.tc_mj = major.mj_id
- group by mj_id,mj_name
复制代码
3) 查询选修了课程的学生人数 - -- 查询选修了课程的学生人数
- select count(distinct sc_id) from select_course
复制代码
4) 查询选修了课程“100”,且成绩超过该课程平均成绩的学生学号、姓名 - -- 查询选修了课程“100”,且成绩超过该课程平均成绩的学生学号、姓名
- select st_id,st_name
- from select_course,student
- where sc_id in (select sc_id from select_course where sc_num = 100)
- and sc_id = st_id
- and sc_num = 100
- and sc_grade>(select avg(sc_grade) from select_course where sc_num = 100)
复制代码
5) 查询每门课的课程号、选课人数、平均成绩、最高分和最低分。 - -- 查询每门课的课程号、选课人数、平均成绩、最高分和最低分
- select cs_id, count(sc_num) '选课人数',avg(sc_grade) '平均分', max(sc_grade) '最高分', min(sc_grade) '最低分'
- from course,select_course
- where cs_id = sc_num
- group by cs_id
复制代码
6) 查询选修课程超过2 门课的学生学号和姓名。 - -- 查询选修课程超过2 门课的学生学号和姓名
- select distinct st_id,st_name
- from student,select_course sc
- where sc_id = st_id
- and exists (
- select sc_id,count(sc_num)
- from select_course sc1
- where sc.sc_id = sc1.sc_id
- group by sc_id
- having count(*) > 2)
复制代码 |