第五章实验.docx

上传人:b****5 文档编号:29931842 上传时间:2023-08-03 格式:DOCX 页数:17 大小:140.67KB
下载 相关 举报
第五章实验.docx_第1页
第1页 / 共17页
第五章实验.docx_第2页
第2页 / 共17页
第五章实验.docx_第3页
第3页 / 共17页
第五章实验.docx_第4页
第4页 / 共17页
第五章实验.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

第五章实验.docx

《第五章实验.docx》由会员分享,可在线阅读,更多相关《第五章实验.docx(17页珍藏版)》请在冰豆网上搜索。

第五章实验.docx

第五章实验

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

匹配课程代码及名称:

070596,数据库管理系统

适用专业及本项目实验学时:

计算机科学与技术(金融信息),6学时

一、实验目的及要求

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

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

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

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

二、实验内容

在已建好的YGGL数据库中,进行变量、运算符、流程控制语句、函数的设计与使用。

提交程序源代码(电子版,1周内)和实验报告(纸制、1周内)。

三、实验条件及设备要求

已安装SQLServer2008数据库管理系统的实验机。

四、实验相关知识点

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

五、实验实施步骤

(一)变量的使用

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

Declare@femalebit

Set@female=0

SelectEmployeeID,NamefromEmployeeswhereSex=@female

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

Declare@PhoneNumberchar(12)

set@PhoneNumber=(selectPhoneNumberfromEmployeeswhereEmployeeID='102201')

select@PhoneNumber

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

Declare@RealIncomefloat

set@RealIncome=(selectIncome-OutcomefromSalary

whereEmployeeID='000001')

select@RealIncome

(二)运算符的使用

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

selectInCome-OutComefromSalary

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

select*fromEmployeeswhereWorkYear>5

(三)流程控制语句

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

ifEXISTS(selectNameFROMEmployeeswhereEmployeeID='111006')

select*fromEmployeeswhereEmployeeID='111006'

else

select'查无此人'

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

ifEXISTS(selectInCome-OutComefromSalary,Employees

where(InCome-OutCome)>3000

and='王林'

and=

selectInCome-OutComefromSalary,Employees

where((InCome-OutCome)>3000

and='王林'

and=

else

select'收入不高于'

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

Declare@Xint

set@X=0

while@X<5

Begin

Set@X=@X+1

print'X='+convert(char

(1),@X)

end

go

4、使用循环输出一个用“*”组成的三角形。

(三角形类型不限)

declare@iint

declare@nint

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

selectEmployeeID,Name,Address,DepartmentID=caseDepartmentID

when1then'财务部'

when2then'人力资源部'

when3then'经理办公室'

when4then'研发部'

when5then'市场部'

end

fromEmployees

(四)自定义函数的使用

1、定义一个函数实现如下功能:

对于一个给定的DepartmentID值,查询该值在Departments表中是否存在,若存在则返回0,否则返回-1。

createfunctioncheck_id(@DepartmentIDchar(3))

returnsIntegerAS

begin

declare@numint

ifexists(SELECTDepartmentIDFROMDepartments

WHERE@DepartmentID=DepartmentID)

select@num=0

else

select@num=-1

return@num

end

go

2、写一段T-SQL程序调用上述函数。

当用Employees表插入一行记录时,首先调用函数CKECK_ID检索该记录的DpartmentID值在表Departments的DepartmentID字段中是否存在对应值,若存在,则将该记录插入Employees表。

createfunctioncheck_id(@DepartmentIDchar(3))

returnsIntegerAS

begin

declare@numint

ifexists(SELECTDepartmentIDFROMDepartments

WHERE@DepartmentID=DepartmentID)

select@num=0

else

select@num=-1

return@num

end

go

3、自定义一个函数,计算一个数的阶乘。

createfunctiontest_jc(@nbigint)

returnsbigint

as

begin

if@nnotbetween0and20returnnull

if@n<2return1

return(@n-1)*@n)

end

go

select(10)

(五)系统函数的使用

1、求一个数的绝对值。

SelectABS(-55)

2、使用rand()函数产生一个0~1的随机值。

selectrand()*1

3、使用函数获得一个数的平方。

selectsquare(16)

4、使用sqrt()返回一个数的平方根。

selectsqrt(4)

5、求财务部雇员的总人数。

selectcount(EmployeeID)as财务总人数

fromEmployees

whereDepartmentID=(selectDepartmentIDfromDepartmentswhereDepartmentName='财务部')

6、求财务部收入最高的员工姓名。

selecttop1

fromSalary,Employees,Departments

where=

and=

AND='财务部'

orderbydesc

7、查询员工收入的平均数。

selectAVG(Income-OutCome)fromSalary

8、使用ASCⅡ函数返回字符表达式最左端字符的ASCⅡ值。

selectASCII('Abc')

9、使用CHAR()函数将ASCⅡ码代表的字符组成字符串。

selectASCII('Abc')

10、使用LEFT()函数返回从字符串‘abcdef’左边开始的3个字符。

selectLEFT('adgshsqw',3)

11、获得当前的日期和时间。

selectGETDATE()

12、查询YGGL数据库中员工号为000001的员工出生的年份。

selectYEAR(Birthday)fromEmployeeswhereEmployeeID='000001'

13、使用DAY()函数返回指定日期时间的天数。

selectDAY('2016-4-10')

14、列举出其他的时间日期函数。

selectMONTH('2016-4-10')

15、使用其他类型的系统内置函数。

selectCOS(0)

六、实验报告要求

1、按照山东女子学院实验报告格式书写。

2、关键部分的内容规范和要求如下:

(一)、实验目的及要求

指导教师给出的实验目的及具体实验要求。

(二)、实验使用的主要设备(含软件系统)

设备:

名称、规格型号、数量;

软件:

系统、软件名称、版本;

其他实验器材。

(三)、实验操作过程及内容

按照实验步骤写出操作要求,能够实现要求的语句及结果。

(四)、实验结论、问题与建议(含取得的成果)

总结实验过程,记录实验过程中所遇的问题及调试过程、处理方法,简述实验效果,回答实验思考题等。

七、实验成绩评定办法

主要评分点:

实验流程、调试过程、解决问题的能力、实验结果、实验效果等。

 

1、创建数据库YGGL

在“查询分析器”窗口中输入如下语句:

CREATEDATABASEYGGL

ON

NAME=’YGGL_Data’,

FILENAME=’(注:

一个本地路径)’,

SIZE=10MB,

MAXSIZE=50MB

FILEGROWTH=5%

LOGON

NAME=’YGGL_Log’,

FILENAME=’(注:

一个本地路径)’,

SIZE=2MB,

MAXSIZE=5MB,

FILEGROWTH=1MB

GO

1、在创建好的数据库YGGL中创建数据表

考虑到数据库YGGL要求包含员工的信息、部门的信息以及员工的薪水信息,所以数据库YGGL应包含下列3个表:

Employees(员工自然信息)表、Departments(部门信息)表、Salary(员工薪资)表。

各表的结构分别如表、表和表所示。

USEYGGL

GO

CREATETABLEEmployees

(EmployeeIDchar(6)NOTNULLPRIMARYKEY,

Namechar(6)NOTNULL,

Educationchar(6)NOTNULL,

Birthdaychar(6)NOTNULL,

SexbitNOTNULLDEFAULT1,

WorkYeartinyintNULL,

Addressvarchar(40)NULL,

PhoneNumberchar(12)NULL,

DepartmentIDchar(3)NOTNULL

GO

表Employees表结构

列名

数据类型

长度

是否可空

默认值

说明

EmployeeID

CHAR

6

员工编号,主键

Name

CHAR

10

姓名

Education

CHAR

4

学历

Birthday

DATE

默认

出生日期

Sex

BIT

默认

1

1:

男0:

WorkYear

TINYINT

默认

工作时间

Address

VARCHAR

40

地址

PhoneNum

CHAR

12

电话号码

DepartmentID

CHAR

3

部门号,外键

表Departments表结构

列名

数据类型

长度

是否可空

默认值

说明

DepartmentID

CHAR

3

部门编号,主键

DepartName

CHAR

20

部门名

Note

VARCHAR

100

备注

表Salary表结构

列名

数据类型

长度

是否可空

默认值

说明

EmployeeID

CHAR

6

员工编号,主键

InCome

FLOAT

默认

收入

OutCome

FLOAT

默认

支出

要求分别使用对象资源管理器和T-SQL命令完成数据表的创建。

2、分别使用对象资源管理器和T-SQL语句,向数据库YGGL的三个表Employees、Departments和Salary中插入多行数据记录(样本数据如表、表和表所示),然后修改和删除一些记录。

使用T-SQL语句进行有限制的修改和删除。

表Employees表数据样本

编号

姓名

学历

出生日期

性别

工作时间

住址

电话

部门号

000001

王林

大专

1966-01-23

1

8

中山路32号

8355668

2

010008

伍荣华

本科

1976-03-28

1

3

北京路2号

8321321

1

020010

王向荣

硕士

1982-12-09

1

2

四牌楼10号

8379236

1

020018

李丽

大专

1960-07-30

0

6

中山路10-2

8341330

1

102201

刘明

本科

1972-10-18

1

3

解放路12号

8360668

5

102208

朱军

硕士

1965-09-28

1

2

北京东路2

8345632

5

108991

钟敏

硕士

1979-08-10

0

4

中山北路3

8470223

3

111006

张士兵

本科

1974-10-23

1

1

虎踞路2号

8349562

5

210678

林涛

大专

1977-04-02

1

2

北京东路12

8533196

3

302566

李玉敏

本科

1968-09-20

1

3

龙蟠路9号

8645231

4

308759

叶凡

本科

1978-11-18

1

2

舜玉路10号

8330891

4

504209

陈琳琳

大专

1969-09-03

0

5

阳光新路1

8446815

4

表Departments表

部门号

部门名称

备注

1

财务部

NULL

2

人力资源部

NULL

3

经理办公室

NULL

4

研发部

NULL

5

市场部

NULL

表Salary表

编号

收入

支出

000001

010008

102201

111006

504209

302566

108991

020010

020018

308759

210678

102208

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 初中教育 > 中考

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1