查询没学过“谌燕”老师课的同学的学号、姓名

题目
查询没学过“谌燕”老师课的同学的学号、姓名


相似考题
更多“查询没学过“谌燕”老师课的同学的学号、姓名”相关问题
  • 第1题:

    已知表S(学号,姓名,年龄)

    SC(学号,课程号,成绩)

    C(课程号,课程名,教师名)

    试用SQL查询语句表达下列对教学数据库中的三个基本表S、SC、C的查询:

    (1)统计有学生选修的课程门数.

    (2)求选修C4课程的学生的平均年龄.

    (3)求王平老师所授课程的每门课程的学生平均成绩.

    (4)统计每门课程的学生选修人数(超过10人的课程才统计).要求输出课程号和选修人数.

    (5)查询姓名以WANG开头的所有学生的姓名和年龄.


    正确答案:
    (1)SELECT  COUNT(DISTINCT课程号)
          ROM  SC;
    (2)SELECT  AVG(年龄)
          FROM  S,SC
          WHERE课程号=“C4”AND S.学号=SC.
          学号;
    (3)SELECTSC.课程号,课程名,AVG(成绩)
          FROM  SC,C
          WHERE  SC.课程号=C.课程号AND
          C.教师名=“王平”
           GROUP  BY  SC.课程号;
    (4)SELECT课程号,COUNT(学号)
           FROM  SC
          GROUP  BY课程号
           HAVING  COUNT(*)>10;
    (5)SELECT 姓名,年龄
            FROM  S
           WHERE 姓名 LIKE“WANG*”:

  • 第2题:

    设某数据库中有学生表(学号,姓名,所在系)和选课表(学号,课程号,成绩)。现要查询没选课的学生姓名和所在系。下列语句中能够实现该查询要求的是( )。

    A.SELECT姓名,所在系FROM学生表a LEFT JOIN选课表bON a.学号=b.学号WHERE a.学号IS NULL

    B.SELECT姓名,所在系FROM学生表a LEFT JOIN选课表bON a.学号=b.学号WHERE b.学号IS NULL

    C.SELECT姓名,所在系FROM学生表a RIGHT JOIN选课表bON a.学号=b.学号WHERE a.学号IS NULL

    D.SELECT姓名,所在系FROM学生表a RIGHT JOIN选课表bON a.学号=b.学号WHERE b.学号IS NULL


    正确答案:B
    从数据库中查出没有选课的学生姓名和所在系,则在学生表中查出选课表中没有的学生即可。在这里采用LEFTJOIN来连接查询。并且要求选课表中的学生学号为NULL。

  • 第3题:

    查询选修课程号为“101”的课程得分最高的同学,正确的SQL语句是( )。

    A.SELECT学生.学号,姓名FROM学生,选课 WHERE学生.学号=选课.学号 AND课程号=”101”AND成绩>=A11(SELECT成绩FROM选课)

    B.SELECT学生.学号,姓名FROM学生,选课 WHERE学生.学号=选课.学号 AND成绩>=A11(SELECT成绩FROM选课 WHERE课程号=”101”)

    C.SELECT学生.学号,姓名FROM学生,选课WHERE学生.学号=选课.学号 AND成绩>:=:A11(SELECT成绩FROM选课 WHERE课程号=”101”)

    D.SELECT学生.学号,姓名FROM学生,选课WHERE学生.学号一选课.学号AND 课程号一”101”AND成绩>=A11(SELECT成绩FROM选课WHERE课程号一”101”)


    正确答案:D
    本题采用嵌套查询。其中,ALL表示所有的结果。

  • 第4题:

    请教:北京华建集团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;

  • 第5题:

    设有表示学生选课的三张表,学生S(学号,姓名,性别,年龄,身份证号),课程C(课号,课名),选课SC(学号,课号,成绩),则表SC的关键字(键或码)为( )。

    A)课号,成绩

    B)学号,成绩

    C)学号,课号

    D)学号,姓名,成绩


    正确答案:C

  • 第6题:

    查询所有同学的学号、姓名、选课数、总成绩


    答案:

  • 第7题:

    查询学过“谌燕”老师所教的所有课的同学的学号、姓名


    答案:

  • 第8题:

    设有表示学生选课的三张表:学生S(学号,姓名,性别,年龄,身份证号),课程C(课号,课名),选课SC(学号,课号,成绩),则表SC的关键字(键或码)为(  )。

    A.课号.成绩

    B.学号,成绩

    C.学号.课号

    D.学号,姓名.成绩

    答案:C
    解析:
    学号是学生表S的主键,课号是课程表C的主键,所以选课表SC的关键字就应该是与前两个表能够直接联系且能唯一定义的学号和课号。故选C。

  • 第9题:

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

  • 第10题:

    假定有关系学生(学号、姓名、年龄、班级号),课程(课程号、课称名、学分),考试(学号、课程号、成绩),查询20岁的学生的学号、姓名和年龄。使用()关系。

    • A、学生
    • B、考试
    • C、学生和课程
    • D、课程

    正确答案:A

  • 第11题:

    单选题
    查询所修课程成绩都大于等于85分的学生的学号和姓名,正确的命令是(  )。
    A


    SELECT学号,姓名FROM student s WHERE NOT EXISTS
    SELECT*FROM score sc WHERE sc.学号=s.学号AND成绩<85)

    B


    SELECT学号,姓名FROM student s WHERE NOT EXISTS
    SELECT*FROM score sc WHERE sc.学号=s.学号AND成绩>=85)

    C


    SELECT学号,姓名FROM student s.score sc
    WHERE s.学号=sc.学号AND成绩>=85

    D


    SELECT学号,姓名FROM student s.score sc
    WHERE s.学号=sc.学号AND ALL成绩>=85


    正确答案: D
    解析:
    要查找所修课程成绩都大于等于85分的学生的学号和姓名,意思就是没有一门课程的成绩低于85分。B项表示没有一门课程的成绩高于85分,与题意相悖。C项表示只要有一门课程的成绩低于85就成立,D项中ALL用法错误。

  • 第12题:

    单选题
    有学生表:S学号,姓名,性别,专业),查询"英语专业所有女同学姓名"的SQL语句是()
    A

    SELECT*FROMS

    B

    SELECT*WHERESFROM专业=英语

    C

    SELECT姓名WHERESFROM专业=英语AND性别=女

    D

    SELECT姓名FROMSWHERE专业=英语AND性别=女


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

  • 第13题:

    查询选修C2课程号的学生姓名,下列SQL语句中错误的是 ______。

    A.SELECT 姓名 FROM S WHERE EXISTS (SELECT*FROM SC WHERE 学号=S.学号 AND 课程号='C2')

    B.SELECT 姓名 FROM S WHERE 学号 IN (SELECT 学号 FROM SC WHERE 课程号='C2')

    C.SELECT 姓名 FROM S JOIN SC ON S.学号=SC.学号 WHERE 课程号='C2'

    D.SELECT 姓名 FROM S WHERE 学号= (SELECT 学号 FROM SC WHERE 课程号='C2')


    正确答案:D
    解析:要求查询选修C2课程号的学生的姓名,姓名字段在S表中,而课程号在SC表中,可知查询的结果来自一张表,而条件来自另一张表,所以这里可以用简单的连接查询或者用嵌套查询。
      选项A使用谓语EXISTS进行查询,EXISTS或NOT EXISTS是用来检查在子查洵中是否有结果返回(即存在元组或不存在元组)。选项A先查询出SC表中选修了C2课程的所有信息,并指定SC表和S表通过学号公共字段建立联系,接着查询出姓名字段所对应的值,这种查询是可以达到目的的。
      选项B是一个嵌套查询,首先在SC表中查出选修了C2课程的学生的学号,接着找出这些学号在S表中所对应的学生的姓名,从而查询出选修了C2课程的学生的姓名。
      选项C是一个连接查询,SC表和S表首先通过学号字段建立连接,再找出选修了C2课程的学生的姓名。
      选项D中先找出选修了C2课程的学生的学号,因为选修C2课程的学生可能不止一个,因此不能直接用“=”号,而应该用“IN",IN相当于集合运算符∈,所以选项D是错误的。

  • 第14题:

    已知关系模式:

    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”号课的成绩


    正确答案:
     

  • 第15题:

    设有表示学生选课的三张表,学生S(学号,姓名,性别,年龄,身份证号),课程C(课程号,课名),选课SC(学号,课号,成绩),则表SC的关键字(键或码)为

    A.课号,成绩

    B.学号,成绩

    C.学号,课号

    D.学号,姓名,成绩


    正确答案:C
    解析:“选课表”SC是“学生表”S和“课程表”C的映射表,主键是两个表主键的组合。

  • 第16题:

    ( 33 )查询选修课程号为 “ 101 ” 课程得分最高的同学,正确的 SQL 语句是

    A) SELECT 学生 . 学号 , 姓名 FROM 学生 , 选课 WHERE 学生 . 学号 = 选课 . 学号

    AND 课程号 = "101" AND 成绩 >=ALL(SELECT 成绩 FROM 选课 )

    B) SELECT 学生 . 学号 , 姓名 FROM 学生 , 选课 WHERE 学生 . 学号 = 选课 . 学号

    AND 成绩 >=ALL(SELECT 成绩 FROM 选课 WHERE 课程号 = "101" )

    C) SELECT 学生 . 学号 , 姓名 FROM 学生 , 选课 WHERE 学生 . 学号 = 选课 . 学号

    AND 成绩 >=ANY(SELECT 成绩 FROM 选课 WHERE 课程号 = "101" )

    D) SELECT 学生 . 学号 , 姓名 FROM 学生 , 选课 WHERE 学生 . 学号 = 选课 . 学号

    AND 课程号 = "101"AND 成绩 >=ALL(SELECT 成绩 FROM 选课 WHERE 课程号 = "101" )


    正确答案:B

  • 第17题:

    查询课程编号“c002”的成绩比课程编号“c001”课程低的所有同学的学号、姓名


    答案:

  • 第18题:

    查询学过“c001”并且也学过编号“c002”课程的同学的学号、姓名


    答案:

  • 第19题:

    查询所有课程成绩小于60 分的同学的学号、姓名


    答案:

  • 第20题:

    若学生表中存储了学号、姓名、成绩等信息,则“查询学生表中所有学号和姓名”的SQL语句是( )。

    A.SELECT*FROM学生
    B.SELECT学号,姓名FROM学生
    C.SELECT学号姓名FROM学生
    D.SELECT学号、姓名FROM学生

    答案:B
    解析:

  • 第21题:

    假设某教学管理数据库有以下三张表,请写出下列问题的SQL语句:    学生(学号,姓名,年龄,性别)    课程(课程号,课程名,任课教师) 成绩(学号,课程号,成绩) (1)如何在SQL Server上创建这三张表; (2)查询刘峰教师所授课程号,课程名; (3)查询年龄大于20岁的所有男同学的学号、姓名; (4)查询至少选修了两门课程(含两门)的学生学号; (5)查询王文芳同学选修的所有课程的课程号; (6)查询王文芳同学不学的课程的课程号; (7)查询所有上刘峰老师课程的学生学号; (8)查询所有选修“数据库原理”的学生的学号; (9)向学生表中插入一条记录(’2003001’,’吴红’,21,’女’);(1表示女,0表示男) (10)删除三张表中所有学号为20020001的学生信息; (11)把学号为20030002的学生的年龄改为22岁。
    1.学生表:
    Create table 学生表 (   
    学号 char (8) primary Key,   
    姓名 char(8),   
    年龄 int,   
    性别 bit

       
    课程表:
    Create table 课程表 (   
    课程号 char (7) primary Key, 
    课程名 char(20),   
    任课教师 char (8)

       
    成绩表:
    Create table 成绩表 (   
    学号 char (8),  
    课程号 char (7),   
    成绩 Numeric (4,2)

    2.Select课程号, 课程名 from课程表 where任课教师=’ 刘峰’
    3.Select 学号, 姓名 from 学生表 where 性别=1 and 年龄>20
    4.select 学号 from 成绩   group by 学号   having count(学号)>=2 
    5.Select 课程号 from 成绩表, 学生表 
      Where学生表.姓名=’ 王文芳’ and 学生表.学号=成绩表.学号
    6.select 课程号 from 成绩表 
      where 课程号 not in (select 课程号 from 学生表,成绩表 where 学生表.姓名='王文芳' and 学生表.学号=成绩表.学号)
    7.Select 学号 from 成绩表,课程表,学生表 
      Where 课程表.任课教师='刘世峰' and 课程表.课程号=成绩表.课程号 and 课程表.学号=成绩表.学号
    8.Select 学号 from 成绩表,课程表 
      where 课程表.课程名='数据库技术' and 课程表.课程号=成绩表.课程号
    9.insert into 学生表 values ('2003001','吴红','21',1) 
    10.Delete from学生表 where 学号=’ >20020001’   
    Delete from学生表 where 学号=’ 20020001’ 
    11. Update 学生表 set 年龄=’22’ where学号=’20030002’

  • 第22题:

    设有学生选课的三张表,学生S(学号,姓名,性别,年龄,身份证号),课程C(课号,课名),选课SC(学号,课号,成绩),则表SC的关键字为()

    • A、课号,成绩
    • B、学号,成绩
    • C、学号,课号
    • D、学号,姓名,成绩

    正确答案:C

  • 第23题:

    单选题
    设有学生选课的三张表,学生S(学号,姓名,性别,年龄,身份证号),课程C(课号,课名),选课SC(学号,课号,成绩),则表SC的关键字为()
    A

    课号,成绩

    B

    学号,成绩

    C

    学号,课号

    D

    学号,姓名,成绩


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