数据库实验五_第1页
数据库实验五_第2页
数据库实验五_第3页
数据库实验五_第4页
数据库实验五_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、西南石油大学实验报告课程名称:数据库原理插入你的照片实验项目名称:实验项目5 Transact-SQL编程专业年级班级、姓名、学号:电子邮件地址:实验所用机器名:实验时间地点:2015.12.25实验指导教师:孙瑜成绩批改人批改日期注意:在粘贴截图时请保留窗口完整标题,但只需保留关键界面,多余的空白界面请删除。一、实验课时:2二、实验目的(1) 学习如何编写简单的Transact-SQL程序。(2) 掌握函数的使用。(3) 学习如何执行Transact-SQL程序。(4) 掌握简单存储过程的编写方法。(5) 掌握简单自定义函数的编写方法。三、实验要求(1) 使用SQL Server 2008查

2、询分析器。(2) 严格依照操作步骤进行。四、实验环境(1) PC机。(2) SQL Server 2008。五、实验内容及步骤1使用局部变量、全局变量(1)定义一个tinyint的整型变量,为其赋值45,并显示变量的值。DECLARE LENGTH tinyintSET LENGTH = 45PRINT LENGTH;(2)定义一个长度为20的可变长度型字符变量,为其赋值“Welcome to SWPU”, 并显示变量的值。DECLARE str nchar(20)SET str = 'Welcome to SWPU'PRINT str(3)查询当前数据库服务器名。select

3、 SERVERNAME(4)查询当前数据库管理系统版本。SELECT VERSION;2函数的使用(1) 数学函数的使用分别用函数求出-3的绝对值,16的平方根,5的三次方。DECLARE i int;SET i = -3;SELECT ABS(i);GOselect sqrt(16)select power(5,3)(2) 字符串函数的使用1)分别将字符串“china”、“MACHINE”转换成大写、小写字母;select upper('china')select lower('MACHINE')2)去掉字符串“ machine ”左边的空格,再与“china

4、”及“press“连接起来;select 'china'+LTRIM(' machine ')+'press'3)去掉字符串“ machine ”右边的空格,再与“china”及“press“连接起来;select 'china'+RTRIM(' machine ')+'press'4)去掉字符串“ machine ”左右两边的空格,再与“china”及“press“连接起来;select 'china'+LTRIM(RTRIM(' machine ')+'p

5、ress'5)将字符串“abcdabcd”中的所有字符“a”换为字符“h”。declare c varchar(10)set c='abcdabcd'print replace(c,'a','h')(3) 日期、时间函数的使用1)返回系统当前日期并以整数形式返回当前日期的年份、月份、日及季度;select GETDATE()select YEAR(getdate()select MONTH(getdate()select DAY(GETDATE()SELECT datepart(quarter,GETDATE()2)返回给定日期“2006

6、-2-21”与当前日期相差的天数。declare a datetime set a = '2006-02-21'select DATEDIFF(DAY,a,GETDATE() (4) 系统函数与元数据函数的使用1)显示正在使用的用户名、数据库名;select USER_NAME(),DB_NAME()2)返回当前主机标识及主机名称。select HOST_ID() as 当前主机标识select HOST_NAME() as 当前主机名称3编写较复杂的Transact-SQL程序(1) 在COMPANY数据库中,我们将员工的工资水平分为三类,即工资小于30000为低工资,工资大

7、于等于30000且小于50000为中等工资,工资大于等于50000为高工资。请显示所有员工的姓名及其对应的工资水平。SELECT Ssn, '工资水平' = CASEWHEN(Salary < 30000)THEN '低工资'WHEN(Salary >= 30000 AND Salary < 50000)THEN '中等工资'WHEN(Salary >= 50000)THEN '高工资'ENDFROM EMPLOYEE(2) 用TransactSQL语言编写程序计算1100之间所有能被7整除的数的总和。de

8、clare sum int,i intset sum = 0set i = 0while i <= 100beginif(i % 7 = 0)set sum = sum + iset i = i + 1endprint sum4编写简单存储过程(1) 在COMPANY数据库中,编写一存储过程:输入参数为部门编号,查询该部门员工的FNAME,LNAME,SSN,SEX和DNAME信息create PROCEDURE departemdnum smallint,FNAME nvarchar(50) OUTPUT,LNAME nvarchar(50) OUTPUT,SSN char(9) OU

9、TPUT,SEX char(2) OUTPUT,DNAME nvarchar(50) OUTPUTasbeginselect Fname,Lname,Ssn,Sex,dname from EMPLOYEE join DEPARTMENT on Dno = Dnumberwhere dnum = dnoend(3) 调用前面创建的存储过程,查询部门5的员工信息declare FNAME nvarchar(50),LNAME nvarchar(50),SSN char(9),SEX char(2),DNAME nvarchar(50)exec dbo.departem 5,FNAME OUTPUT

10、,LNAME OUTPUT,SSN OUTPUT,SEX OUTPUT,DNAME OUTPUTselect FNAME ,LNAME ,SSN ,SEX ,DNAME5编写简单自定义函数(1) 在COMPANY数据库中,编写一自定义函数:自变量为部门编号,返回值为该部门的员工总数create function fn_count(myinput smallint)returns smallintasbegindeclare zong smallintselect zong = COUNT(*) from EMPLOYEE where myinput = Dnoreturn zongend(2) 调用前面创建的自定义函数,查询所有的部门编号,部门名称以及该部门的员工人数SELECT distinct Dnumber,Dname,dbo.fn_count(dno) as 总人数FROM EMPLOYEEjoin DEPARTMENT on Dno = Dnumber 六、收获,体会及问题(请详细书写,写得越详细、越个性化、越真实越好,否则我不知道你做这个实验的心路历程,也就无法充分地判断你是否是独立完成的这个实验、你是否在做这个实验时进行了认真仔细地思考、通过这个实验你是否在实践能力上得到了提高)通过本次实验,知道

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论