VFP中SQL语言的几个问题
【1】假定学号的第3-4位为专业代码,要计算各专业的学生选修课程号为“101”课程的平均成绩,正确的SQL语句为()A.SELECTSUBS(学号,3,2)AS专业,AV...
【1】假定学号的第3-4位为专业代码,要计算各专业的学生选修课程号为“101”课程的平均成绩,正确的SQL语句为( )
A.SELECT SUBS(学号,3,2)AS专业, AVG(成绩)AS平均分 FORM 选课
WHERE 课程号="101"GROUP BY1
B.SELECT SUBS(学号,3,2)AS专业, AVG(成绩)AS平均分 FORM 选课
WHERE 课程号="101"GROUP BY 专业
这两个就最后不同 为什么不能用GROUP BY 专业?
【2】VFP中常用COUNT(*) 倒底是什么意思啊 能举例说明更好
【3】有以下SQL语句:
SELECT订单号,签订日期,金额 FROM订单,职员
WHERE订单.职员号=职员.职员号 AND 姓名=“李二”
与上面语句作用相同的是( )
A. SELECT订单号,签订日期,金额 FROM订单WHERE EXITS(SELECT* FROM职员 WHERE 姓名=“李二”)
B.SELECT订单号,签订日期,金额 FROM订单WHERE IN(SELECT* FROM职员 WHERE 姓名=“李二”)
郁闷了 EXIT 和 IN 到底有什么区别啊 就用我这个题举个特例看看
【4】用SQL命令查询选修的每门课程的成绩都高于或等于85分的学生的学号和姓名,正确的是()
A.SELECT 学号,姓名FROM S WHERE NOT EXITS(SELECT*FROM SC.学号=S.学号 AND 成绩<85 )
B.SELECT学号,姓名 FROM S,SC WHERE SC.学号=S.学号 AND 成绩>=85
这两个句子表达的意思不同吗? 为什么选A不选B?
好了 先打这么多...(好难打啊)
谢谢各位大侠的解答!感激不尽! 展开
A.SELECT SUBS(学号,3,2)AS专业, AVG(成绩)AS平均分 FORM 选课
WHERE 课程号="101"GROUP BY1
B.SELECT SUBS(学号,3,2)AS专业, AVG(成绩)AS平均分 FORM 选课
WHERE 课程号="101"GROUP BY 专业
这两个就最后不同 为什么不能用GROUP BY 专业?
【2】VFP中常用COUNT(*) 倒底是什么意思啊 能举例说明更好
【3】有以下SQL语句:
SELECT订单号,签订日期,金额 FROM订单,职员
WHERE订单.职员号=职员.职员号 AND 姓名=“李二”
与上面语句作用相同的是( )
A. SELECT订单号,签订日期,金额 FROM订单WHERE EXITS(SELECT* FROM职员 WHERE 姓名=“李二”)
B.SELECT订单号,签订日期,金额 FROM订单WHERE IN(SELECT* FROM职员 WHERE 姓名=“李二”)
郁闷了 EXIT 和 IN 到底有什么区别啊 就用我这个题举个特例看看
【4】用SQL命令查询选修的每门课程的成绩都高于或等于85分的学生的学号和姓名,正确的是()
A.SELECT 学号,姓名FROM S WHERE NOT EXITS(SELECT*FROM SC.学号=S.学号 AND 成绩<85 )
B.SELECT学号,姓名 FROM S,SC WHERE SC.学号=S.学号 AND 成绩>=85
这两个句子表达的意思不同吗? 为什么选A不选B?
好了 先打这么多...(好难打啊)
谢谢各位大侠的解答!感激不尽! 展开
2个回答
展开全部
1.group by 后只能跟列名
2.count(*)是统计数的,
如:计算学生人数。
select count(*)
from student
3.二者的区别就是,所有带有in谓词的子查询都能被带有exists谓词的子查询的句子等价替换,但某些带有exists子查询的句子不能被带有in谓词的子查询替换。
exists返回的是逻辑值,所以select *,但上题用in谓词的时候,不能用select *
应改为 SELECT订单号,签订日期,金额 FROM订单WHERE 职员 IN(SELECT 职员FROM 职员 WHERE 姓名=“李二”)
4.A答案选的是每门课程都>=85的同学
B答案选的是有一门课程>=85的同学,所以二者是不一样的,
打的我好累啊,累死了,呵呵,我也是初学者,以上仅仅是个人观点,呵呵!!!共同进步!!
2.count(*)是统计数的,
如:计算学生人数。
select count(*)
from student
3.二者的区别就是,所有带有in谓词的子查询都能被带有exists谓词的子查询的句子等价替换,但某些带有exists子查询的句子不能被带有in谓词的子查询替换。
exists返回的是逻辑值,所以select *,但上题用in谓词的时候,不能用select *
应改为 SELECT订单号,签订日期,金额 FROM订单WHERE 职员 IN(SELECT 职员FROM 职员 WHERE 姓名=“李二”)
4.A答案选的是每门课程都>=85的同学
B答案选的是有一门课程>=85的同学,所以二者是不一样的,
打的我好累啊,累死了,呵呵,我也是初学者,以上仅仅是个人观点,呵呵!!!共同进步!!
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询