sql期中测试答案1

更新时间:2023-10-23 15:52:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

SQLServer 2005 单元测试

班级: 学号: 姓名:

以下题目依据xk数据库

1、创建视图v_student,含有周一1,2节上课的学生信息,包含学号、姓名、课程名称、报名人数。 (10分)

use xk go

create view v_student(学号,姓名,课程名称,报名人数) as

select student.stuno,stuname,couname,willnum from student,course,stucou

where student.stuno=stucou.stuno and course.couno=stucou.couno and schooltime='周一1,2节' go

2.创建视图v_course,含有王丽老师上课的信息,包含课程名称、学分、上课时间、选课状态。 (10分)

use xk go

create view v_course(课程名称,学分,上课时间,选课状态) as

select couname,credit,schooltime,state from course,stucou

where course.couno=stucou.couno and teacher='王丽' go

3、创建存储过程p_dele,从student表中删除“10软件1”班级的信息。 (15分)

use xk go

create procedure p_dele as

delete student from class,student

where classname='10软件1' and class.classno=student.classno go

4、创建存储过程p_class,它能够根据用户给定的系部编号统计该系部的班级数,并将班级数返回给用户。要求设计并执行存数过程。 (15分)

use xk go

create procedure p_class

@departno nvarchar(2),@classnum smallint output as

set @classnum=

1

(

select count(*) from class where departno=@departno )

print @classnum go

declare @departno nvarchar(2),@classnum smallint set @departno='01'

exec p_class @departno,@classnum output select @classnum go

5、在xk数据库的course表上查询“信息技术”的信息,并分析执行该数据查询所花费的磁盘活动量信息(5分)。

Use xk Go

Set statistics io on Go

Select * from course where kind='信息技术' Go

Set statistics io off Go

6、按教师显示课程信息,并计算各类课程的平均限制选课人数(用computer by子句)(5分)。

use xk go select * from course order by teacher

compute avg(limitnum) by teacher go

以下题目使用sale数据库

7、用户需要按照客户姓名查询客户信息,希望提高查询速度。 (5分)

use sale go

create unique

index IX_cusName on customer(cusname) go

8、 创建视图v_sale,显示销售金额大于5万的产品信息(包括产品编号和产品名称和销售

金额),并查看视图的内容。(15分)

use sale

2

go

create view v_sale as

select Product.ProNo '产品编号',ProName '产品名称',sum(Price*Quantity) '销售金额'

from Product,ProOut

where Product.ProNo = ProOut.ProNo group by Product.ProNo,ProName having sum(Price*Quantity) >50000 go

select * from v_sale

9. 创建一个规则,限定只能输入大于1的数值,然后将其绑定到proout表的quantity列(5分)。

use sale go

create rule inputRule as @quanlity>1 go

exec sp_bindrule inputRule ,'proout.quantity' go

10. 计算2+4+6+…+200的和,并显示计算结果(15分)

--方法

DECLARE @i int,@sum int --定义整型变量@i用来计数;@sum为求和单元 SELECT @i=2,@sum=0 --给整型变量@i和@sum赋值 WHILE @i<=200 --当@i小于等于时,执行循环体 BEGIN

--定义语句块

SELECT @sum=@sum+@i --求和 SELECT @i=@i+2 --计数单元加 END

--语句块定义结束

SELECT '2+3+4+......+200的和'=@sum

--方法

DECLARE @i int,@sum int --定义整型变量@i用来计数;@sum为求和单元 SELECT @i=2,@sum=0 --给整型变量@i和@sum赋值

BQ:

IF @i<=200 --如果@i小于等于,则求和 BEGIN

--定义语句块

SELECT @sum=@sum+@i --求和 SELECT @i=@i+2 --计数单元加

GOTO BQ

3

END

ELSE --如果@i大于,显示求和结果 SELECT '2+3+…+200=',@sum

4

本文来源:https://www.bwwdw.com/article/awuf.html

Top