计算机二级

根据以下资料,回答下列各题: 使用如下三个数据库表: 学生表:student(学号,姓名,性别,出生日期,院系) 课程表:course(课程号,课程名,学时) 选课成绩表:score(学号,课程号,成绩) 其中出生日期的数据类型为日期型,学时和成绩为数值型,其他均为字符型。 查询“计算机系”学生的学号、姓名、学生所选课程名和成绩,正确的命令是( )。A.SELECT s.学号,姓名,课程名,成绩 FROM student s,score sc。course c WHERE s.学号=sc.学号,sc.课程

题目

根据以下资料,回答下列各题: 使用如下三个数据库表: 学生表:student(学号,姓名,性别,出生日期,院系) 课程表:course(课程号,课程名,学时) 选课成绩表:score(学号,课程号,成绩) 其中出生日期的数据类型为日期型,学时和成绩为数值型,其他均为字符型。 查询“计算机系”学生的学号、姓名、学生所选课程名和成绩,正确的命令是( )。

A.SELECT s.学号,姓名,课程名,成绩 FROM student s,score sc。course c WHERE s.学号=sc.学号,sc.课程号=c.课程号,院系="计算机系"

B.SELECT学号,姓名,课程名,成绩 FROM student s,score sc,course C WHERE s.学号=SC.学号AND sc.课程号=c.课程号AND院系="计算机系"

C.SELECT s.学号,姓名,课程名,成绩 FROM(student s JOIN score sc ON s.学号=sc.学号) JOIN course c ON sc.课程号=c.课程号 wHERE院系="计算机系"

D.SELECT学号,姓名,课程名,成绩 FROM(student s JOIN score sc ON s.学号=sc.学号) JOIN course c ON sc.课程号=c.课程号 WHERE院系="计算机系"

参考答案和解析
正确答案:B
B。【解析】由题所知,所查询的是计算机系所选课程的学生的学号、姓名、课程名和成绩,其中涉及三个表,所以条件为s.学号=sc.学号ANDsc.课程号=c.课程号AND院系=”计算机系”。所以答案选择B。
如果没有搜索结果,请直接 联系老师 获取答案。
相似问题和答案

第1题:

以下2题使用如下三个数据库表学生表:S(学号,姓名,性别,出生日期,院系) 课程表:C(课程号,课程名,学时) 选课成绩表:SC(学号,课程号,成绩) 在上述表中,出生日期数据类型为日期型,学时和成绩为数值型,其他均为字符型。

用SQL命令查询选修的每门课程的成绩都高于或等于85分的学生的学号和姓名,正确的命令是

A. SELECT学号,姓名 FROM S WHERE NOT EXISTS; (SELECT*FROM SC WHERE SC.学号=S.学号AND成绩<85)

B. SELECT学号,姓名 FROM S WHERE NOT EXISTS; (SELECT*FROM SC WHERE SC.学号=S.学号AND成绩>=85)

C.SELECT学号,姓名 FROM S,SC; WHERE S.学号=SC.学号 AND ALL成绩>=85

D.SELECT学号,姓名 FROM S,SC; WHERE S.学号=SC.学号AND ALL成绩>=85


正确答案:A
解析:EXISTS是谓词,EXISTS或NOTEXISTS是用来检查在子查询中是否有结果返回,即存在元组或不存在元组。其本身并没有进行任何运算或比较,只用来返回子查询结果。选项B)和c)返回的结果都是只要有任意一门选修课程成绩大于等于85的学生学号和姓名,而本题要求返回的是所有选修课程大于等于85的学生学号和姓名,选项D)中的ALL短语无实际意义。

第2题:

根据以下资料,回答下列各题:使用如下三个数据库表: 学生表:student(学号,姓名,性别,出生日期,院系) 课程表:course(课程号,课程名,学时) 选课成绩表:score(学号,课程号,成绩) 其中出生日期的数据类型为日期型,学时和成绩为数值型,其他均为字符型。 查询“计算机系”学生的学号、姓名、学生所选课程名和成绩,正确的命令是( )。

A.SELECT s.学号,姓名,课程名,成绩 FROM student s,score sc。course c WHERE s.学号=sc.学号,sc.课程号=c.课程号,院系="计算机系"

B.SELECT学号,姓名,课程名,成绩 FROM student s,score sc,course C WHERE s.学号=SC.学号AND sc.课程号=c.课程号AND院系="计算机系"

C.SELECT s.学号,姓名,课程名,成绩 FROM(student s JOIN score sc ON s.学号=sc.学号) JOIN course c ON sc.课程号=c.课程号 wHERE院系="计算机系"

D.SELECT学号,姓名,课程名,成绩 FROM(student s JOIN score sc ON s.学号=sc.学号) JOIN course c ON sc.课程号=c.课程号 WHERE院系="计算机系"


正确答案:B
B。【解析】由题所知,所查询的是计算机系所选课程的学生的学号、姓名、课程名和成绩,其中涉及三个表,所以条件为s.学号=sc.学号ANDsc.课程号=c.课程号AND院系=”计算机系”。所以答案选择B。

第3题:

第30~31题使用如下3个数据库表:

学生表:S(学号,姓名,性别,出生日期,院系)

课程表:C(课程号,课程名,学时)

选课成绩表:SC(学号,课程号,成绩)

在上述表中,出生日期数据类型为日期型,学时和成绩为数值型,其他均为字符型。

用SQL语句查询选修的每门课程的成绩都高于或等于85分的学生的学号和姓名,正确的命令是( )。


正确答案:A
本题属于多表查询,使用联接查询或嵌套查询,选项C)和选项D)使用联接查询,使用时学号字段前要表明所属的表,写法都不完整;选项A)和选项B)中的EXLSTS属于SQL查询谓词,EXISTS或NOTEXISTS是用来检查在子查询中是否有结果返回,即存在元组或不存在元组,子查询要用圆括号括起来。选项A)中的子查询查询的足“SC”表中“学号”等于“S”表中“学号”并且成绩小于85的数据,然后在外层查询中检索“S”表中的“学号”是否存在于子查询的查询结果中,将不存在的“学号”显示其“学号”和“姓名”的信息。

第4题:

第{TSE}题使用如下3个数据库表:

学生表:S(学号,姓名,性别,出生日期,院系)

课程表:C(课程号,课程名,学时)

选课成绩表:SC(学号,课程号,成绩)

在上述表中,出生日期数据类型为日期型,学时和成绩为数值型,其他均为字符型。

{TS}用SQL语句查询选修的每门课程的成绩都高于或等于85分的学生的学号和姓名,正确的命令是( )。


正确答案:A

第5题:

回答下列各题: 基于学生表S和学生选课表SC两个数据库表,它们的结构如下: S(学号,姓名,性别,年龄),其中学号、姓名和性别为C型字段,年龄为N型字段; SC(学号,课程号,成绩),其中学号和课程号为C型字段,成绩为N型字段。 {TS}查询学生选修课程成绩75分以上的学生学号,正确的SQL语句是( )。

A. SELECT DISTINCT学号FROM SC WHERE”成绩”>75

B. SELECT DISTINCT学号FROM SC WHERE成绩>75

C. SELECT DISTINCT学号FROM SC WHERE成绩>”75”

D. SELECT DISTINCT”学号”FROM SC WHERE”成绩”>75


正确答案:B
在WHERE条件中成绩不需要用引号括起来,因此A和D排除,成绩是数值型字段,因此750也不需要加双引号,故选项C也错误。

第6题:

教学管理数据库创建了如下表:CTEATE TABLE student(学号 CHAR(5) not null unique,姓名 CHAR(8),性别 CHAR(2),出生日期 DATETIME,班号 CHAR(5)) 请写出完成以下任务需要的SQL语句:检索student表中与学号为'105'的学生同年出生的所有学生的学号、姓名和出生日期列。


答:SELECT 学号,姓名,YEAR(出生日期) AS '出生年份'
FROM student
WHERE YEAR(出生日期)=(SELECT YEAR(出生日期) FROM student WHERE 学号='105')

第7题:

已知表student(学号,姓名,性别,出生日期,专业)

course(课程号,课程名,学时数,学分)

grade(学号,课程号,成绩)、

试在所有学生的课程成绩中列出课程成绩最高的学生姓名、专业、课程名和成绩.


正确答案:

SELECT姓名,专业,课程名,成绩
FROMstudent,grade,course
WHERE成绩IN(SELECT MAX(grade.成绩)
FROMgrade)ANDstudent.学号=grade.学号
ANDcourse.课程号=grade.课程号;

第8题:

将“student”表拆分为两个新表,表名分别为“tStud”和“tOffice”。其中“tStud”表结构为:学号,姓名,性别,出生日期,院系,籍贯,主键为学号;“tOffice”表结构为:院系,院长,院办电话,主键为“院系”。 要求:保留“student”表。


正确答案:
步骤1;执行【工具】→【分析】→【表】菜单命令,在“表分析器向导”对话框中直接单击“下一步”按钮,直到出现表选择。如图24所示,单击“student,表。
步骤2:继续单击“下一步按钮,选择“否,自行决定”单选框。再单击“下一步”按钮。在“表分析器向导”向导中拖出“院系”,单击“设置惟~标识符”按钮设为“主键”。在弹出对话框内给新“表2”修改名为“toffice”。继续拖“院长”、“院办电话”字段到“toffice"中。如图25所示


步骤3:单击“表1”,单击“表分析器向导”中的“重命名表,,按钮,将“表1”修改名为“tSt,d”。继续单击“下一步”按钮直到最后单击“完成”按钮。

第9题:

第(34)~(35)题使用如下三个数据库表: 学生表:S(学号,姓名,性别,出生日期,院系) 课程表:C(课程号,课程名,学时) 选课成绩表:SC(学号,课程号,成绩)在上述表中,出生日期数据类型为日期型,学时和成绩为数值型,其他均为字符型。(34)用SQL命令查询选修的每门课程的成绩都高于或等于85分的学生的学号和姓名,正确的命令是A) SELECT学号,姓名FROM S WHERE NOT EXISTS; (SELECT*FROM SC WHERE SC.学号=S.学号AND成绩<85)B)SELECT学号,姓名FROM S WHERE NOT EXISTS; (SELECT *FROM SC WHERE SC.学号=S:学号AND成绩>=85)C)SELECT学号,姓名FROM S,SC WHERE S.学号=SC.学号AND成绩>=85D)SELECT学号,姓名FROM S,SC WHERE S.学号=SC.学号AND ALL成绩>=85


正确答案:A
本题属于多表查询,使用联接查询和嵌套查询,选项C、D使用联接查询,使用时每个字段前要表明所属的表,C、D写法都不完整;选项A、B使用嵌套查询,NOT EXISTS表示将括号内SELECT查询条件取反,故选项A为正确答案。