数据库实验七实验报告.doc
一 实验目的熟练掌握SQL Server中变量、数据类型和表达式的定义和使用,掌握TransactSQL中常用系统函数的使用,掌握流程控制语句和结构化程序设计方法,掌握分行处理表中记录机制以及利用游标对数据进行查询、修改和删除的方法。二 实验准备1物理准备:安装了SQL sever的计算机一台,连接服务器;2实验指导书:数据库技术与应用蓝皮书;3理论准备:掌握以下基础知识:(1) TransactSQL中变量、数据类型和表达式的使用。(2) TransactSQL中常用系统函数的使用。(3) 利用程序控制语句实现结构化程序设计。(4) 利用游标分行处理机制实现数据的定位、查询、修改和删除三 实验题目(1) 定义局部变量max,min接收学生表studinfo中的最大出生日期和最小出生日期的查询结果。实验过程:编写TransactSQL语句declare max char(30),min char(30)select max=max(出生日期) , min=min(出生日期) from student_xueshengselect max as 最大,min as 最小运行结果:(2) 在学生表studinfo中增加一个字段,利用系统函数与出生日期信息计算每个同学的年龄。实验过程:编写TransactSQL语句分析:先增加年龄字段,再将函数运算之后的年龄添加进去-alter table student_xuesheng -add 年龄 int-GOif exists(select 出生日期 from student_xuesheng where 出生日期 is not null)beginupdate student_xuesheng set 年龄=year(getdate()-year(出生日期)end运行结果:(3) 查询选课表SC,根据分数所属区间确定该成绩的等级,如分数90,则显示A,80分数<90,则显示B,70分数<80,则显示C,60分数<70,则显示D,分数<60,则显示E。实验过程:编写TransactSQL语句select 成绩 as score ,case when 成绩>=90 then 'A'when 成绩>=80 and 成绩<90 then 'B'when 成绩>=70 and 成绩<80 then 'C'when 成绩>=60 and 成绩<70 then 'D'when 成绩<60 then 'E'END AS 等级from student_xuanke运行结果:(4) 查询文学院的学生信息,若查询学生表中有文学院的学生,则将这些学生信息显示在屏幕上,否则显示“目前没有文学院学生!”。实验过程:编写TransactSQL语句if exists(select * from student_xuesheng where 所在系='文学院')beginprint'文学院学生信息如下:'select * from student_xuesheng where 所在系='文学院'endelseprint'目前没有文学院学生!'表中信息:运行结果:(5) 利用流程控制语句计算1100之间的素数之和。实验过程:编写TransactSQL语句declare m tinyint ,i tinyint ,sum intset m=1set sum=0while m<=100begin set i=2while i<=sqrt(m)beginif (m%i=0)breakset i=i+1endif(i>sqrt(m)begin set sum=sum+mendendselect sum as 和declare m int ,i int,n int ,sum intset sum=1set i=1 while i<=10 begin set m=2 set n=0 while m<i/2 begin if i%m=0 begin set n=1 break end set m=m+1 end if n=0 begin set sum=sum + i end set i = i+2 endselect sum as 和运行结果: