[主观题]

在SQLServer2000的某数据库中有如下两张关系表:

学生表(学号,姓名,性别,系号),学号为主码

系表(系号,系名,系简称),系号为主码

①在数据库中执行如下T-SQL代码:

D.ECLARE @DePtID varchar(10)

D.ECLARE @cnt int

set @cnt=O

D.ECLARE cursor1 cursor FOR SELEET系号FROM系表

WHERE系名LIKE'%电%'

OPEN cursorl

F.ETCH NEXT FROM cursor1 INTO @DePtID

WHILE @@FETCH_STATUS=O

B.EGIN

D.ECLARE @temp_cnt int

sELECT @temp_cnt=COUNT(*)FROM学生表WHERE系号=@DeptID

set @Cnt=@cnt+@temp_cnt

F.ETCH NEXT FROM cursor1 INTO ODePtID

E.ND

C.LOSE cursor1

D.EALLOCATE cursor1

SELECT @cnt

执行过程中发现速度比较慢,为了解决性能问题,需在功能不变的情况下,将此T-SQL代码改为一条SQL语句,请写出此SQL语句(语句中不能含有子查询)并说明为什么此种修改可以提高性能。

②设在学生表的(姓名,系号)列上建有一个复合索引,该索引是否有助于提高下列两个语句的查询效率?并说明原因。

SELECT*FROM学生表 WHERE系号=‘1’;

SELEET*FRoM学生表WHERE姓名=‘张三’;

参考答案与解析:

相关试题

某学校的教学信息关系数据库中有如下两个表:学生表(学号,姓名,性别,专业)成绩表

[试题]某学校的教学信息关系数据库中有如下两个表:学生表(学号,姓名,性别,专业)成绩表(学号,课程名,分数)用SQL语句表达下述查询:(a)检索分数高于80分的所有学生的学号和分数。(b)检索选修了“高等数学”课程的所有学生的学号。

  • 查看答案
  • 某SQL Server 2000数据库中有两张表:商品表(商品号,商品名,商品类

    [主观题]某SQL Server 2000数据库中有两张表:商品表(商品号,商品名,商品类别,成本价)和销售表 (商品号,销售时间,销售数量,销售单价)。用户需统计指定年份每类商品的销售总数量和销售总利润,要求只列出销售总利润最多的前三类商品的商品类别、销售总数量和销售总利润。为了完成该统计操作,请按要求将下面的存储过程补充完整。C.REATE PROC p_Sum@year INTA.SSELECT (13) WITH TIRS商品类别,SUM(销售数量)AS销售总数量13.

  • 查看答案
  • 基于学生表S和学生选课表SC两个数据库表,它们的结构如下: S(学号,姓名,性别

    [单选题]基于学生表S和学生选课表SC两个数据库表,它们的结构如下: S(学号,姓名,性别,年龄),其中学号、姓名和性别为C型字段,年龄为N型字段; SC(学号,课程号,成绩),其中学号和课程号为C型字段,成绩为N型字段。 查询同时选修课程号分别为2001和2005课程的学生的学号,正确的命令是( )。A. SELECT学号FROM SC WHERE课程号='2001'AND学号IN(SELECT学号FROM SC WHERE课程号='2005’)B. SELECT学号FROM SC WHERE课程

  • 查看答案
  • 基于“学生—选课—课程”数据库中有三个表:学生表(s)包含字段学号(S#)、姓名

    [多选题] 基于“学生—选课—课程”数据库中有三个表:学生表(s)包含字段学号(S#)、姓名(sname)、性别(sex)、年龄(age);选课表(SC)包含字段课程号(c#)、学号(S#)、成绩(GRADE);课程表(c)包含字段课程号(C#)、课程名(cname)、教师(teacher)。现要将学生的学号及其平均成绩定义为一个视图,在定义该视图是,所有的SELECT语句将出现()子句。A . fromB . orderbyC . groupbyD . where

  • 查看答案
  • 第(34)~(35)题使用如下3个数据库表: 学生表:S(学号,姓名,性别,

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

  • 查看答案
  • 在SQLServer2000中,简单的数据库可以(  )

    [单选题]在SQLServer2000中,简单的数据库可以(  )A.只有一个主数据文件和一个事务日志文件B.只有一个辅助数据文件和一个事务日志文件C.只有一个

  • 查看答案
  • SQLServer2000是Microsoft公司推出的SQLServer数据库

    [主观题]SQLServer2000是Microsoft公司推出的SQLServer数据库管理系统,它具有使用方便、可伸缩性好和与相关软件集成程度高等优点,可以在任何操作平台中运行和使用。()

  • 查看答案
  • 在SQLSERVER2000中,打开数据库的命令是(  )

    [单选题]在SQLSERVER2000中,打开数据库的命令是(  )A.OPENB.CREATEC.USED.OPENBASE

  • 查看答案
  • 有如下关系数据库:学生(学号,姓名,性别,专业、奖学金)课程(课程号,名称,学分

    [试题]有如下关系数据库:学生(学号,姓名,性别,专业、奖学金)课程(课程号,名称,学分)学习(学号,课程号,分数)用sQL语言完成下列操作:1)检索没有任何一门课程成绩在80分以下的所有学生的信息,包括学号、姓名和专业;2)检索没有获得奖学金、同时至少有一门课程成绩在95分以上的学生信息,包括学号、姓名和专业;3)对成绩得过满分(100分)的学生,如果没有获得奖学金的,将其奖学金设为1000元;4)定义学生成绩得过满分(100分)的课程视图AAA,包括课程号、名称和学分。

  • 查看答案
  • 第(34)~(35)题使用如下三个数据库表: 学生表:S(学号,姓名,性别,出生

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

  • 查看答案
  • 在SQLServer2000的某数据库中有如下两张关系表: 学生表(学号,姓名,