SQL数据库管理与应用习题与答案 联系客服

发布时间 : 星期五 文章SQL数据库管理与应用习题与答案更新完毕开始阅读f394c1010740be1e650e9a9c

51 52 52 58 67 67 69 69 105 101 203 102 207 215 105 203 42 20 13 9 34 4 36 15 15 15 7 5 12 3 20 10 100 75 50 200 0 500 40 30 (1) 在PART表的PNO字段创建聚集索引Index_Pno,检查数据的排序顺序。删除

Index_Pno索引,然后在PART表的PNAME列上创建Index_Pname聚集索引,再次检查数据的排序顺序。

(2) 在QUATATIONS表的SNO和PNO字段上创建一个复合索引,Index_SnoPno。 8. 使用哪些命令进行维护索引?哪些指标能够显示索引的碎片情况? 9. 简述使用哪些方法可以清除索引碎片?这些方法有何区别? 10. 简述为什么要使用视图查看数据?视图的优点有哪些? 11. 视图是一张“虚表”,请简述视图和表的相同点和区别 12. 创建一张用于查看男同学信息的视图。

13. 创建视图view_Score(StudentCode,StudentName,Chinese, Math, English, Physics,

Chemist,TotalScore),查询每个学生每门课程的期末考试成绩以及总成绩(TotalScore)。 14. 创建视图view_Student(StudentCode, StudentName, Sex, Phone, Address, Parent,

Birthdate),查询学生的信息 15. 使用INSERT INTO

(?20060304?,?ChengMing?,1,?010-80603310?,?Beijing?,?ChenHong?,?1986-01-08?)语句更新view_Student视图,然后再次查询该视图以及查询Student表检查执行结果。

16. 使用UPDATE view_Student SET Phone=?010-82375177? WHERE StudentCode=?

20060304??,更新视图,然后再次查询该视图以及查询Student表检查更新结果。

参考答案

1. 简述聚集索引和非聚集索引的特点

聚集索引确定表中数据的物理顺序,索引顺序就是数据的物理顺序。

由于聚集索引规定数据在表中的物理存储顺序,因此一个表只能包含一个聚集索引。 非聚集索引的特点是索引与数据分别存储在数据页上,索引中的项目按索引键值的顺序存储,而表中的信息按另一种顺序存储,索引带有指针指向数据的存储位置。 2. 简述建立索引的好处以及索引对数据更新操作的影响?

优点:加速检索、排序、成组、连接的顺序 缺点:影响更新性能

3. 既然索引能够提高查找速度,那么表中的索引是否是越多越好?简述在何种情况下应该

设置索引?在何种情况下设置聚集索引,何种情况下设置非聚集索引。 并非索引越多越好,索引过多,SQL SERVER 维护索引的开销越大 在查询中经常引用的表、字段、唯一值列中创建索引 将非聚集索引用于:

? 包含大量非重复值的列,如姓氏和名字的组合(如果聚集索引用于其它列)。

如果只有很少的非重复值,如只有 1 和 0,则大多数查询将不使用索引,因为此时表扫描通常更有效。 ? 不返回大型结果集的查询。

? 返回精确匹配的查询的搜索条件(WHERE 子句)中经常使用的列。 ? 经常需要联接和分组的决策支持系统应用程序。应在联接和分组操作中使用的

列上创建多个非聚集索引,在任何外键列上创建一个聚集索引。

? 在特定的查询中覆盖一个表中的所有列。这将完全消除对表或聚集索引的访

问。

将聚集索引用于:

? 包含大量非重复值的列。

? 使用下列运算符返回一个范围值的查询:BETWEEN、>、>=、< 和 <=。 ? 被连续访问的列。

? 返回大型结果集的查询。

? 经常被使用联接或 GROUP BY 子句的查询访问的列;一般来说,这些是外键

列。对 ORDER BY 或 GROUP BY 子句中指定的列进行索引,可以使 SQL Server 不必对数据进行排序,因为这些行已经排序。这样可以提高查询性能。 ? OLTP 类型的应用程序,这些程序要求进行非常快速的单行查找(一般通过主

键)

4. 在SQL SERVER中,哪些字段不允许设置索引?

Image、Text 字段

5. 简述在创建聚集索引时应该考虑的要点有哪些?

? 包含大量非重复值的列。

? 使用下列运算符返回一个范围值的查询:BETWEEN、>、>=、< 和 <=。 ? 被连续访问的列。

? 返回大型结果集的查询。

? 经常被使用联接或 GROUP BY 子句的查询访问的列;一般来说,这些是外键

列。对 ORDER BY 或 GROUP BY 子句中指定的列进行索引,可以使 SQL Server 不必对数据进行排序,因为这些行已经排序。这样可以提高查询性能。 ? OLTP 类型的应用程序,这些程序要求进行非常快速的单行查找(一般通过主

键)

? 定义聚集索引键时使用的列越少越好

6. 在Student数据的以下表中

学生表(Student)基本数据表的字段

字段名 StudentID StudentCode StudentName Sex Phone Address Parent Birthdate Remark Photo RegisterDate 类型 Int (Identity) Char Varchar Bit Varchar Varchar Varchar Smalldatetime Varchar Image Datetime 长度 8 20 20 100 20 500

成绩表(Score)基本数据的字段