第五章 实验教程文件Word格式文档下载.docx
《第五章 实验教程文件Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《第五章 实验教程文件Word格式文档下载.docx(15页珍藏版)》请在冰豆网上搜索。
数据库数据类型、程序设计语言。
五、实验实施步骤
(一)变量的使用
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='
else
select'
查无此人'
2、判断姓名为王林的员工实际收入是否高于3000元,如果是,则显示其收入,否则显示“收入不高于3000”。
ifEXISTS(selectInCome-OutComefromSalary,Employees
where(InCome-OutCome)>
3000
andEmployees.Name='
王林'
andEmployees.EmployeeID=Salary.EmployeeID)
selectInCome-OutComefromSalary,Employees
where((InCome-OutCome)>
收入不高于'
3、假设变量X的初始值为0,每次加1,直至X变为5。
Declare@Xint
set@X=0
while@X<
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
print(Space((@n-@i)/2)+replicate('
*'
@i))
set@i=@i+2
5、使用case语句对Employees表按部门进行分类。
selectEmployeeID,Name,Address,DepartmentID=caseDepartmentID
when1then'
财务部'
when2then'
人力资源部'
when3then'
经理办公室'
when4then'
研发部'
when5then'
市场部'
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
2、写一段T-SQL程序调用上述函数。
当用Employees表插入一行记录时,首先调用函数CKECK_ID检索该记录的DpartmentID值在表Departments的DepartmentID字段中是否存在对应值,若存在,则将该记录插入Employees表。
3、自定义一个函数,计算一个数的阶乘。
createfunctiontest_jc(@nbigint)
returnsbigint
as
if@nnotbetween0and20returnnull
if@n<
2return1
return(dbo.test_jc(@n-1)*@n)
selectdbo.test_jc(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
Employees.NamefromSalary,Employees,Departments
whereEmployees.EmployeeID=Salary.EmployeeID
andEmployees.DepartmentID=Departments.DepartmentID
ANDDepartments.DepartmentName='
orderbySalary.InComedesc
7、查询员工收入的平均数。
selectAVG(Income-OutCome)fromSalary
8、使用ASCⅡ函数返回字符表达式最左端字符的ASCⅡ值。
selectASCII('
Abc'
9、使用CHAR()函数将ASCⅡ码代表的字符组成字符串。
10、使用LEFT()函数返回从字符串‘abcdef’左边开始的3个字符。
selectLEFT('
adgshsqw'
3)
11、获得当前的日期和时间。
selectGETDATE()
12、查询YGGL数据库中员工号为000001的员工出生的年份。
selectYEAR(Birthday)fromEmployeeswhereEmployeeID='
13、使用DAY()函数返回指定日期时间的天数。
selectDAY('
2016-4-10'
14、列举出其他的时间日期函数。
selectMONTH('
15、使用其他类型的系统内置函数。
selectCOS(0)
六、实验报告要求
1、按照山东女子学院实验报告格式书写。
2、关键部分的内容规范和要求如下:
(一)、实验目的及要求
指导教师给出的实验目的及具体实验要求。
(二)、实验使用的主要设备(含软件系统)
设备:
名称、规格型号、数量;
软件:
系统、软件名称、版本;
其他实验器材。
(三)、实验操作过程及内容
按照实验步骤写出操作要求,能够实现要求的语句及结果。
(四)、实验结论、问题与建议(含取得的成果)
总结实验过程,记录实验过程中所遇的问题及调试过程、处理方法,简述实验效果,回答实验思考题等。
七、实验成绩评定办法
主要评分点:
实验流程、调试过程、解决问题的能力、实验结果、实验效果等。
1、创建数据库YGGL
在“查询分析器”窗口中输入如下语句:
CREATEDATABASEYGGL
ON
(
NAME=’YGGL_Data’,
FILENAME=’(注:
一个本地路径)’,
SIZE=10MB,
MAXSIZE=50MB
FILEGROWTH=5%
LOGON
NAME=’YGGL_Log’,
SIZE=2MB,
MAXSIZE=5MB,
FILEGROWTH=1MB
GO
1、在创建好的数据库YGGL中创建数据表
考虑到数据库YGGL要求包含员工的信息、部门的信息以及员工的薪水信息,所以数据库YGGL应包含下列3个表:
Employees(员工自然信息)表、Departments(部门信息)表、Salary(员工薪资)表。
各表的结构分别如表T2.1、表T2.2和表T2.3所示。
USEYGGL
CREATETABLEEmployees
(EmployeeIDchar(6)NOTNULLPRIMARYKEY,
Namechar(6)NOTNUL