第五章 实验

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

5 综合型实验项目T-SQL编程

匹配课程代码及名称:070596,数据库管理系统

适用专业及本项目实验学时:计算机科学与技术(金融信息),6学时

一、实验目的及要求

(1)掌握变量的分类及其使用;

(2)掌握各种运算符的使用;

(3)掌握各种控制语句的使用;

(4)掌握系统函数及其用户自定义函数的使用。

二、实验内容

在已建好的YGGL数据库中,进行变量、运算符、流程控制语句、函数的设计与使用。提交程序源代码(电子版,1周内)和实验报告(纸制、1周内)。

三、实验条件及设备要求

已安装SQL Server 2008数据库管理系统的实验机。

四、实验相关知识点

数据库数据类型、程序设计语言。

五、实验实施步骤

(一)变量的使用

1、对于YGGL中的数据表结构,创建一个名为female的用户变量,并在select 语句中使用该局部变量查找表中所有女员工的编号、姓名。

Declare @female bit

Set @female=0

Select EmployeeID,Name from Employees where Sex=@female

2、定义一个变量,用于获取号码为102201的员工的电话号码。

Declare@PhoneNumber char(12)

set@PhoneNumber=(select PhoneNumber from Employees where

EmployeeID='102201')

select@PhoneNumber

3、定义一个变量,用于描述YGGL数据库的Salary表中000001号员工的实际收入,然后查询该变量。

Declare@RealIncome float

set@RealIncome=(select Income-Outcome from Salary

where EmployeeID='000001')

select@RealIncome

(二)运算符的使用

1、使用算数运算符“-”查询员工的实际收入。

select InCome-OutCome from Salary

2、使用比较运算符“>”查询Emloyees表中工作时间大于5年的员工信息。

select*from Employees where WorkYear>5

(三)流程控制语句

1、判断Employees表中是否存在编号为111006的员工,如果存在,则显示该员工信息;若不存在,则显示“查无此人”。

if EXISTS(select Name FROM Employees where EmployeeID='111006') select*from Employees where EmployeeID='111006'

else

select'查无此人'

2、判断姓名为王林的员工实际收入是否高于3000元,如果是,则显示其收入,否则显示“收入不高于3000”。

if EXISTS(select InCome-OutCome from Salary,Employees

where(InCome-OutCome)>3000

and ='王林'

and Employees.EmployeeID=Salary.EmployeeID)

select InCome-OutCome from Salary,Employees

where((InCome-OutCome)>3000

and ='王林'

and Employees.EmployeeID=Salary.EmployeeID)

else

select'收入不高于'

3、假设变量X的初始值为0,每次加1,直至X变为5。

Declare@X int

set@X=0

while@X<5

Begin

Set@X=@X+1

print'X='+convert(char(1),@X)

end

go

4、使用循环输出一个用“*”组成的三角形。(三角形类型不限)declare@i int

declare@n int

Set@i=1

set@n=20

while@i<@n

Begin

print(Space((@n-@i)/2)+replicate('*',@i))

set@i=@i+2

end

go

5、使用case语句对Employees表按部门进行分类。

go

select EmployeeID,Name,Address,DepartmentID=case DepartmentID when 1 then'财务部'

when 2 then'人力资源部'

when 3 then'经理办公室'

when 4 then'研发部'

when 5 then'市场部'

end

from Employees

(四)自定义函数的使用

1、定义一个函数实现如下功能:对于一个给定的DepartmentID值,查询该值在Departments表中是否存在,若存在则返回0,否则返回-1。

create function check_id(@DepartmentID char(3))

returns Integer AS

begin

declare@num int

if exists(SELECT DepartmentID FROM Departments

WHERE@DepartmentID=DepartmentID)

select@num=0

else

select@num=-1

return@num

end

go

2、写一段T-SQL程序调用上述函数。当用Employees表插入一行记录时,首先调用函数CKECK_ID检索该记录的DpartmentID值在表Departments的DepartmentID字段中是否存在对应值,若存在,则将该记录插入Employees表。

create function check_id(@DepartmentID char(3))

returns Integer AS

begin

declare@num int

if exists(SELECT DepartmentID FROM Departments

WHERE@DepartmentID=DepartmentID)

select@num=0

else

相关文档
最新文档