数据库应用实验报告T-SQL编程

时间:2024.5.13

内蒙古工业大学信息工程学院

实 验 报 告

课程名称:         数据库应用                              

实验名称:        T-SQL编程                               

实验类型: 验证性□ 综合性□ 设计性□

实验室名称:        九楼机房                            

班级             学号              

姓名:           组别:           

同组人:           成绩:          

实验日期:                          

预习报告成绩:        指导教师审核(签名):               年    月    日

预习报告

一、实验目的

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

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

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

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

5.掌握系统函数及用户自定义函数的使用。

二、实验内容

    1.自定义数据类型的使用

    (1)对于实验1给出的数据库表结构,自定义1个数据类型ID—type,用于描述员工编号。在查询分析器编辑窗口输入如下程序并执行:

    USE YGGL

    EXEC sp_addtype’ID_type’,

    ‘char(6)’,’not null’

    GO

    注意:不能漏掉单引号。

    (2)重新创建YGGL数据库的Employees表。在查询分析器编辑窗口输入如下程序并执行:

    USE YGGL

    IF EXISTS(SELECT name FROM sysobjects

               WHERE type=‘U’and name='Employees’)

        DROP table employees

    /*首先在系统表中查看EmployeeS表是否存在,若存在,删除该表

    CREATE TABLE Employees

    (  EmployeelD ID_type,    /*定义字段EmployeelD的类型为ID_type

 Name char(10)NOT NULL.

    Birthday datetime NOT NULL.

    Sex bit NOT NULL.

    Address char(20)NOT NULL.

    Zip char(6)NULL,

    PhoneNumber char(12)NULL,

    EmailAddree char(20)NULL,

DepartmentlD char(3)NOT NULL)

GO

【思考与练习】

  编写如下程序:

  (1)自定义1个数据类型,用于描述YGGL数据库中的DepartmentlD宁段,然后编写代码重新定义数据库的各表。

  (2)当对Departments表的DepartmentID字段值修改时,对Employees表中对应的 DepartmentID字段值也进行相应修改。

  (3)对Employees表进行修改时,不允许对DepartmentID宁段值进行修改。

   2.自定义函数的使用

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

    在查询分析器的编辑窗口输入如下程序并执行:

    CREATE FUNCTION CHECK_ID

    (@departmentid char(3))

    RETURNS integer AS

    begin

    declare@num int

    IF EXISTS(SELECT departmentlD FROM departments

    WHERE@departmentid=departmentlD)

    select  @num=0

    ELSE

    select  @num=-l

    return  @num

    end

    Go

(2)写一段T-SQL脚本程序调用上述函数。当向Employees表插入1条记录时,首先调用函数CHECK_ID检索该记录的DepartmentlD之值在表Departments的DepartmentlD字段中足否存在对应值,若存在,则将该记录插入Employees表。

    在查询分析器编辑窗口输入如下程序并执行:

    USE yggl

    declare@hum int

    select@num=dbo.Check_id(‘2’)

    if@num=O

    insert employees

            values(’990210,,’张文’,1982-03-24,0,

    ‘南京镇江路2号’,’2l0009’,’3497534',’zhang@jlonline.com','2’)

Go

 【思考与练习】

  编写如下程序:

  创建一个用户自定义函数,利用该函数计算从键盘上任意输入的一个整数的阶乘。

实验报告成绩:         指导教师审核(签名):             年    月    日

实验报告

1.自定义数据类型的使用

(1)对于实验1给出的数据库表结构,自定义1个数据类型ID—type,用于描述员工编号。

(2)重新创建YGGL数据库的Employees表.

2.自定义函数的使用

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

(2)写一段T-SQL脚本程序调用上述函数。当向Employees表插入1条记录时,首先调用函数CHECK_ID检索该记录的DepartmentlD之值在表Departments的DepartmentlD字段中足否存在对应值,若存在,则将该记录插入Employees表。


第二篇:数据库T-sql编程


T-sql 编程

一、目的和要求

1,  进一步巩固前面4章所学内容

2,  掌握用户自定义类型的使用

3,  掌握变量的分类及其使用

4,  掌握各种运算符的使用

5,  掌握各种控制语句的使用

6,  掌握系统函数和用户自定义函数的使用

二、准备

1,  了解t-ql支持的各种基本数据类型

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

3,  了解t-sql各种运算符,控制语句的功能和使用方法

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

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

三、内容

1、系统函数的使用:

1)使用rand()函数产生一个0-1的随机数,再产生一个10-99之间的随机数。

select RAND()

select RAND()*89-10

2)使用Square() 函数求7的平方。

select SQUARE(7)

3)使用sqrt()函数求9的平方根。

select sqrt(9)

4)使用ascii函数返回“china”字符串最左边的字符的ascii值。

select ascii(LEFT('china',1))

5)使用left()函数返回“china”左边开始的3个字符。

select LEFT('china',3)

6)使用right( )返回‘abcdefg’右边的4个字符

select right('abcdefg',4)

7)使用substring() 返回 ‘abcdefg’从第2个字符开始的连续5个字符

select substring('abcdefg',2,5)

8)请用ltrim,rtrim去除字符串('   ad   dad   dadfad     ’)左右两边的空格

select ltrim(rtrim('   ad   dad   dadfad     '))

9)定义两个变量,一个赋值为1,一个为2,请分别用select和print 显示出他们相加的结果。并说明他们有何区别

    declare @a int

declare @b int

set @a=1

set @b=2

select @a+@b

declare @a int

declare @b int

set @a=1

set @b=2

print @a+@b

Select是以结果的方式显示的,而print是以消息的方式显示的

10)说明char类型和varchar类型的区别。

数据类型

char表示的是固定长度;

varchar表示的是实际长度的数据类型

比如:如果是char类型,当你输入字符小于长度时,后补空格;而是varchar类型时,则表示你输入字符的实际长度

2流程控制语句的使用

1)判断员工编号为 “010008”的员工是否存在,如果存在请显示该员工的所有信息,否则,请显示“查无此人”。

if exists(select * from employees where employeeid='010008')

    select * from employees where employeeid='010008'

else

select '查无此人'

2)定义一个变量@x,初值为0,请用循环语句使该变量每次加1,直至变量值为6。

declare @x int

set @x=0

while @x<6

begin

set @x=@x+1

end

select @x

3)查出员工编号为‘010008’的员工的工资,假设每年工资加200。请问这位员工多少年后工资会加到5000?

select income from salary where employeeid='010008'

declare @a int

declare @b int

set @a=1582

set @b=0

while @a<5000

begin

set @a=@a+200

set @b=@b+1

end select @b

4)假设有字符串:‘abcdefghijlklmn’.请把这个字符串倒置显示。

declare @a varchar(15)

deCLARE @b varchar(15)

declare @s int

set @b=''

set @a='abcdefghijlklmn'

set @s=DATALENGTH(@a)

while @s>0

    begin

    set @b=@b+SUBSTRING(@a,@s,1)

    set @s=@s-1

    end

select @b

5)假设有字符串:‘aBcDsdfeEFg’。请把这个字符串转化为大写字符串显示(主意:数字,符号,大写字符及其他字符不用转换)。

1.

select UPPER('aBcDsdfeEFg')

2.

declare @i int

declare @x varchar(12)

set @x=''

set @i=0

while @i<12

 begin

  if(ASCII(SUBSTRING('aBcDsdfeEFg',@i,1))>=97 and ASCII(SUBSTRING('aBcDsdfeEFg',@i,1))<=122 )

      set @x=@x+char(ASCII(SUBSTRING('aBcDsdfeEFg',@i,1))-32)

  else

      set @x=@x+SUBSTRING('aBcDsdfeEFg',@i,1)

  set @i=@i+1

  end

select @x

6)实现1+2+3+4+……+100的T-sql程序。

   declare @a int

declare @s int

set @a=0

set @s=0

while @s<=100

begin

   set  @a=@s+@a

   set  @s=@s+1

end

select @a

7)实现1*2*3*4*5*6*7也就是7!。

declare @a int

declare @s int

set @a=1

set @s=1

while @s<=7

begin

   set  @a=@s*@a

   set  @s=@s+1

end

select @a

8)实现1!+2!+3!+…..+7!的T-sql程序

declare @n int

declare @s int

declare @a int

declare @b int

set @n=1

set @b=0

while @n<=7

 begin

   set @s=1

   set @a=@n

   while  @a>1

   begin

   set @s=@s*@a

   set @a=@a-1

   end

set @b=@b+@s

 set @n=@n+1

 end

 select @b

3自定义函数的使用

1)  编写函数f1。要求能够根据给定的两个int变量求出其中小的那一个值。

2)  编写函数f2。要求能够根据给定的三个int变量求出其中最大的那一个值。

3)  编写函数f3。对于一个给定的员工编号值,查询该值在员工表中是否存在,如存在返回‘该员工存在!’,否则返回‘该员工不存在!’。并调用该函数,判断员工编号为‘000001’的员工是否存在。

4)  编写函数f4:根据员工编号求出该员工的年收入,并调用该函数求出‘000001’员工的年收入。

5)  编写函数f5:根据员工编号求出该员工的年收入和年支出,并调用该函数求出‘’员工的年收入和年支出。

6)  编写函数f6。根据部门编号求出该部门的平均收入和平均支出,并调用该函数求出‘5’部门的平均收入和平均支出。(请先考虑该函数应为哪种函数?)

7)  编写函数f7。

先创建一个视图gy_view,该视图包括雇员编号及其所在部门和收入支出信息然后创建一个内嵌表值函数,实现根据雇员编号可通过视图gy_view查询其所在部门和该员工收入、支出。并调用该函数查询员工编号为‘020018’

四、实验总结(请写出你的困难和建议)

五、思考题

还记得的游标使用步骤吗?请试着用游标把雇员表中所有的信息逐行读取出来。

更多相关推荐:
数据库实验报告——

实验一SQLServer基本使用与数据定义一实验目的1掌握企业管理器及查询的定义方法使用方法2熟悉数据库建模及ER图的画法3掌握SQLServer中数据库及数据表的建立与管理方法4掌握数据的导入导出及数据库备份...

数据库实验报告

实验一SQLServer基本使用与数据定义一实验目的1掌握服务管理器企业管理器及查询分析器基本使用方法2熟悉数据库建模及ER图的画法3掌握SQLServer中数据库及数据表的建立与管理方法4掌握数据的导入导出及...

数据库实验报告(SQL)

SQLServer实验报告学号姓名专业信息管理与信息系统目录实训一数据库的基本操作实训二表实训三数据完整性实训四索引实训五数据查询实训六视图实训七TransactSQL程序设计实训八存储过程实训九触发器实训十S...

数据库设计实验报告

HEFEIUNIVERSITY数据库设计报告题目产品销售系统系别电子信息与电气工程系班级09级电气信息类5班学号0905075034姓名黄张祥指导老师方小红完成时间20xx510目录1问题描述311背景312数...

数据库实验报告范本

重庆大学经济与工商管理学院实验报告课程名称数据库原理及应用实验学期20xx年至20xx年第2学期学生所在学院经济与工商管理学院年级20xx专业班级电子商务01班学生姓名kcy学号指导教师签名实验最终成绩经管学院...

数据库实验报告

实验二数据库的简单查询连接查询组合查询和统计查询一实验目的1使用SQLSever查询分析器的使用方法2加深TransatSQL语言的查询语句的理解3熟练掌握简单表的数据查询数据排列和数据连接查询的操作方法4熟练...

SQL数据库实验报告

数据库系统及应用实验报告设计课题SQL20xx数据库安装及数据库建立专业班级山东大学通信二班小组成员王指导教师设计时间20xx12121题目一课程目的1学习安装SQLServer20xx2学习使用SQLServ...

大学数据库实验报告

西北师范大学计算机科学与工程学院学生实验报告学号20xx71020xx720xx年06月01日

数据库实验报告

数据库实验报告学号姓名班级成绩

数据库实验报告

西安科技大学数据库原理及应用课程设计报告题目寄宿学校管理信息系统的设计与实现学院计算机科学与技术学院专业及班级软件工程1202及1203班学号120xx10206120xx10207120xx10303姓名李倩...

数据库实验报告

实验7索引和数据完整性的使用1目的与要求1掌握索引的使用方法2掌握数据完整性的实现方法2实验准备1了解索引的作用与分类2掌握索引的创建方法3理解数据的完整性的概念与分类4掌握各种数据完整性的实现方法3实验内容1...

数据库实验报告

合肥师范学院实验报告册20xx20xx学年第2学期系别实验课程专业班级姓名学号指导教师计算机学院数据库原理实验一数据库基本操作一实验目的1熟悉MSSQLSERVER运行界面掌握服务器的基本操作2掌握界面操作方法...

数据库实验报告(30篇)