已知关系模式:S (SNO,SNAME) 学生关系。SNO 为学号,SNAME 为姓名C (CNO,CNAME,CTEACHER) 课程关系。CNO 为课程号,CNAME 为课程名,CTEACHER 为任课教师SC(SNO,CNO,SCGRADE) 选课关系。SCGRADE 为成绩要求实现如下5个处理:1. 找出没有选修过“李明”老师讲授课程的所有学生姓名2. 列出有二门以上(含两门)不及格课程的学生姓名及其平均成绩3. 列出既学过“1”号课程,又学过“2”号课程的所有学生姓名4. 列出“1”号课成绩比“

题目

已知关系模式:

S (SNO,SNAME) 学生关系。SNO 为学号,SNAME 为姓名

C (CNO,CNAME,CTEACHER) 课程关系。CNO 为课程号,CNAME 为课程名,CTEACHER 为任课教师

SC(SNO,CNO,SCGRADE) 选课关系。SCGRADE 为成绩

要求实现如下5个处理:

1. 找出没有选修过“李明”老师讲授课程的所有学生姓名

2. 列出有二门以上(含两门)不及格课程的学生姓名及其平均成绩

3. 列出既学过“1”号课程,又学过“2”号课程的所有学生姓名

4. 列出“1”号课成绩比“2”号同学该门课成绩高的所有学生的学号

5. 列出“1”号课成绩比“2”号课成绩高的所有学生的学号及其“1”号课和“2”号课的成绩


相似考题
更多“已知关系模式:S (SNO,SNAME) 学生关系。SNO 为学号,SNAME 为姓名C (CNO,CNAME,CTEACHER) 课程关系。CNO 为课程号,CNAME 为课程名,CTEACHER 为任课教师SC(SNO,CNO,SCGRADE) 选课关系。SCGRADE 为成绩要求实现如下5个处理:1. 找出没有选修过“李明”老师讲授课程的所有学生姓名2. 列出有二门以上(含两门)不及格课程的学生姓名及其平均成绩3. 列出既学过“1”号课程,又学过“2”号课程的所有学生姓名4. 列出“1”号课成绩比“”相关问题
  • 第1题:

    关系模式Student(sno,Sname,Cno,Cname,Grade,Tname,Taddr)的属性分别表示学号、学生姓名、课程号、课程名、成绩、任课教师名和教师地址。其中,一个学生可以选若干门课程,一个教师可以讲授若干门课程,一门课程可以由多个教师讲授,对于同一门课程,学生只能选定一个教师讲授的课程,教师不会重名。下列有关关系模式Student的分解中,是无损联接并保持函数依赖的是——。

    A.{(Sno,Sname,Cno,rname,raddr),(sno,Sname,Cno,Cnarne,Grade)}E:INF

    B.{(Sno,Sname),(sn0,Cno,Grade,Tname,。Taddr),(Cno,Cname)∈2NF

    C.{(Sno,Sname),(sno,Cno,Grade),(rI'name,Taddr),(Cno,Cname,)∈3NF

    D.{(Sno,Sname),(Sno,Cno,Grade),(Tname,Taddr),(Tname,Cno),(Cno,Cname)}∈BCNF


    正确答案:B
    解析:关系模式Student(Sno,Shame,Cno,Cname,Grade, rname。Taddr)的候选关键字有1个,为(Sno,Cno)。最小函数依赖集中有5个函数依赖。由于存在部分依赖现象,因此该关系模式属于lNF范式,分解p={(Sno,Shame),(Sn0,Cno,Grade,Tname,Taddr),(Cno,Cname)}∈2NF,并且是无损联接及保持函数依赖。

  • 第2题:

    某数据库中有关系Student(Sno,Sname,Ssex,Sage,Sdept),各属性分别表示学号,姓名,性别,年龄以及所在的系;Course(Cno,Cname,Ccredit)属性分别表示课程号,课程名,学分;SC(Sno, Cno,Grade)为学生选课表,各属性分别表示为学号,课程号和分数;完成下列的SQL语句:


    正确答案:

  • 第3题:

    在学籍管理中,设有4个表,关系模式分别为:

    ST[JDENT(SNO,SNAME,SEX,BIRTFtDAY,CLASS)

    TEAC腿R(1FNO,TNAME.SEX.BIRTHDAY,PROFESSION,DEPARTMENT)

    CO[JRSE(CNO,CNAME,TNO)

    SCORE(SNO,CNO,DEGREE)

    说明:学生关系模式中:SNO:学号;SNAME:姓名;SEX:性别;BIRTHDAY:出生口期;CI.ASS:班级:教师关系模式巾:TNO:教师号;TNAME:姓名;SEX:性别;BIRTHDAY:I叶{生口期;PRO—FESSION:职称;DEPARTMENT:所在系;

    课程关系模式中:CNO:课程号;CNAME:课程名;TNO:任课教师号;

    成绩关系模式中:SNO:学号;CNO:课程号;DEGREE:分数。

    请用SQI。查询语句实现下列操作:

    1)显示教师所有的单位,即不重复的DEPARTMENT列。

    2)显示STIJDENT表中"95031.'班或性别为“女”的同学记求。

    3)以CNO升序,DEGREE降序显示SCORE表的所有记录。

    4)显示"9503l”班的学生人数。

    5)显示SCORE表中至少有5名学生选修的并I:2 3 H:头的课程号的平均分。

    6)显示最低分大于70,最高分小于90的SNO列。

    7)显示选修“3一105”课程的成绩高于“109”号同学成绩的所有同学的记录。

    8)显示SCORE表中选学多门课程的同学中分数为非最高分成绩的记录。

    9)列出学号为“108'’的同学同年出生的所有学生的SNO、SNAME和BIRTHDAY。

    10)显示“张三”教师任课的学生成绩。


    正确答案:l)SELECT DISTICT DEPARTMENT FROM TEACHER; 2)SELECT* FROM STUDENT WHERE CLASS=‘9503l’OR SEX=‘女’; 3)SELECT* FROM SCORE ORDER BY CNOASC DEGREE DESC; 4)SELECT COtJNT(*) FROM STUDENT WHERE CLASS=‘9503l’: 5)SELECT CNO.AVG(DEGREE) FROM SCORE WHERE CNO like‘3%’ GROUP BY CNO HAV-ING COUNT(*)>5; 6)SELECT SNO FROM SCORE GROUP BY SNOMIN(DEGREE)>70 AND MAX(DEGREE)<90; 7)SELECT X.CNOX.SNO.X.DEGREE FROM SCORE X.SCORE Y WHERE X.CNO=‘3—105’AND X.CNO=Y.CNO AND Y.SNO=‘109’AND X.DEGREE>Y.DEGR:EE: 8)SELECT A.SNOA.DEGREE.A.CNO FROM SCORE A.SCORE B WHERE A.SNO=B.SNO AND A.DEGREE<B.DEGREE: 9)SELECT SNOSNAME.BIRTHDAY FROM STUDEN'I、WHERE YEAR(BIRTHDAY)= (SELECT YEAR(BIRTHDAY) FROM STUDENT WHERE SNO=“108’); 10)SELECT CNO. SNO.DEGREE FROM SCORE WHERE CNO= (SELECTX.CNO FROM COURSE X.TEACHER Y WHERE X.TNO=Y.TNO AND Y.TNAME=‘张三’)。
    l)SELECT DISTICT DEPARTMENT FROM TEACHER; 2)SELECT* FROM STUDENT WHERE CLASS=‘9503l’OR SEX=‘女’; 3)SELECT* FROM SCORE ORDER BY CNOASC DEGREE DESC; 4)SELECT COtJNT(*) FROM STUDENT WHERE CLASS=‘9503l’: 5)SELECT CNO.AVG(DEGREE) FROM SCORE WHERE CNO like‘3%’ GROUP BY CNO HAV-ING COUNT(*)>5; 6)SELECT SNO FROM SCORE GROUP BY SNOMIN(DEGREE)>70 AND MAX(DEGREE)<90; 7)SELECT X.CNO,X.SNO.X.DEGREE FROM SCORE X.SCORE Y WHERE X.CNO=‘3—105’AND X.CNO=Y.CNO AND Y.SNO=‘109’AND X.DEGREE>Y.DEGR:EE: 8)SELECT A.SNO,A.DEGREE.A.CNO FROM SCORE A.SCORE B WHERE A.SNO=B.SNO AND A.DEGREE<B.DEGREE: 9)SELECT SNO,SNAME.BIRTHDAY FROM STUDEN'I、WHERE YEAR(BIRTHDAY)= (SELECT YEAR(BIRTHDAY) FROM STUDENT WHERE SNO=“108’); 10)SELECT CNO. SNO.DEGREE FROM SCORE WHERE CNO= (SELECTX.CNO FROM COURSE X.TEACHER Y WHERE X.TNO=Y.TNO AND Y.TNAME=‘张三’)。 解析:主要考查了SQL的数据查询功能、数据定义功能和数据操纵功能。这类问题主要是考查对sELECT FROM WHERE语句的掌握。

  • 第4题:

    设有关系S(SNO,SNAME,SEX) ,C(CNO,CNAME) ,SC(SNO,CNO) 。其中SNO为学号,SNAME为学生姓名,SEX为性别,CNO为课程号,CNAME为课程名。要查询选修“计算机”课的全体女学生姓名的SQL语句是SELECT sname FROM S,SC,C WHERE子句。这里WHERE子句的内容是

    A.s.sno=sc.sno AND sex=′女′AND cname=′计算机′

    B.s.sno=sc.sno AND c.cno=sc.cno AND cname=′计算机′

    C.sex=′女′AND cname=′计算机′

    D.s.sno=sc.sno AND c.cno=sc.cno AND sex=′女′AND cname=′计算机′


    正确答案:D
    解析:用SQL的SELECT语句完成查询操作时,首先要分析查询结果和查询条件涉及的属性都来自于哪些关系,如果涉及到两个或两个以上的关系,则可以采用自然连接或者子查询来完成。另外,如果涉及到的两个关系没有相同的属性,不能直接进行自然连接,就需要引入第3个关系并与两个关系进行自然连接。本题中,查询选修“计算机”课的全体女学生姓名的操作中涉及到的属性有SNAME、SEX、CNAME,分别来自关系S和C,但S和C这两个关系没有相同的属性,所以还要引入关系SC,分别与关系S和C进行自然连接。还要有选修“计算机”课的“女”学生两个条件。

  • 第5题:

    设Student为学生关系,SC为学生选课关系,Sno为学生号,Sname为学生姓名,Cno为课程号,执行下列SQL语句的查询结果是( )。

    Select Student.Sname

    From Student,SC

    Where Student.Sno=SC.Sno

    And SC.Cno='C1’

    A.选出选修C1课程的学生信息

    B.选出选修C1课程的学生姓名

    C.选出Student中学生号与SC中学生号相等的信息

    D.选出Student和SC中的一个关系


    正确答案:B
    解析:本题考查SQL中查询语句的知识。在SQL的查询语句中,Select子句用于指定最后结果中的字段,Where子句用于指定查询条件,只有满足条件的元组才会出现在结果中。对于本题来说,由于Select子句后面是Student.Sname,故此查询结果只有学生姓名;Where子句中首先将Student.Sno和SC.Sno相等的筛选出来,是为两表连接;并且条件SC.Cno='C1'限定了选修的课程号为C1。

  • 第6题:

    请教:北京华建集团SQL面试题第1大题第1小题如何解答?

    【题目描述】

    1.已知关系模式:

    S (SNO,SNAME)                      学生关系。SNO 为学号,SNAME 为姓名

    C (CNO,CNAME,CTEACHER) 课程关系。CNO 为课程号,CNAME 为课程名,CTEACHER 为任课教师

    SC(SNO,CNO,SCGRADE)       选课关系。SCGRADE 为成绩

    要求实现如下5个处理:

     1. 找出没有选修过“李明”老师讲授课程的所有学生姓名

     2. 列出有二门以上(含两门)不及格课程的学生姓名及其平均成绩

     3. 列出既学过“1”号课程,又学过“2”号课程的所有学生姓名

     4. 列出“1”号课成绩比“2”号同学该门课成绩高的所有学生的学号

     5. 列出“1”号课成绩比“2”号课成绩高的所有学生的学号及其“1”号课和“2”号课的成绩

     


    【参考答案分析】: 1.找出没有选修过“李明”老师讲授课程的所有学生姓名 --实现代码:Select Sname As 学生姓名 From s Where Not Exists (Select * From c, Sc Where c.Cno = Sc.Cno And Cteacher = '李明' And Sc.Sno = s.Sno);Select Sname As 学生姓名 From s Where Sno Not In (Select Sno From c, Sc Where c.Cno = Sc.Cno And Cteacher = '李明');2. 列出有二门以上(含两门)不及格课程的学生姓名及其平均成绩 --实现代码:Select s.Sno As 学生学号, s.Sname As 学生姓名, Avg(Sc.Scgrade) As 平均成绩 From s, Sc Where Sc.Sno = s.Sno And Sc.Sno In (Select Sc.Sno From Sc Where Sc.Scgrade < 60 Group By Sc.Sno Having Count(*) > 2) Group By s.Sno, s.Sname;3. 列出既学过“01”号课程,又学过“02”号课程的所有学生姓名 --实现代码:select s.sno as 学生学号,s.sname as 学生姓名 from s where sno in(select sc.sno as 学生学号 from c,sc where c.cno=sc.cno and c.cno in('01','02') group by sno having count(distinct sc.cno)=2);4. 列出“01”号课成绩比“02”号同学该门课成绩高的所有学生的学号 --实现代码:select sc1.sno as 学生学号 from sc as sc1,c as c1,sc as sc2,c as c2where sc1.cno=c1.cno and c1.cno='01' and sc2.cno=c2.cno and c2.cno='02'and sc1.scgrade>sc2.scgrade group by sc1.sno;5. 列出“01”号课成绩比“02”号课成绩高的所有学生的学号及其“01”号课和“02”号课的成绩 --实现代码:select sc1.sno as 学生学号, sc1.scgrade as no1grade ,sc2.scgrade as no2gradefrom sc as sc1,c as c1,sc as sc2,c as c2where sc1.cno=c1.cno and c1.cno='01' and sc2.cno=c2.cno and c2.cno='02'and sc1.scgrade>sc2.scgrade group by sc1.sno;

    答案是:
    1.找出没有选修过“李明”老师讲授课程的所有学生姓名
    --实现代码:
    Select Sname As 学生姓名
      From s
    Where Not Exists (Select *
              From c, Sc
             Where c.Cno = Sc.Cno
               And Cteacher = '李明'
               And Sc.Sno = s.Sno);

    Select Sname As 学生姓名
      From s
    Where Sno Not In (Select Sno
                         From c, Sc
                        Where c.Cno = Sc.Cno
                          And Cteacher = '李明');

    2. 列出有二门以上(含两门)不及格课程的学生姓名及其平均成绩

      --实现代码:
    Select s.Sno As 学生学号, s.Sname As 学生姓名, Avg(Sc.Scgrade) As 平均成绩
      From s, Sc
    Where Sc.Sno = s.Sno
       And Sc.Sno In (Select Sc.Sno
                        From Sc
                       Where Sc.Scgrade < 60
                       Group By Sc.Sno
                      Having Count(*) > 2)
    Group By s.Sno, s.Sname;

    3. 列出既学过“01”号课程,又学过“02”号课程的所有学生姓名

      --实现代码:
    select s.sno as 学生学号,s.sname as 学生姓名 from s where sno in(select sc.sno as 学生学号 from c,sc where c.cno=sc.cno and c.cno in('01','02') group by sno having count(distinct sc.cno)=2);

    4. 列出“01”号课成绩比“02”号同学该门课成绩高的所有学生的学号

      --实现代码:
    select  sc1.sno as 学生学号 from sc as sc1,c as c1,sc as sc2,c as c2
    where sc1.cno=c1.cno and c1.cno='01' and sc2.cno=c2.cno and c2.cno='02'
    and sc1.scgrade>sc2.scgrade group by sc1.sno;

    5. 列出“01”号课成绩比“02”号课成绩高的所有学生的学号及其“01”号课和“02”号课的成绩

      --实现代码:
    select  sc1.sno as 学生学号, sc1.scgrade as no1grade ,sc2.scgrade as no2grade
    from sc as sc1,c as c1,sc as sc2,c as c2
    where sc1.cno=c1.cno and c1.cno='01' and sc2.cno=c2.cno and c2.cno='02'
    and sc1.scgrade>sc2.scgrade group by sc1.sno;

  • 第7题:

    设有关系S(SNO,SNAME,SEX),C(CNO,CNAME),SC(SNO,CNO)。其中SNO为学号,SNAME为学生姓名,SEX为性别,CNO为课程号,CNAME为课程名。要查询选修“计算机”课的全体女学生姓名的SQL语句是SELECTSnameFROMS,SC,C WHERE子句。这里WHERE子句的内容是

    A.s.sno=sc.sno ANDSex=‘女’ANDCname=‘计算机’

    B.s.sno=sc.sno ANDC.cno=sc.cno ANDCname=‘计算机’

    C.Sex=‘女’ANDCname=‘计算机’

    D.s.sno=sc.sno ANDC.cno=sc.cno ANDSex=‘女’ANDCname=‘计算机’


    正确答案:D
    解析:用SQL的SELECT语句完成查询操作时,首先要分析查询结果和查询条件涉及的属性都来自于哪些关系,如果涉及到两个或两个以上的关系,则可以采用自然连接或者子查询来完成。另外,如果涉及到的两个关系没有相同的属性,不能直接进行自然连接,就需要引入第3个关系并与两个关系进行自然连接。本题中,查询选修“计算机”课的全体女学生姓名的操作中涉及到的属性有SNAME、SEX、CNAME,分别来自关系S和C,但S和C这两个关系没有相同的属性,所以还要引入关系SC,分别与关系S和C进行自然连接。

  • 第8题:

    “学生一选课一课程”数据库中的三个关系是:

    S(sno,sname,sex,age,dept),C(xno,cname,teacher),sC(sno,cno,grade)

    查找选修“数椐库技术”课程的学生的姓名和成绩,用关系代数表达式可表示为

    II【 】


    正确答案:snamegrade
    sname,grade 解析:本题中涉及到了关系运算中的选择、投影和连接运算。

  • 第9题:

    设有学生表S(SNO,SN)(SNO为学生号,SN为姓名)和学生选修课程表SC(SNO,CNO,CN,G)(CNO为课程号,CN为课程名,G为成绩),试用SQL语句完成以下操作:

    建立一个视图V-SSC(SNO,SN,CNO,CN,G),并按CNO升序排序.


    正确答案:
    CREATE  VIEW  V-SSC(SNO,SN,CNO,CN,G)
    AS  SELECT  S.SNO,S.SN,SC.CNO,SC.CN,
    SC.G
    FROM  S.SC
    WHERE S.SNO=SC.SNO
    ORDER  BY  CNO;

  • 第10题:

    设有关系S(SNO,SNAME,SEX),C(CNO,CNAME),SC(SNO,CNO,GRADE)。其中SNO为学生号,SNAME为学生姓名,SEX为性别,CNO为课程号,CNAME为课程名。要查询选修“计算机”课的全体女学生姓名的SQL语句是SELECTSNAMEFROMS,C,SCWHERE子句。这里WHERE子句的内容是( )。

    A.S.SNO=SC.SNOandSEX=‘女′andCNAME=‘计算机′
    B.S.SNO=SC.SNOandC.CNO=S
    C.CNOandCNAME=‘计算机′C.SEX=‘女′andCNAME=‘计算机′
    D.S.SNO=SC.SNOandC.CNO=SC.CNOandSEX=‘女′andCNAME=‘计算机′

    答案:D
    解析:
    本题涉及三个表的连接查询,需要求的是WHERE后面的连接条件,首先连接S与SC表,连接条件为S.SNO=SC.SNO;然后再连接C表和SC表,连接条件为C.CNO=SC.CNO。这样就可以将三个表连接起来,但是分析题意,同时还要在连接后所形成的表中满足SEX=‘女′和CNAME=‘计算机′。通过以上分析,连接是同时满足的关系,故应用‘AND′连接。因此.WHERE子句内容应为:S.SNO=SC.SNOandC.CNO=SC.CNOandSEX=‘女′andCNAME=‘计算机′。

  • 第11题:

    学生一选课一课程数据库中的三个基本表: 学生信息表:STUDENT(sno,sname,sex,age,dept)主码为sno 课程信息表:CDLIRSB(cno,cname,teacher)主码为cno 学生选课信息表:SC(sno,cno,grade)主码为(sno,cno) “查询没有学习成绩的学生的学号和课程号”的SQL语句是()

    • A、SELECT snc,cno FROM SC WHERE grade=NULL
    • B、SELECT sno,cno FROM SC WHERE gradeIS’’
    • C、SELECT sno.cno FROM SC WHERE gradeISNULL
    • D、SELECT sno.cno FROM SC WHERE grade=’ ’

    正确答案:C

  • 第12题:

    单选题
    学生一选课一课程数据库中的三个基本表: 学生信息表:STUDENT(sno,sname,sex,age,dept)主码为sno 课程信息表:CDLIRSB(cno,cname,teacher)主码为cno 学生选课信息表:SC(sno,cno,grade)主码为(sno,cno) “查询没有学习成绩的学生的学号和课程号”的SQL语句是()
    A

    SELECT snc,cno FROM SC WHERE grade=NULL

    B

    SELECT sno,cno FROM SC WHERE gradeIS’’

    C

    SELECT sno.cno FROM SC WHERE gradeISNULL

    D

    SELECT sno.cno FROM SC WHERE grade=’ ’


    正确答案: D
    解析: 暂无解析

  • 第13题:

    已知有基本表:学生:S(SNO,SNAME,SEX,DEPT,SAGE)

    课程:C(CNO,CNAME,PCNO)

    选课:SC(SNO,CNO,G)

    1.定义学生选课SC表。在定义模式的同时,要完成如下完整性约束定义:

    ①定义主码②定义参照完整性

    2.查询全体学生的详细记录

    3.查询全体学生的姓名及其学号。

    4.查询年龄在20岁以下的学生姓名和年龄。

    5.查询选修2号课程且成绩在90分以上的所有学生


    参考答案:

  • 第14题:

    数据库中有学生表Student(Sno,Sname,Ssex,Sage,Sdept),各属性分别表示为学号,姓名,性别,年龄,所在系;学生选课表SC(Sno,Cno,Grade),各属性分别表示为学号,课程号以及成绩;课程表 Course(Cno,Cname,Cpno,Ccredit),各属性为课程号.课程名,先行课,学分。(先行课的意思是,比如课程号1有先行课5,说明要选课程1,就必须先选课程5) 。用以上各表完成查询选修了全部课程的学生姓名的语句补充:

    SELETE Sname

    FROM

    5.


    正确答案:NOTEXISTS
    NOTEXISTS

  • 第15题:

    设Student为学生关系,SC为学生选课关系,Sno为学生号,Sname为学生姓名,Cno为课程号,执行下面SQL语句的查询结果是( )。

    A)选出选修Cl课程的学生信息

    B)选出选修Cl课程的学生姓名

    C)选出Student中学生号与SC中学生号相等的信息

    D)选出Student和SC中的一个关系


    正确答案:B
    本题考查SQL中查询语句的知识。在SQL的查询语句中,Select子句用于指定最后结果中的字段,Where子句用于指定查询条件,只有满足条件的元组才会出现在结果中。对于本题来说,由于SeleCt子句后面是Student.Shame,故此查询结果只有学生姓名;Where子句中首先将Student.Sn0和SC.Sno相等的筛选出来,是为两表连接;并且条件SC.Cno='C1'限定了选修的课程号为Cl。

  • 第16题:

    试题基于如下三个关系,其中学生关系student的主码是sno,课程关系course的主码是cno,选课关系SC的主码是(sno,cno)。

    查找学生姓名及其所选修课程的课程号和成绩,正确的SQL语句是( )。

    A)SELECT sname FROM student,SELECT cno,grade FROM sc

    WHERE student.sno=sc.sno

    B)SELECT sname, cno,grade FROM student,course

    WHERE student.sno=course.cno

    C)SELECT sname, cname,grade FROM student,course, sc

    WHERE student.sno=sc.Snoand sc.cno=course.cno

    D)SELECT sname,cno, grade FROM student,sc

    WHERE student.sno=sc.sno


    正确答案:D
    要查询学生姓名,选修课程号及对应成绩,在同一SELECT子句后应包含这三个字段,故选项A)错误;而学生学号是用来关联sc与student表,故在where子句中应有“student.sno=sc.sno”,故选项B)错误;对于选项C),它没有查询课程号,而是查询的课程名,所以错误。

  • 第17题:

    基于如下叙述: 关系模式 Student(Sno,Sname,Cno, Cname,Grade,Tname,Taddr)的属性分别表示学号,学生姓名、课程号、课程名、任课教师名和教师地址。其中,一个学生可以选修若干门课程,一个教师可以讲授若干门课程,一门课程可以有若干教师讲授,一个学生选修一门课程时必须选定讲授课程的教师,教师不会重名。

    关系模式Student 的候选关键码有_________。

    A.1个,为(Sno,Cno)

    B.1个,为(Sno,Cno,Tname)

    C.2个,为(Sno,Sname,Cno)和(Sno,Cno,Tname)

    D.2个,为(Sno,Sname,Cno)和(Sname,Cno,Tname)


    正确答案:B
    解析:因“一个学生选修一门课程时必须选定讲授课程的教师,教师不会重名”,故候选键为:(Sno,Cno,Tname)。

  • 第18题:

    设有关系S(SNO,SNAME,SEX),C(CNO,CNAME),SC(SNO,CNO,GRADE)。其中SNO为学生号,SNAME为学生姓名,SEX为性别,CNO为课程号,CNAME为课程名。要查询选修“计算机”课的全体女学生姓名的SQL语句是SELECTSNAMEFROMS,C,SC WHERE子句。这里WHERE子句的内容是

    A.S.SNO=SC.SNO andSEX='女'andCNAME='计算机'

    B.S.SNO=SC.SNO andC.CNO=SC.CNO andCNAME='计算机'

    C.SEX='女'andCNAME='计算机'

    D.S.SNO=SC.SNO andC.CNO=SC.CNO andSEX='女'andCNAME='计算机'


    正确答案:D
    解析:本题涉及三个表的连接查询,需要求的是WHERE后面的连接条件,首先连接S与SC表,连接条件为S.SNO=SC.SNO;然后再连接C表和SC表,连接条件为C.CNO=SC.CNO。这样就可以将三个表连接起来,但是分析题意,同时还要在连接后所形成的表中满足SEX='女'和CNAME='计算机'。通过以上分析,连接是同时满足的关系,故应用'AND'连接。因此,WHERE子句内容应为:S.SNO=SC.SNOandC.CNO=SC.CNOandSEX='女'andCNAME='计算机'。

  • 第19题:

    ( 11 ) “ 学生 - 选课 - 课程 ” 数据库中的三个关系是:

    S ( sno,shame,sex,age,dept ), C ( cno,cname,teacher ), SC ( sno,cno,grade )

    查找选修 “ 数据库技术 ” 课程的学生的姓名和成绩,用关系代数表达式可表示为


    正确答案:

  • 第20题:

    某学校的学生成绩管理数据库的关系模式如下;

    S(SNO,SNAME,SEX,AGE,DEPT);

    C(CNO,CNAME);

    SC(SNO,CNO,SCORE)

    其中,S表示学生表。它的各字段以此为学号,姓名、性别、年龄和所在学院;C表示课程表,它的各字段依次为课程号、课程名;SC表示成绩表,它的各字段依次为学号、课程号和分数。

    使用SQL语句,查询“计算机学院”所有“男生”的学号,姓名和年龄。

    使用SQL语句,查询选修“计算机网络”课程的学生姓名和分数。

    使用SQL语句,查询所有课程的课程号以及最高分。

    SELECT CNO,MAX(SCORE) FROM SC GROUP BY CNO

    请帮忙给出每个问题的正确答案和分析,谢谢!


    问题 1 答案解析:
    SELECTSNO,SNAME,AGEfromSwhereSEX='男'andDEPT='计算机学院'


    问题 2 答案解析:
    SELECTSNAME,SCOREfromS,SC,CwhereS.SNO=SC.SNOANDSC.CNO=C.CNO


    问题 3 答案解析:
    SELECTCNO,MAX(SCORE)FROMSCGROUPBYCNO


    问题 4 答案解析:
    INSERTINTOC(CNO,CNAME)VALUES(15,'高等数学')

  • 第21题:

    设有学生表S(SNO,SN)(SNO为学生号,SN为姓名)和学生选修课程表SC(SNO,CNO,CN,C)(CNO为课程号,CN为课程名,C为成绩),试用SQL语言完成以下各题 (1)建立一个视图V—SSC(SNO,SN,CNO,CN,C),并按CNO升序排序; (2)从视图V—SSC上查询平均成绩在90分以上的SN、CN和C。 (计算题)


    答案:(1) CREATEVIEWV—SSC(SNO,SN,CNO,CN,G) AS SELECT S.SNO,S.SN,CNO,SC.CN,SC.G FROM S,SC WHERE S.SNO:SC.SNO ORDER BY CNO; (2) SELECT SN,CN,C FROM V—SSC GROUP BY SNO HAVINGAVG?>90;

  • 第22题:

    有三个关系,  student:Sno(学号),Sname(姓名),Ssex(性别),Sage(年龄),Sdept(所在系)。 Course:Cno(课程号),Cname(课程名),Credit(学分),Semester(开课学期),Pcno(直接先修课)。  SC://Sno(学号),Cno(课程号),Grade(成绩)。 试用关系代数表达式完成下列查询:  (1)查询“信息管理系”学生的选课情况,列出学号、姓名、课程号和成绩。  (2)查询“数据库基础”课程的考试情况,列出学生姓名、所在系和考试成绩。  (3)查询考试成绩高于80分的学生的姓名、课程名和成绩。  (4)查询计算机系没选VB的学生姓名。

  • 第23题:

    假定学生关系是S(SNO,SNAME,SEX,AGE),其属性是学号,姓名,性别,年龄;课程关系是C(CNO,CNAME),属性是课程号,课程名;学生选课关系是SC(SNO,CNO,GRADE),属性是学号,课程号,成绩。要查找选修“COMPUTER”课程的“女”学生姓名,将涉及到关系有()、()、(),SQL语句为:SELECT SNAME FROM WHERE S.SNO=SC.SNO AND SC.CNO=C.CNO AND();查询所有课程都及格的学生学号,姓名,SQL语句为:SELECT SNO, SNAME FROM()WHERE() (SELECT * FROM SC WHERE S.SNO=SC.SNO AND ())。


    正确答案:s;sc;c;CNAME=‘computer’and SEX=‘女’;S;NOT EXISTS;GRADE<60