欢迎您访问365答案网,请分享给你的朋友!
生活常识 学习资料

在SQLServer2000的某数据库中有如下两张关系表: 学生表(学号,姓名,性别,系号),学号为主码 系表

时间:2017-08-18

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

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

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

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

DECLARE @DePtID varchar(10)

DECLARE @cnt int

set @cnt=O

DECLARE cursor1 cursor FOR SELEET系号FROM系表

WHERE系名LIKE'%电%'

OPEN cursorl

FETCH NEXT FROM cursor1 INTO @DePtID

WHILE @@FETCH_STATUS=O

BEGIN

DECLARE @temp_cnt int

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

set @Cnt=@cnt+@temp_cnt

FETCH NEXT FROM cursor1 INTO ODePtID

END

CLOSE cursor1

DEALLOCATE cursor1

SELECT @cnt

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

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

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

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

答案说明:本题目答案来自网络整理或转载,最终答案请以官网为准。


答 案:第一句能第二局不能系名的重复率太高姓名的重复率低。
第一句能,第二局不能,系名的重复率太高,姓名的重复率低。

Copyright © 2016-2020 www.365daan.com All Rights Reserved. 365答案网 版权所有 备案号:

部分内容来自互联网,版权归原作者所有,如有冒犯请联系我们,我们将在三个工作时内妥善处理。