暂无图片
sql
我来答
分享
ora_221
2022-12-23
sql

如下三个关系模式:
Stu(SNo,SName,Sex, Age),
学生基本信息表S由学生学号、姓名、性别、年龄组成;Stu_Course(SNo, CNo,CScore),
选课信息表 Stu_Course
由学生学号、课程编号、成绩组成; Course(CNo,CName,TeacherNo),
课程信息表 Course
由课程编号、课程名称授课教师编号组成;
它们的主码分别是 SNo、(SNo,CNo)和 CNo。
假设上述 Stu、Stu_Course 和 Course 三个表已经建立
1.写出“查询选修了不到 4 门课程的学生学号和平均成绩”的 SQL 语句;
2.写出“查询选修了 B2023 号课程的学生学号”的 SQL 语句。

我来答
添加附件
收藏
分享
问题补充
5条回答
默认
最新
watson

1、“查询选修了不到 4 门课程的学生学号和平均成绩”的 SQL 语句;

SELECT a.SNo as 学号,AVG( b. CScore) AS平均成绩  FROM Stu a, Stu_Course b ,Course c 

where a.SNo=b.SNo and b.CNo = c.Cno 

GROUP BY a.SNo 

HAVING COUNT(b.CNo)<4

2、“查询选修了 B2023 号课程的学生学号”的 SQL 语句:

select a.SNo as 学号 FROM Stu a, Stu_Course b ,Course c 

where a.SNo=b.SNo and b.CNo = c.Cno and b.CNo='B2023'

暂无图片 评论
暂无图片 有用 3
打赏 0
ora_221
题主
2022-12-23
会写sql的都是大佬,先行感谢了。。。。。
DarkAthena
2022-12-23
第二个只查一个表就行了,没必要关联所有表
suger
2022-12-23
第二个只查一个表就行了,没必要关联所有表
展开全部评论(1条)
JiekeXu
暂无图片

试试这样可以不

1.select S.SNO,AVG(E.CScore) from Stu S,Stu_Course E,  Course C 
where S.SNO=E.SNO and E.SNO=C.SNO 
group by S.SNO  
having count(E.CNo)<4;

2.select SNo from Stu_Course where CNo='B2023';
复制
暂无图片 评论
暂无图片 有用 2
打赏 0
yBmZlQzJ

1、“查询选修了不到 4 门课程的学生学号和平均成绩”的 SQL 语句;

SELECT a.SNo as 学号,AVG( b. CScore) AS平均成绩  FROM Stu a, Stu_Course b ,Course c 

where a.SNo=b.SNo and b.CNo = c.Cno 

GROUP BY a.SNo 

HAVING COUNT(b.CNo)<4

2、“查询选修了 B2023 号课程的学生学号”的 SQL 语句:

select a.SNo as 学号 FROM Stu a, Stu_Course b ,Course c 

where a.SNo=b.SNo and b.CNo = c.Cno and b.CNo='B2023'

暂无图片 评论
暂无图片 有用 2
打赏 0
风行

1、“查询选修了不到 4 门课程的学生学号和平均成绩”的 SQL 语句;

SELECT a.SNo as 学号,AVG( b. CScore) AS平均成绩  FROM Stu a, Stu_Course b ,Course c 

where a.SNo=b.SNo and b.CNo = c.Cno 

GROUP BY a.SNo 

HAVING COUNT(b.CNo)<4

2、“查询选修了 B2023 号课程的学生学号”的 SQL 语句:

select a.SNo as 学号 FROM Stu a, Stu_Course b ,Course c 

where a.SNo=b.SNo and b.CNo = c.Cno and b.CNo='B2023'

暂无图片 评论
暂无图片 有用 0
打赏 0
十月

练一下手,我是菜鸟

1.

select SNo,CNo,avg(CScore) from stu
left join Stu_Course on stu.SNo= Stu_Course.SNo
group by SNo
having by count(CNo) < 4;

2.
select SNo from Stu_Course
where CNo = 'B2023';

暂无图片 评论
暂无图片 有用 0
打赏 0
回答交流
Markdown


请输入正文
提交
相关推荐
Oracle dmp导出可以根据where条件到导出吗?
回答 1
已采纳
执行导出的命令如下:expdp用户名/密码@服务名directoryexpdirparfileempmain.parempmain.par文件内容tablesempmaindumpfileempmai
有人遇到这个问题吗,数据库是12G本地oracle是11g?
回答 2
另外catalogstartwith‘/backup/’多加一个/
除了 OPEN_LINKS 参数,Oracle 还提供了哪些参数来控制数据库链接?
回答 2
已采纳
除了OPENLINKS参数外,还包括PROCESSES、SESSIONS、CONNECTIONS等参数。这些参数共同决定了数据库实例允许的最大并发连接数、每个用户会话的最大连接数以及数据库实例允许的最
pdb 修改参数,以普通用户登录参数未生效
回答 2
普通用户是通过showparameter查看的参数吗?当前会话生效查询下面视图比较准确V$PARAMETER2displaysinformationabouttheinitializationpara
Oracle从aix迁移到centos可以用adg吗?
回答 2
可以用,我记得我曾经在虚拟机里测试过。生产环境还没敢动,尽管我的小机已经很多年了。
怎么在Oracle官网查隐含参数的解释?
回答 3
可以查查asktom或者高手们的blog
oracle数据库换了新的服务器、存储后(性能更好),空表插入13万数据,老数据库需要3分30秒,新数据库只需要44秒,但是往一张有8000万的老表中插入数据的时候,老数据库只要3分25秒但是新数据库却要7分50秒,这种现象可能跟什么有关系?
回答 4
已采纳
第一种情况,新库空表插入快,老库插入慢,有可能是老库有其他等待事件阻塞,存储性能会影响效率,但是应该不会差距这么大。第二种情况,已经有数据的表,空库插入慢,老库插入快,这种情况发一下具体的insert
如何查询一段时间数据表增加的容量
回答 3
已采纳
1.找出该表空间的所有用户表,2.该期间,比较具体用户表前后bytes大小相关动态视图:usersegments
Oracle PLSQL 登录提示:ORA-12154:TNS:无法处理服务名,需要怎么解决?
回答 1
看服务端lsnrctlstatus状态
Oracle定时任务,执行多个存储过程(过程1;过程2;3456),是并行还是串行?
回答 2
已采纳
如果是一个JOB里面执行多个存储过程,肯定是串行,他是一行一行的执行的。想实现并行只能一个存储过程定义一个JOB
问题信息
请登录之后查看
邀请回答
暂无人订阅该标签,敬请期待~~