计算机二级

“学生”表中学生号为主索引,若用SQL命令检索所有比“孙静”年龄大的同学,下列语句正确的是( )。A. SELECT*FROM学生; WHERE 年龄>(SELECT 年龄 FROM学生; WHERE 姓名=“孙静”)B.SELECT*FROM学生; WHERE 姓名=“孙静”C. SELECT*FROM 学生: WHERE 年龄>(SELECT 年龄; WHERE 姓名=“孙静”)D.SELECT*FROM 学生: WHERE 年龄>“孙静”

题目

“学生”表中学生号为主索引,若用SQL命令检索所有比“孙静”年龄大的同学,下列语句正确的是( )。

A. SELECT*FROM学生; WHERE 年龄>(SELECT 年龄 FROM学生; WHERE 姓名=“孙静”)

B.SELECT*FROM学生; WHERE 姓名=“孙静”

C. SELECT*FROM 学生: WHERE 年龄>(SELECT 年龄; WHERE 姓名=“孙静”)

D.SELECT*FROM 学生: WHERE 年龄>“孙静”

参考答案和解析
正确答案:A
解析:本题是一个嵌套循环查询的语句,内层循环是检索出“孙静”的年龄,外层循环用WHERE语句检索出比“孙静”年龄大的同学,外层循环结果依赖于内层查询。
如果没有搜索结果,请直接 联系老师 获取答案。
相似问题和答案

第1题:

在第27题表中,若用SQL命令检索所有比“刘勋”年龄大的职工记录,下列语句正确的是______。

A.SELECT*FROM职工; WHERE年龄>(SELECT年龄FROM职工; WHERE姓名=“刘勋”)

B.SELECT*FROM职工; WHERE姓名=“刘勋”

C.SELECT*FROM 职工; WHERE年龄>(SELECT年龄; WHERE姓名=“刘勋”)

D.SELECT*FROM职工; WHERE年龄>“刘勋”


正确答案:A

第2题:

有下列SQL语句:

SELECT 班级名称,姓名,性别,年龄 FROM 班级,学生;WHERE 班级.班级号=学生.班级号; AND 姓名 LIKE"李%"; ORDER BY 学生.班级号

该语句的含义是( )。

A.检索学生表中姓“李”的学生记录,并根据“班级号”分组显示学生的班级名称、姓名、性别和年龄

B.检索学生表中不是姓“李”的学生记录,并根据“班级号”分组显示学生的班级名称、姓名、性别和年龄

C.检索学生表中姓“李”的学生记录,按“班级号”升序显示学生的班级名称、姓名、性别和年龄

D.检索学生表中不是姓“李”的学生记录,按“班级号”升序显示学生的班级名称、姓名、性别和年龄


正确答案:C
解析:该SQL语句的功能是,检索学生表中姓“李”的学生记录,要求显示该生的班级名称、姓名、性别和年龄,并按“班级号”升序排序。这里的LIKE是字符匹配运算符,“%”是通配符,表示与若干个任意字符匹配;另外,还可以使用“”通配符表示与一个任意字符匹配。ORDER BY是排序短语,默认的排序方式是按升序排序。

第3题:

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

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

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

A.SELECT姓名,年龄,性别 FROM学生 WHERE AGE>(SELECT年龄 FROM学生 WHERE姓名=“王华”)

B.SELECT姓名,年龄,性别 FROM学生 WHERE姓名:“王华”

C.SELECT姓名,年龄,性别 FROM学生 WHERE AGE>(SELECT年龄 WHERE姓名=“王华”)

D.SELECT姓名,年龄,性别 FROM学生 WHERE AGE>“王华”


正确答案:A

第4题:

“职工”表结构为(职工号N(3),姓名C(3),性别C(1),年龄N(2)),职工号为主索引,若用SQL命令INSERT插入一个记录,下面语句正确的是______。

A.(“002”,“刘勋”,“男”,“22”)

B.(002,“刘勋”NULL,22)

C.(NULL,“刘勋”,“男”,“22”)

D.(002,刘勋,男,22)


正确答案:B

第5题:

“学生”表中学生号为主索引,若用SQL命令INSERT插入一个记录,下面语句正确的是( )。

A.(“002”,“孙静”,“女”,“22”)

B.(002,“孙静”,NULL,22)

C.(NULL,“孙静”,“女”,“22”)

D.(002,孙静,女,22)


正确答案:B
解析:用SQL命令INSERT插入记录时,圆括号内的值在主索引上不能为空,而且字符型类型的值要加上双引号。

第6题:

有如下SQL语句: SELECT班级名称,姓名,性别,年龄FROM班级,学生 WHERE班级.班级号=学生.班级号 AND姓名.LIKE”李%“ ORDER BY学生.班级号 该语句的含义是( )。

A.检索学生表中姓“李”的学生记录.并根据“班级号”分组显示学生的班级名称、姓名、性别和年龄

B.检索学生表中不是姓“李”的学生记录,并根据“班级号”分组显示学生的班级名称、姓名、性别和年龄

C.检索学生表中姓“李”的学生记录,按“班级号”升序显示学生的班级名称、姓名、性别和年龄

D.检索学生表中不是姓“李”的学生记录,按“班级号”升序显示学生的班级名称、姓名、性别和年龄


正确答案:C
C。【解析】该SQL语句的功能是,检索学生表中姓“李”的学生记录,要求显示该生的班级名称、姓名、性别和年龄,并按“班级号”升序排序。这里的LIKE是字符匹配运算符,“%”是通配符,表示与若干个任意字符匹配;另外,还可以使用“~”通配符表示与一个任意字符匹配。0RDERBY是排序短语,默认的排序方式是按升序排序。

第7题:

设有学生表XS(学号,课程号,成绩),用SQL语句检索每个学生的成绩总和的语句是:

SELECT 学号,SUM(成绩) FROM XS ______


正确答案:GROUP BY 学号
GROUP BY 学号 解析:在实际的应用中,除了简单的计算查询外,我们还可以加上GROUP BY子句进行分蛆计算查询。
通常来说,一个计算函数的范围是满足WHERE子句指定条件的所有记录。当加上GROUP BY于句后,系统会将查询结果按指定列分成集合组。当一个计算函数和一个GROUP BY子句一起使用时,计算函数的范围变为每组所有的记录。也就是说,一个结果是由组成一组的每个记录集合产生的。
检索每个学生的成绩总和时,需按学号进行分组计算。

第8题:

有如下SQL语句: SELECT班级名称,姓名,性别,年龄FROM班级,学生; WHERE班级.班级号=学生.班级号; AND姓名LIKE"李%"; ORDER BY学生.班级号 该语句的含义是( )。

A.检索学生表中姓“李”的学生记录,并根据“班级号”分组显示学生的班级名称、姓名、性别和年龄

B.检索学生表中不是姓“李”的学生记录,并根据“班级号”分组显示学生的班级名称、姓名、性别和年龄

C.检索学生表中姓“李”的学生记录,按“班级号”升序显示学生的班级名称、姓名、性别和年龄

D.检索学生表中不是姓“李”的学生记录,按“班级号”升序显示学生的班级名称、姓名、性别和年龄


正确答案:C
解析:该SQL语句的功能是,检索学生表中姓“李”的学生记录,要求显示该生的班级名称、姓名、性别和年龄,并按“班级号”升序排序。这里的LIKE是字符匹配运算符,“%”是通配符,表示与若干个任意字符匹配;另外,L-EN以使用“-”通配符表示与一个任意字符匹配。ORDER BY是排序短语,默认的排序方式是按升序排序。

第9题:

(一)编写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='女')