SQLSEREVER测试题(下)

王朝mssql·作者佚名  2006-02-01
窄屏简体版  字體: |||超大  

SQLSEREVER测试题(下)

18 以下作业皆以*.sql文件存储于c:\homework目录中

实践1:创建和维护SQL Server数据库

(1) 使用下表提供的值,创建数据库ClassNorthwind

参 数

数据库名称

ClassNorthwind

数据库文件名

ClassNorthwind_Data

位置

C:\data

初始大小

25MB

文件组

Primary

文件增长

1MB

最大文件长度

100MB

事务日志文件名称

ClassNorthwind_Log

位置

C:\data

初始大小

15MB

文件增长

1MB

最大文件长度

30MB

(2) 使用sp_helpdb存储过程浏览有关数据库ClassNorthwind的信息

(3) 修改数据库属性

l 编写和执行将ClassNorthwind事务日志文件的最大文件长度增加到50MB的语句

l 编写和执行向数据库ClassNorthwind添加一个事务日志文件ClassNorthwind_LogApp,文件属性如下:

位置

C:\dataapp

初始大小

20MB

文件增长

1MB

最大文件长度

40MB

实践2:创建和修改SQL Server数据库的表

(1) 创建数据库ClassNorthwind中的雇员表Employees、雇员工资表wage和工资税表tax

雇员表Employees:

字 段 名 称

类 型

空 否

EmployeeID

Int,identity ,初值为1,增量为1

NOT NULL

Name

VarChar(10)

NOT NULL

Sex

Char(2)

NOT NULL

Birthdate

Date

NULL

Address

Varchar(50)

NULL

Phone

Char(13)

NULL

Remark

text

雇员工资表wage:

字 段 名 称

类 型

空 否

EmployeeID

Int

NOT NULL

Name

VarChar(10)

NOT NULL

Wage

money

NOT NULL

Putdate

Date

NOT NULL

工资税表tax:

字 段 名 称

类 型

空 否

EmployeeID

Int

NOT NULL

Name

VarChar(10)

NOT NULL

Tax

money

NOT NULL

Paydate

Date

NOT NULL

(2) 向雇员表Employees中添加列Department varchar(20) NULL

(3) 修改雇员表Employees中的列Address varchar(60)

(4) 删除雇员表Employees中的列Remark

(5) 用存储过程sp_help查看三个表的信息

(6) 向雇员表Employees中插入十个雇员信息

(7) 向雇员工资表wage中插入十个雇员相应的工资发放情况信息

(8) 向工资税表tax中插入十个雇员相应的交税情况

实践3:创建SQL Server数据库表的视图和索引

(1) 在雇员表Employees中,创建一个name和phone列上的合成索引

(2) 使用存储过程sp_helpindex Employees列出表的索引

(3) 分别查询雇员表Employees、雇员工资表wage和工资税表tax中的行数据

(4) 创建一个视图,用于检索雇员工资、税款情况,包括下列字段:

EmployeeID、Name、Sex、Wage、Putdate 、Tax、Paydate

(5) 创建一个视图,用于检索雇员工资高于1000元的雇员情况表

(6) 创建一个视图,用于检索雇员工资高于5000元的雇员情况表

实践4:查询SQL Server数据库表的信息

(1) 列出每个雇员的工资、税款情况一览表

(2) 列出工资超过1000元,而未交税的雇员

(3) 列出工资在1000元以下,不应该交税的雇员情况一览表

(4) 列出只领工资而未交税的雇员表

(5) 对以上四种情况各作一统计报告

(6) 删除三个表中的所有记录

实践5:实现SQL Server数据库的完整性

(1) 创建雇员表Employees的主关键字,列:EmployeeID

(2) 创建雇员工资表wage的外部关键字,列:EmployeeID,参考Employees的主键

(3) 创建工资税表tax的外部关键字,列:EmployeeID,参考Employees的主键

(4) 向雇员表Employees中添加关于以下列的DEFAULT约束:

name:unknown,sex:男,Address:Salt Lake,Phone:(000)00000000

(5) 向雇员表Employees中添加BirthDate列的CHECK约束:在BirthDate列中的值必须早于今天的日期

(6) 定义雇员电话号码Phone的规则:(***)********,其中*是0~9之间的数字字符

(7) 执行存储过程sp_helpconstraint浏览上面创建的约束信息

(8) 向雇员表Employees中插入十个雇员信息,并检查约束

(9) 向雇员工资表wage和工资税表tax中添加关于以下列的DEFAULT约束:

Putdate:昨天,Paydate:昨天

实践6:SQL Server数据库的高级查询

(1) 分别列出在雇员表Employees中而未领工资和未交税的男、女雇员情况

(2) 查询电话号码区号为(010)、工资大于3000的男雇员情况

(3) 查询交税最多的六名雇员情况

(4) 列出工资在前六名的,而交税并不在前六名的雇员情况

实践7:创建、执行、修改SQL Server数据库的存储过程

(1) 编写存储过程,向雇员表Employees、雇员工资表wage和工资税表tax中各插入两条记录

(2) 编写存储过程,列出工资最高的六名雇员情况

(3) 编写存储过程,查找雇员表Employees中Sex、Phone与指定值相匹配的雇员

(4) 编写存储过程,查找雇员表Employees中BirthDate在指定两个日期之间的雇员

(5) 编写存储过程,用于计算男、女雇员的平均工资,男、女雇员的人数,并输出

(6) 用存储过程sp_helptext查看上面的存储过程定义

实践8:创建和使用SQL Server数据库的触发器

(1) 创建触发器,从雇员表Employees中一次删除的记录数应不超过2条

(2) 创建触发器,当向雇员工资表wage中插入记录时,同时向工资税表tax中插入记录,工资税计算为:

Wage:1000以下,不交税;1000~5000:交税工资的1%

5000以上:交税工资的3%

(3) 创建触发器,当修改雇员工资表wage中的记录时,同时修改工资税表tax中的记录

(4) 创建触发器,当删除雇员表Employees中的记录时,同时删除雇员工资表wage和工资税表tax中的有关该雇员的所有记录

(5) 创建触发器,当修改工资税表tax中Tax列的值时,检查交税情况是否符合(2)的交税比例

(6) 测试上面创建的触发器

实践9:使用SQL Server数据库的游标

(1) 使用游标获取雇员表Employees中的记录

(2) 使用游标检查雇员工资税的交纳是否正确

实践10:使用SQL Server数据库的用户字定义函数

(1) 编写函数,按男、女雇员分类计算平均工资和合计工资

(2) 编写函数,查找雇员表Employees中Sex、Phone与指定值相匹配的雇员

(3) 编写函数,查找雇员表Employees中BirthDate在指定两个日期之间的雇员

(4) 定义数据类型mytext,向雇员表Employees中添加列Remark,其类型为mytext

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航