数据库应用技术上机报告.docx

上传人:b****5 文档编号:28200516 上传时间:2023-07-09 格式:DOCX 页数:11 大小:67.38KB
下载 相关 举报
数据库应用技术上机报告.docx_第1页
第1页 / 共11页
数据库应用技术上机报告.docx_第2页
第2页 / 共11页
数据库应用技术上机报告.docx_第3页
第3页 / 共11页
数据库应用技术上机报告.docx_第4页
第4页 / 共11页
数据库应用技术上机报告.docx_第5页
第5页 / 共11页
点击查看更多>>
下载资源
资源描述

数据库应用技术上机报告.docx

《数据库应用技术上机报告.docx》由会员分享,可在线阅读,更多相关《数据库应用技术上机报告.docx(11页珍藏版)》请在冰豆网上搜索。

数据库应用技术上机报告.docx

数据库应用技术上机报告

 

数据库应用技术上机报告

 

实验五:

T-SQL编程

 

姓名:

刘运凯

学号:

10070050

班级:

10计科2

 

一、实验目的与要求

1、掌握用户自定义类型的使用;

2、掌握变量的分类及其使用;

3、掌握各种运算符的使用;

4、掌握各种控制语句的使用;

5、掌握系统函数及用户自定义函数的使用;

二、实验准备

1、了解T-SQL支持的各种基本数据类型;

2、了解自定义数据类型使用的一般步骤;

3、了解T-SQL各种运算符、控制语句的功能及使用方法;

4、了解系统函数的调用方法;

5、了解用户自定义函数使用的一般步骤;

三、实验内容

1、已知数据库YGGL中有3个基本表Employees、Departments和Salary,其表结构分别如下:

列名

数据类型

长度

是否可空

EmployeeID

定长字符串型(char)

6

×

Name

定长字符串型(char)

10

×

Education

定长字符串型(char)

4

×

Birthday

日期型(datetime)

系统默认

×

Sex

位型(bit)

系统默认

×

WorkYear

整数型(tinyint)

系统默认

Address

不定长字符串型(varchar)

40

PhoneNumber

定长字符串型(char)

12

DepartmentID

定长字符串型(char)

3

×

表1Employees表的结构

列名

数据类型

长度

可空

DepartmentID

定长字符串型(char)

3

×

DepartmentName

定长字符串型(char)

16

×

Note

不定长字符串型(varchar)

1

表2Departments表的结构

列名

数据类型

长度

可空

EmployeeID

定长字符串型(char)

3

×

InCome

浮点型(float)

20

×

OutCome

浮点型(float)

100

×

表3Salary表的结构

在数据库YGGL按要求完成以下题目

1、T-SQL编程(必做题)

【1】变量的使用:

定义一个变量,用于获取‘102201’员工的电话号码

DECLARE@varlchar(10)

SET@varl='102201'

SELECTPhoneNumber

FROMEmployees

WHEREEmployeeID=@varl

【2】流程控制语句的使用:

判断姓名为王林的员工实际收入是否高于3000,如果是则显示其收入,否则显示‘收入低于3000

IF

(SELECTInCome

FROMSalary,Employees

WHERESalary.EmployeeID=Employees.EmployeeID

ANDName='王林'

)>=3000

SELECTInCome

FROMSalary,Employees

WHERESalary.EmployeeID=Employees.EmployeeID

ANDName='王林'

ELSE

SELECT'收入低于3000'

【3】使用系统内置函数完成下列操作

(1)删除字符串“MICROSOFTSQLSERVER”左边的空格,显示结果。

DECLARE@varlchar(50)

SET@varl='MICROSOFTSQLSERVER'

SELECTLTRIM(@varl)

SELECT@varl

(2)截取字符串“MICROSOFT”最左边的5个字符,显示结果。

DECLARE@varlchar(50)

SET@varl='MICROSOFT'

SELECTLEFT(@varl,5)

SELECT@varl

(3)截取姓名“李晓亮”中的第2个汉字,显示结果。

DECLARE@varlchar(50)

SET@varl='李晓亮'

SELECTSUBSTRING(@varl,2,1)

SELECT@varl

(4)获取当前系统日期和对应的年,月,日。

显示结果。

selectGETDATE()as'当前日期'

(5)将字符串‘050624’的类型转换为数值型和日期型,显示结果。

DECLARE@varlchar(50)

SET@varl='050624'

SELECTYEAR(@varl)

SELECT@varl

SELECTMONTH(@varl)

SELECT@varl

SELECTDAY(@varl)

SELECT@varl

(6)将数值506的类型转换为日期型,显示结果。

2、在数据库PXSCJ中完成如下T-SQL编程(选做题,任选其中8道题)

【1】创建局部变量@var1、@var2并赋值,然后输出变量的值。

DECLARE@varlchar(10),@var2char(30)

SELECT@varl='12',@var2='21'

SELECT@varlAS'变量',@var2AS'变量'

【2】创建一个名为sex的局部变量,并在SELECT语句中使用该局部

DECLARE@Stringchar(10)

SET@String='计算机'

SELECT@String

【3】使用查询给变量赋值。

DECLARE@achar(8)

SET@a=(SELECT姓名

FROMxsb

WHERE学号='081101')

SELECT@a

【4】使用SELECT给局部变量赋值。

【5】给局部变量赋空值。

DECLARE@var1nvarchar(30)

SELECT@var1='刘丰'

SELECT@var1=

SELECT姓名

FROMxsb

WHERE学号='089999'

SELECT@var1AS'NAME'

【6】使用游标变量。

【7】在master数据库中,建立表bitop,并插入一行,然后将a字段和b字段列上值进行按位与运算。

【8】查询成绩高于“林一帆”最高成绩的学生姓名、课程名及成绩。

usepxscj

go

select姓名,课程名,成绩

fromxsb,cjb,kcb

where成绩>all

selectb.成绩

fromXSBa,cjbb

wherea.学号=b.学号anda.姓名='林一帆'

ANDxsb.学号=cjb.学号

ANDkcb.课程号=cjb.课程号

AND姓名<>'林一帆'

【9】查询总学分在40~50的学生学号和姓名。

SELECT学号,姓名

FROMXSB

WHERE总学分>=40AND总学分<=50

【10】查询总学分在范围40~50之外的所有学生的学号和姓名。

【11】查询课程名以“计”或C开头的情况。

【12】查询所有选课学生的姓名。

【13】多个字符串的联接。

【14】如下程序用于查询总学分大于42的学生人数。

DECLARE@numint

SELECT@num=(SELECTCOUNT(姓名)FROM学生表WHERE总学分>42)

IF@num<>0

SELECT@numAS'总学分>42的人数'

 

【15】如果“数据库原理”课程的平均成绩高于75分,则显示“平均成绩高于75分”。

【16】IF…ELSE语句的嵌套使用。

【17】使用第一种格式的CASE语句根据性别值输出“男”或“女”。

【18】将学号为081101的学生的总学分使用循环修改到大于等于60,每次只加2,并判断循环了多少次。

【19】判断是否存在学号为081128的学生,如果存在则返回,不存在则插入081128的学生信息。

【20】如下语句设定在早上八点执行存储过程sp_addrole。

【21】显示ABS函数对三个不同数字的效果。

selectabs(-4.0),abs(0.0),abs(9.0)

【22】如下程序通过RAND函数返回随机值。

selectstr(RAND()*100)

go

【23】查找字符串'sql'的最左端字符的ASCII的值。

【24】返回课程名最左边的4个字符。

selectleft(课程名,4)

fromkcb

orderby课程名

【25】使用LTRIM字符删除字符变量中的起始空格。

【26】如下程序在一列中返回XSB表中的姓氏,在另一列中返回表中学生的姓名。

【27】显示字符串“China”中每个字符的ASCII值。

DECLARE@aint,@bchar(8)

set@a=1

set@b='China'

while@a<=datalength(@b)

begin

selectascii(substring(@b,@a,1))as'ascii码'

char(ascii(substring(@b,@a,1)))as'字符'

set@a=@a+1

end

【28】如下程序将检索总学分50-59分的学生姓名,并将总学分转换为char(20)。

【29】声明了一个游标,并用SELECT显示@@CURSOR_ROWS的值。

【30】用@@FETCH_STATUS控制在一个WHILE循环中的游标活动。

【31】创建用户定义函数,实现计算全体学生某门功课的平均成绩的功能。

【32】调用例31定义的函数average。

【33】调用例31中计算平均成绩的函数。

【34】在PXSCJ中建立一个course表,并将一个字段定义为计算列。

【35】对于PXSCJ数据库,为了让学生查询其各科成绩及学分,可以利用XSB、KCB、CJB三个表,创建视图。

【36】调用st_score()函数,查询学号为“081101”学生的各科成绩及学分。

【37】在PXSCJ数据库中创建返回表的函数,通过以学号作为实参,调用该函数,可显示该学生各门功课的成绩和学分。

【38】如下语句查询学号为081101学生的各科成绩和学分。

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

当前位置:首页 > 自然科学 > 化学

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

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