数据库练习题
在教务管理数据库中,有学生关系S(SNo,SN,Sex,Age,Dept)、选课关系SC(SNo,CNo,Score)、课程关系(CNo,CN,CT)、教师关系T(TNo...
在教务管理数据库中,有学生关系S(SNo,SN,Sex,Age,Dept)、选课关系SC(SNo,CNo,Score)、课程关系(CNo,CN,CT)、教师关系T(TNo,TN,Sex,Age,Prof,Sal,Comm,Dept)、授课关系TC(TNo,CNo)。上述关系模式中属性的定义同课堂上的定义。请使用关系代数表示以下查询:
(1)查询教师号为T1老师教授课程的课程号和课程名。
(2)查询年龄大于18岁的男同学的学号、姓名和系别。
(3)查询“张天”同学所选修的所有课程的课程号、课程名和成绩。
(4)查询至少选修全部课程的学生学号和学生姓名。 展开
(1)查询教师号为T1老师教授课程的课程号和课程名。
(2)查询年龄大于18岁的男同学的学号、姓名和系别。
(3)查询“张天”同学所选修的所有课程的课程号、课程名和成绩。
(4)查询至少选修全部课程的学生学号和学生姓名。 展开
2个回答
展开全部
创建一个选择查询,按系别统计各自男女学生的平均年龄
SELECT
系,
性别,
AVG(年龄) AS 平均年龄
FROM
表
GROUP BY
系,
性别
上面是用 SQL 的处理方法。
楼主要求 “最好不是SQL啊”, 不知道楼主 希望是用什么?
一步一步操作?
那要说明是什么数据库啊.
如果是 Access的话, 操作顺序是这样的:
1、创建一个查询
2、在《显示表》窗口里面,把那个表 选中,按 添加按钮。
3、关闭《显示表》窗口, 进入设计窗口。
4、在表中,双击 系, 性别, 年龄 这3列, 加到下面的列表中。
5、在下面列表的地方,鼠标右键,在弹出窗口,选择 “汇总”
6、修改 年龄下面的 Group By, 变成 “计算” 注意,不是“总计”。
7、运行查询。
SELECT
系,
性别,
AVG(年龄) AS 平均年龄
FROM
表
GROUP BY
系,
性别
上面是用 SQL 的处理方法。
楼主要求 “最好不是SQL啊”, 不知道楼主 希望是用什么?
一步一步操作?
那要说明是什么数据库啊.
如果是 Access的话, 操作顺序是这样的:
1、创建一个查询
2、在《显示表》窗口里面,把那个表 选中,按 添加按钮。
3、关闭《显示表》窗口, 进入设计窗口。
4、在表中,双击 系, 性别, 年龄 这3列, 加到下面的列表中。
5、在下面列表的地方,鼠标右键,在弹出窗口,选择 “汇总”
6、修改 年龄下面的 Group By, 变成 “计算” 注意,不是“总计”。
7、运行查询。
2020-04-07
展开全部
(1)查询教师号为T1老师教授课程的课程号和课程名。
SELECT TC.CNo,C.CN FROM T left join TC on t.TNo=TC.TNo left join C on TC.CNo=C.CNo WHERE T.TNo='T001';
(2)查询年龄大于18岁的男同学的学号、姓名和系别。
SELECT S.SNo,S.SN,S.Dept FROM S WHERE S.Age>18 AND Sex='M';
(3)查询“张天”同学所选修的所有课程的课程号、课程名和成绩。
SELECT SC.SNo,C.CN,SC.Score FROM S LEFT JOIN SC ON S.SNo=SC.SNo LEFT JOIN C ON SC.CNo=C.CNo WHERE S.SN='张天';
(4)查询至少选修全部课程的学生学号和学生姓名。
select S.SNo,S.SN from S LEFT JOIN SC ON S.SNo=SC.SNo GROUP BY S.SNo,S.SN
HAVING COUNT(SC.CNo)=(SELECT COUNT(*) FROM C);
SELECT TC.CNo,C.CN FROM T left join TC on t.TNo=TC.TNo left join C on TC.CNo=C.CNo WHERE T.TNo='T001';
(2)查询年龄大于18岁的男同学的学号、姓名和系别。
SELECT S.SNo,S.SN,S.Dept FROM S WHERE S.Age>18 AND Sex='M';
(3)查询“张天”同学所选修的所有课程的课程号、课程名和成绩。
SELECT SC.SNo,C.CN,SC.Score FROM S LEFT JOIN SC ON S.SNo=SC.SNo LEFT JOIN C ON SC.CNo=C.CNo WHERE S.SN='张天';
(4)查询至少选修全部课程的学生学号和学生姓名。
select S.SNo,S.SN from S LEFT JOIN SC ON S.SNo=SC.SNo GROUP BY S.SNo,S.SN
HAVING COUNT(SC.CNo)=(SELECT COUNT(*) FROM C);
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询