SQL SERVER 2000实用教程习题及实验参考答案

2019-03-22 20:29

习题参考答案

第一章

1、SQL Server 2000有七种不同的可用版本:企业版、企业评估版、标准版、开发版、个人版、Windows CE版和桌面引擎版。

2、Microsoft Windows NT Server 4.0、Microsoft Windows NT Server 4.0 企业版、Windows 2000 Server、Windows 2000 Advanced Server 和 Windows 2000 Data Center Server

第二章

1、C 2、A

3、Exec sp_addtype New_str,'Varchar(12)', 'Not Null '

第三章

1. 数据文件、事务日志、mdf、ldf。 2. CREATE DATABASE。 3. SP_HELPDB.

4. ALTER DATABASE.。

5. DBCC SHRINKFILE、DBCC SHRINKDATABASE。 6. SP_DBOPTION。 7. DROP DATABASE。 8. SP_DETACH。

9. 带FOR ATTACH子句的CREATE DATABASE语句。 10. CREATE TABLE。 11. ALTER TABLE。 12. DROP TABLE。 13. INSERT。 14. UPDATE。 15. DELETE。

16.约束定义了关于允许什么数据进入数据库的规则。约束有五种类型,分别是 PRIMARY KEY约束、FOREIGN KEY约束、UNION约束、CHECK约束、DEFAULT约束。约束的作用是防止列出现非法数据,以保证数据库中数据的一致性和完整性。

17.

(1) DELETE E2 FROM E2, E1

WHERE E2.编号 IN (SELECT 编号 FROM E1) (2) INSERT INTO E1 SELECT * FROM E2

18. UPDATE G1 SET G1.数量= G1.数量+ G2.数量 FROM G1, G2

1

WHERE G1.编号= G2.编号 GO

INSERT INTO G1

SELECT * FROM G2 WHERE NOT (G2.编号 IN (SELECT 编号 FROM G1))

第四章

1. A、B、D 2.B、C、D 3.

(1)程序为:SELECT top 6 * FROM goods

(2)程序为:SELECT 商品名称,进货价 FROM goods ORDER BY 进货价 DESC (3)程序为:SELECT 商品名称,零售价,进货价,剩余数量

FROM goods INNER JOIN sell ON goods.商品编号=sell.商品编号

(4)程序为:SELECT 商品编号,数量,零售价 FROM goods

COMPUTE AVG(零售价)

(5)程序为:SELECT 商品名称,goods.数量,售出时间 FROM goods,sell

WHERE 售出时间 between '2004.1.1'AND '2005.1.1' and goods.商品编号=sell.商品编号

(6)程序为:SELECT * FROM employees

WHERE 编号=ANY (SELECT 售货员工编号 FROM sell) SELECT 售货员工编号,商品编号,数量

FROM sell order by 售货员工编号 COMPUTE SUM(数量) BY 售货员工编号 (7)程序为:SELECT 商品名称,goods.数量,剩余数量 FROM goods,sell

WHERE goods.商品编号=sell.商品编号 and 商品名称 LIKE '%显示器%'

(8)程序为:SELECT SUM(sell.数量) as 打印机销售数量 FROM sell,goods

WHERE sell.商品编号=goods.商品编号 and 商品名称='打印机'

第五章

1. C 2. D

3.答:索引是一个单独的,物理的数据库结构。它由某个表中的一列或者若干列的值,以及这些值的记录在数据表中存储位置的物理地址所组成。使用索引可以极大的改善数据库的性能,加快数据查找速度。但是,索引也会消耗硬盘空间并招致开销和维护成本。

4.答:设置索引的原则是:在主键上创建索引;在经常需要检索的字段上创建索引;在外键上创建索引;在经常要排序的列上创建索引。

5.答:按照存储结构划分,索引分为聚集索引和非聚集索引。

在聚集索引中,表中各行的物理顺序与索引中行的物理顺序是相同,创建任何非聚集索引之前要首先创建聚集索引,聚集索引需要将表中的所有数据完全重新排列;而聚集索引不会改变表中数据行的物理存储位置和顺序,它只包含索引值和指向数据行的指

2

针。

6.答:数据完整性是指存储在数据库中的数据的一致性和准确性。数据完整性有3中类型:域完整性、实体完整性和参照完整性。

约束确保在数据中输入有效的数据值,是强制数据完整性的首选方法。

第六章

1. C 2. B 3.视图

4.对视图的定义进行加密

强制视图上执行的所有数据修改语句都必须符合由 select_statement 设置的准则。 5.判断题 √、×、√ 第7章

1、系统,用户 2、符号,运算符

3、B 4、B、C

5、批处理就是单个或多个Transact-SQL语句的集合,由应用程序一次性发送给SQL Server解释并执行批处理内的所有语句指令。批处理的结束标志是GO。建立批处理要注意:

(1) CREATE DEFAULT、CREATE RULE、CREATE VIEW、CREATE PROCEDURE、和CREATE TRIGGER语句,只能在单独的批处理中执行。

(2) 将默认值和规则绑定到表字段或用户自定义数据类型上之后,不能立即在同一个批处理中使用它们。

(3) 定义一个CHECK约束之后,不能立即在同一个批处理中使用这个约束。 (4) 修改表中的字段名之后,不能立即在同一个批处理中使用这个新字段名。 (5) 用户定义的局部变量的作用范围局限于一个批处理内,并且在CO命令后不能再引用这个变量。

(6) 如果一个批处理中的第一条语句是执行某存储过程的EXEC语句,则EXEC关键字可以省略不写;如果不是批处理的第一条语句,则EXEC关键字必须要有。

6、在使用局部变量以前,必须使用DECLARE语句来声明这个局部变量。语法格式为:DECLARE @局部变量名 数据类型[,…n]

给局部变量赋值有两种方法,可以使用SET语句赋值,也可以使用SELECT语句赋值。

使用SET语句赋值的语法格式为:SET @局部变量名=表达式[,…n]

使用SELECT语句赋值的语法格式为:SELECT @局部变量名=表达式[,…n] 7、使用游标要遵循以下顺序:

声明游标→打开游标→读取数据→关闭游标→删除游标

3

8、 DECLARE @srv varchar(20) SET @srv= @@servername PRINT @srv

9、DECLARE @Today DATETIME

SET @Today=GETDATE( )

SELECT YEAR(@Today) AS 年,MONTH(@Today) AS 月,DAY(@Today) AS 日 10、 USE STUINFO

GO

DECLARE @Stuname char(8) SET @Stuname ='张三'

IF EXISTS(SELECT * FROM t_student WHERE S_name=@stuname)

BEGIN

PRINT @stuname+'的信息如下:'

SELECT * FROM t_student WHERE S_name=@stuname END

ELSE

BEGIN

PRINT '在数据库中无此人信息!' END

GO

11、 USE STUINFO

GO

SELECT S_number, score,折合成绩=

CASE

WHEN score <60 THEN '不及格'

WHEN score >=60 AND score<70 THEN '及格' WHEN score >=70 AND score<80 THEN '中等' WHEN score >=80 AND score<90 THEN '良好' WHEN score >=90 THEN '优秀'

ELSE '无成绩' END

FROM t_score JOIN t_course ON t_score.C_number=t_course.C_number WHERE C_name='SQL Server程序设计' GO

12、 USE STUINFO

GO

--声明游标

DECLARE Stu_cursor CURSOR

FOR

4

SELECT * FROM t_student FOR READ ONLY --打开游标

OPEN Stu_cursor

--第一次读取,得到结果集的首行记录 FETCH NEXT FROM Stu_cursor --循环读取结果集中剩余的数据行 WHILE @@FETCH_STATUS=0 BEGIN

FETCH NEXT FROM Stu_cursor END

--关闭游标

CLOSE Stu_cursor --释放(删除)游标

DEALLOCATE Stu_cursor GO

13、 USE STUINFO

GO

DECLARE @score real --声明一个可更新的游标

DECLARE Stu_score CURSOR KEYSET FOR SELECT score FROM t_score

WHERE S_number= '2004016' AND C_number= '001'

FOR UPDATE OPEN Stu_score

FETCH ABSOLUTE 1 FROM Stu_score INTO @score

PRINT '修改前的成绩是:'+CONVERT(Varchar(6),@score) --通过游标修改数据 UPDATE t_score SET score= score+5

WHERE CURRENT OF Stu_score

FETCH ABSOLUTE 1 FROM Stu_score INTO @score

PRINT '修改后的成绩是:'+CONVERT(Varchar(6),@score) --关闭游标

CLOSE Stu_score --释放(删除)游标

DEALLOCATE Stu_score GO

5


SQL SERVER 2000实用教程习题及实验参考答案.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:辩论材料真才实学比人际关系更重要

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: