00912互联网数据库

有如下三个关系模式: 学生:S(S#,SN,AGE,SEX) 属性含义依次为:学号,姓名,年龄,性别 课程:C(C#,CN,TEACHER) 属性含义依次为:课程号,课程名,教师 选课:SC(S#,C#,SCORE) 属性含义依次为:学号,课程号,成绩 用SQL语句完成以下题查询所有女同学的学号和姓名

题目

有如下三个关系模式: 学生:S(S#,SN,AGE,SEX) 属性含义依次为:学号,姓名,年龄,性别 课程:C(C#,CN,TEACHER) 属性含义依次为:课程号,课程名,教师 选课:SC(S#,C#,SCORE) 属性含义依次为:学号,课程号,成绩 用SQL语句完成以下题查询所有女同学的学号和姓名

如果没有搜索结果,请直接 联系老师 获取答案。
如果没有搜索结果,请直接 联系老师 获取答案。
相似问题和答案

第1题:

假定有三个关系,学生关系S、课程关系C和学生选课关系SC,它们的结构如下: S(S#,SN,Sex,Age,Dept),C(C#,CN),SC(S#,C#,Grade)。其中,S#为学生号,SN为姓名,Sex为性别,Age为年龄,Dept为系别,C#为课程号,CN为课程名,Grade为成绩。检索选修课程“C2”的学生中成绩最高的学生的学号,正确的SQL.语句是______。

A.SELECT S#FROM SC WHERE C#="C2" AND Grade IN (SELECT Grade FROM SC WHERE C#="C2")

B.SELECT S# FROM SC WHERE C#="C2" AND Grade>= (SELECT Grade FROM SC WHERE C#="C2")

C.SELECT S# FROM SC WHERE C#="C2" AND Grade>=ALL (SELECT Grade FROM SC WHERE C#="C2")

D.SELECT S# FROM SC WHERE C#="C2" AND Gtade NOT IN (SELECT Grade FROM SC WHERE C#="C2")


正确答案:C
解析:SELECT [ALL|DISTINCT]目标列表达式>[,目标列表达式>]…
  FROM 表名或视图名>[,表名或视图名>]
  [WHERE 条件表达式>]
  [GROUP BY列名1>[HAVING条件表达式>]]
  [ORDER BY列名2>[ASC|DESC]…]
  子句顺序为SELECT、FROM、WHERE、GROUP BY、HAVING、ORDER BY,但SELECT和FROM是必须的,HAVING子句只能与GROUP BY搭配起来使用。SELECT子句对应的是关系代数中的投影运算,用来列出查询结果中的属性,其输出可以是列名、表达式、集函数(AVG、COUNT、MAX、MIN、SUM),DISTINCT选项可以保证查询的结果集中不存在重复元组;FROM子句对应的是关系代数中的笛卡儿积,它列出的是表达式求值过程中须扫描的关系;WHERE子句对应的是关系代数中的选择谓词。

第2题:

已知三个数据库表:学生表S、课程表C和学生选课表SC,结构如下:S(S,SN,SEX,AGE,DEPT)C(C,CN)SC(S,C,GRADE)其中S为学号,SN为姓名,SEX为性别,AGE为年龄,DEPT为系别,C为课程号,CN为课程名,GRADE为成绩请写出完成以下任务需要的SQL语句:检索学生姓名及其所修课程的课程号和成绩。


答:SELECT S.SN, SC.C#,SC.GRADE
FROM S,SC
WHERE S.S#=SC.S#

第3题:

(一)编写SQL语句

以下各小题题基于教学数据库的三个基本表

学生 S(S#,SNAME,AGE,SEX)

学习 SC(S#,C#,GRADE)

课程 C(C#,CNAME,TEACHER)

1. 试用元组表达式和关系代数表达式表示下列查询语句:检索年龄小于23岁的男同学的姓名和学号。

2. 试用SQL的查询语句表达下列查询: 检索"王兰"同学不学的课程的课程号。

3. 试用SQL的查询语句表达下列查询: 检索全部学生都选修的课程的课程号与课程名。

4.试用SQL更新语句表达以下更新操作:把低于总平均成绩的女同学成绩提5%。


答案:

  1. 元组表达式:{t|(?u)(S(u)∧u[3]<23∧u[4]='男'∧t[1]=u[1]∧t[2]=u[2])}

    关系代数表达式:πS#,SNAMEAGE<23SEX='男'(S))

  2. select C# from C where C# not in(select C# from SC where S# in(select S# from S where SNAME='王兰'))

  3. select C#,CNAME from C where not exists(select * from S where not exists(select * from SC where SC.S#=S.S# and SC.C#=C.C#))

  4. update SC set GRADE=GRADE*1.05 where GRADE<(select AVG(GRADE) from SC) and S# in(select S# from S where SEX='女')


第4题:

S(S#,SN,SEX,AGE,DEPT) C(C#,CN) SC(S#,C#,GRADE)其中:S#为学号,SN为姓名,SEX为性别,AGE为年龄,DEPT为系别,C#为课程号, CN为课程名,GRADE为成绩。检索所有比“王华”年龄大的学生姓名、年龄和性别。正确的SELECT语句是______。

A.SELECT SN,AGE,SEX FROM S WHERE AGE>(SELECT AGE FROM S WHERE SN='王华')

B.SELECT SN, AGE, SEX FROM S WHERE SN='王华'

C.SELECT SN,AGE,SEX FROM S WHERE AGE>(SELECT AGE WHERE SN='王华')

D.SELECT SN,AGE,SEX FROM S WHERE AGE>王华AGE


正确答案:A
解析:选项B查询的结果是显示出姓名为王华的学生姓名、年龄、和性别。
选项C在嵌套的SELECT语句中缺少必要的短语FROM。
选项D格式不正确。

第5题:

已知三个数据库表:学生表S、课程表C和学生选课表SC,结构如下:S(S,SN,SEX,AGE,DEPT)C(C,CN)SC(S,C,GRADE)其中S为学号,SN为姓名,SEX为性别,AGE为年龄,DEPT为系别,C为课程号,CN为课程名,GRADE为成绩请写出完成以下任务需要的SQL语句:检索选修课程'C2'的学生中成绩最高的学生的学号。


答:SELECT S#
FROM SC
WHERE C#='C2' AND GRAGE >=ALL(SELECT GRADE
FROM SC
WHERE C#='C2')

第6题:

设有学生表S(学号,姓名,性别,年龄)、课程表C(课程号,课程名,学分)和学生选课表SC(学号,课程号,成绩),检索学号、姓名和学生所选课程的课程名和成绩,正确的SQL命令是______。

A.SELECT 学号,姓名,课程名,成绩 FROM S,SC,C WHERE S.学号=SC.学号 AND SC.学号=C.学号

B.SELECT 学号,姓名,课程名,成绩 FROM(S JOIN SC ON S.学号=SC.学号) JOIN C ON SC.课程号=C.课程号

C.SELECT S.学号,姓名,课程名,成绩 FROM S JOIN SC JOIN C ON S.学号=SC.学号 ON SC.课程号=C.课程号

D.SELECT S.学号,姓名,课程名,成绩 FROM S JOIN SC JOIN C ON SC.课程号=C.课程号 ON S.学号=SC.学号


正确答案:D
解析:此题是一个联接查询,联接查询是一种基于多个关系的查询。在SQL查询语句中建立两表间的连接可使用JOIN关键字连接其左右两个表名>所指的表,JOIN为普通连接,在Visual FoxPro中称为内部连接,即只有满足连接条件的记录才出现在查询结果中。用ON子句指定连接条件:也可以一次性在WHERE子句中指定连接条件和筛选条件。格式如下:
  SELECT 目标列表达式>
  FROM[[表名1>|视图名1>][[INNE]
  JOIN 表名2>|视图名1>]...ON连接条件>]...
  FROM[[数据库名>]owner>{表名>|视图名>}
  [,[[数据库名>.]owner>{表名>|视图名>}...
  [WHERE条件表达式>]
  [GROUP BY列名1>
  [HAVING内部函数表达式>]]
  [ORDER BY列名2> {ASC/DESC}]
所以A、B选项错误,如果先连接学生表S和学生选课表SC,会造成结果中有不符合要求的多余记录,所以C选项错误。

第7题:

已知三个数据库表:学生表S、课程表C和学生选课表SC,结构如下:S(S,SN,SEX,AGE,DEPT)C(C,CN)SC(S,C,GRADE)其中S为学号,SN为姓名,SEX为性别,AGE为年龄,DEPT为系别,C为课程号,CN为课程名,GRADE为成绩请写出完成以下任务需要的SQL语句:检索所有比'王华'年龄大的学生姓名、年龄和性别。


答:SELECT SN,AGE,SEX
FROM S
WHERE AGE>(SELECT AGE
FROM S
WHERE SN='王华')

第8题:

●已知基本表:学生(学号,姓名,性别,年龄,系名)

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

要检索所有比"王华"年龄大的学生姓名、年龄和性别,正确的语句是 (25) ,要检索学生姓名及其所选修课程的课程号和成绩,正确的语句是 (26) 。

(25) A.SELECT姓名,年龄,性别

FROM学生

WHERE AGE>(SELECT 年龄

FROM 学生

WHERE 姓名 ="王华")

B.SELECT姓名,年龄,性别

FROM学生

WHERE姓名="王华"

C.SELECT姓名,年龄,性别

FROM学生

WHERE AGE>(SELECT年龄

WHERE姓名="王华")

D.SELECT姓名,年龄,性别

FROM学生

WHERE AGE>"王华"

(26) A.SELECT 学生.姓名,选课.课程号,选课.成绩

FROM学生

WHERE学生 学号=课程.学号

B.SELECT学生.姓名,选课.课程号,选课.成绩

FROM选课

WHERE学生.学号=课程.学号

C.SELECT学生.姓名,选课.课程号,选课.成绩

FROM学生,选课

WHERE学生.学号=课程.学号

D.SELECT学生.姓名,选课.课程号,选课.成绩

FROM学生.学号


正确答案:A,C
【解析】分句WHERE AGE>(SELECT 年龄 FROM 学生 WHERE 姓名 ="王华")限定了结果记录年龄比王华大。B、C、D项该分句均不正确。26题考查了连接操作,A、B的FROM字段错误。D项缺少连接字段。

第9题:

设数据库中有四个关系

课程关系C(C,CNAME,TNAME)

学生关系S(S,SNAME,AGE,SEX)

选课关系SC(S,C,SCORE)

其中课程关系中各属性分别表示为课程号,课程名,以及相应的课程任课老师名;学生关系中各属性分别为学号,学生姓名,年龄以及性别;用SQL语句完成下面的各个问题:

①创建学生关系S,其中S为主码,SEX只能取F和M两个值,其他的属性不为空

②检索年龄小于17岁的女生的学号和姓名

③检索WANG同学不学的课程的课程


正确答案:①使用CREATE建立表使用CHECK短语来指定列值应该满足的条件。 CREATE TABLE SC (S#char(10) PRIMARY KEY SNAME char(20) NOT NULL AGE int NOT NULL SEX char(2) check(SEX in('F''M') ); ② SELECT S#SNAME FROM S WHERE AGE17 AND SEX='F'; ③ SELECT C#
①使用CREATE建立表,使用CHECK短语来指定列值应该满足的条件。 CREATE TABLE SC (S#char(10) PRIMARY KEY, SNAME char(20) NOT NULL, AGE int NOT NULL, SEX char(2) check(SEX in('F','M') ); ② SELECT S#,SNAME FROM S WHERE AGE17 AND SEX='F'; ③ SELECT C#

第10题:

S(S#,sN,SEX,AGE,DEPT)

C(C#,CN)

SC(S#,C#,GRADE)其中;S#为学号,SN为姓名,SEX为性别,AGE为年龄,.DEPT为系别,C#为课程号, CIg为课程名,GRADE为成绩。检索所有比“王华”年龄大的学生姓名、年龄和性别正确的SELECT语句是 ______。

A.SELECT SN,AGE,SEX FROM S WHERE AGE>(SELECT AGE FROM:S WHERE SN='王华')

B.SELECT SN,AGE,SEX FROM S WHERE SN='王华'。

C.SELECT SN,AGE,SEX FROM S WHERE AGE>(SELECT AGE WHERE SN='王华')

D.SELECT SN,AGE,SEX FROM S WHERE AGE>王华 AGE


正确答案:A
解析:选项B查询的结果是显示出姓名为王华的学生姓名、年龄、和性别。选项C在嵌套的SELECT语句中缺少必要的短语FROM。选项D格式不正确。

更多相关问题