第一范文网 - 专业文章范例文档资料分享平台

实验八 T—SQL语言答案

来源:用户分享 时间:2026/1/9 16:57:27 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

实验八 T-SQL

学生班级

语言的应用

学号 姓名:

【实验一】函数及基本语句

(1)计算你来到人世的总天数。

SELECT N'

'=DATEDIFF(DAY,'1991-02-07',GETDATE())

(2)计算年龄为整77岁对应的总天数。

select SELECT N'

N'77岁人的生日

'=dateadd(year,-77,getdate())

'=DATEDIFF(DAY,'1934-10-31',GETDATE()) SELECT N'

'=DATEDIFF(DAY,dateadd(year,-77,getdate()),GETDATE())

(3)计算出生日期为1990年12月21日的人的年龄。

SELECT N'

'=DATEDIFF(year,'1990-12-21',GETDATE())

(4)将数值型数据11.34转换成字符型,要求长度为6位,小数位数为2位。

declare @x float set @x=11.34

select STR(@x,6,2)

(5)查询课程表中课程名称是4个字的课程信息。

select * from course where len(cname)=4

(7)利用变量和打印语句显示最大报名人数和最小报名人数。declare @max_bmrs int,@min_bmrs int select

@max_bmrs=MAX(

数),@min_bmrs=min(报名人数) from student print @max_bmrs print @min_bmrs

(8)求10!。

declare @inti int declare @s bigint set @s=1 set @inti=1 while @inti<11 begin

set @s=@s*@inti set @inti=@inti+1 end print @s

【实验二】编程获取某雇员的工作业绩信息

题目要求: 使用T-SQL编程,获取“王孔若”的姓名、性别、出生年月及雇用日期等信息;然后输出“王孔若”所做订单的明细表、订单数目及订单总金额。 实例分析:由于订单明细表具体信息分布在p_order表(订单表)、product 表(产品表)、 customer表(客户表)中,故需要用SELECT语句提取出这 些表中的有用信息。所以,本题的完成涉及多个表操作。 在下面粘贴你所使用的SQL语句。 语句提示:

--定义SQL server的变量,必须以@开头命名变量,用DECLARE定义变量 --为变量赋值

--通过查询语句将字段的值赋值给变量

--用PRINT语句结合函数格式化输出变量的值 --输出雇员'王孔若'完成的订单明细

--输出雇员'王孔若'完成的订单数目以及订单总金额

USE companyinfo

--定义SQL server的变量,必须以@开头命名变量,用DECLARE定义变量 DECLARE @emp_Id int DECLARE @name varchar(8) DECLARE @sex char(2) DECLARE @date1 datetime DECLARE @date2 datetime --为变量赋值

SET @name='王孔若'

--通过查询语句将字段的值赋值给变量

SELECT @emp_Id=雇员id,@sex=性别,@date1=出生日期,@date2=雇佣日期 FROM employee WHERE 姓名=@name

--用PRINT语句结合函数格式化输出变量的值 PRINT '姓名: '+@name+' 性别:'+@sex

+' 出生年月:'+convert(char(4),year(@date1))+ '年' +convert(char(2),month(@date1))+ '月' +convert(char(2),day(@date1))+ '日'

+' 雇用日期:'+convert(char(4),year(@date2))+ '年' +convert(char(2),month(@date2))+ '月' +convert(char(2),day(@date2))+ '日' --输出雇员'王孔若'完成的订单明细

SELECT customer.公司名称,customer.联系人姓名,

product.产品名, p_order.数量,p_order.订货日期, employee.姓名 ,product.单价

FROM employee,customer,product,P_order WHERE employee.雇员ID= @emp_Id and P_order.雇员ID=employee.雇员ID and P_order.产品ID=product.产品ID and P_order.客户ID=customer.客户ID SELECT

count(*)

as

目,sum(P_order.数量*product.单价) as 总金额 FROM employee,product,P_order

WHERE employee.雇员id= @emp_Id and P_order.雇员id=employee.雇员id and P_order.产品id=product.产品id

【实验二】

题目要求: 雇员“王孔若”签订了一个供应给“鹿城中学”50个优盘的订单,编程实现将订单涉及的相关信息写入数据库中。

实例分析:一条订单会涉及产品、客户及雇员的有关信息,且这些信息分别存放在不同的表中,所以,要将订单涉及的相关信息写入数据库中,需要完成以下几方面的操作。

先要获取该订单的相关信息。然后在将这条订单信息添加到订单表(p_order)中的同时,还必须修改其他表中的信息,包括在客户表(customer)中添加对应于该订单记录对应

的客户信息,在产品表(product)中修改产品的库存量,其值必须为当前库存量的值减去刚增加的订单记录中包含的数量值。

同理,如果某雇员取消了一个订单,在各表中也必须修改或删除相应的记录信息。 在下面粘贴你所使用的SQL语句。 声明变量提示: --雇员ID

--客户ID的最大值 --订单ID的最大值 --产品的库存量

--供应产品的产品编号

USE companyInfo

DECLARE @userId int --保存雇员ID

DECLARE @max_cusId int --保存客户ID的最大值 DECLARE @max_ordId int --保存订单ID的最大值 DECLARE @storePro int --保存产品的库存量

DECLARE @id_product int --保存供应产品的产品编号 SELECT @max_cusId=max(客户ID) FROM customer

SELECT @max_cusId=@max_cusId+1 --获取新插入客户的ID INSERT customer VALUES(@max_cusId, '鹿城中学', '李汉明', '05778235423','温州市学院路号','325000')

SELECT @storePro=库存量,@id_product=产品ID FROM product WHERE 产品名='优盘'

SELECT @max_ordId=max(订单ID) FROM P_order

SELECT @max_ordId=@max_ordId+1 --获取要插入的订单信息的订单ID SELECT @userId=雇员ID FROM employee WHERE 姓名='王孔若' IF @storePro<50

PRINT '库存量不够' ELSE BEGIN

INSERT P_order VALUES(@max_ordId,@id_product, 50,@userId,@max_cusId,getdate())

UPDATE product SET 库存量=库存量-50 WHERE 产品ID=@id_product END

搜索更多关于: 实验八 T—SQL语言答案 的文档
实验八 T—SQL语言答案.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c041bg57p5d47ty70k26g_1.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top