MYSQL基础上机练习题(七)T-SQL程序设计,实现n位求和

时间:2024-03-30 14:02:08

实验目标:

掌握T-SQL语言及程序设计的方法

实验结果:

一、T-SQL程序设计逻辑

1.完成计算1~100之间所有能被3整除的数据的个数和总和后,完成下列问题:

① 1+2+3+...+100的总和。输出结果如下所示,将相应的T-SQL描述。(注意去除多作的空白格)

 MYSQL基础上机练习题(七)T-SQL程序设计,实现n位求和

② 若求1+2+3+...n的总和,其中n为一局部变量,程序又将做何修改,将相应的T-SQL描述。

 MYSQL基础上机练习题(七)T-SQL程序设计,实现n位求和

③ 10!参考的结果如下所示,将相应的T-SQL描述。

 MYSQL基础上机练习题(七)T-SQL程序设计,实现n位求和

2.补充完成下面程序,统计随机产生的10000~1之间的小数以0.5为分界出现的次数,用以说明随机数的均匀性

 MYSQL基础上机练习题(七)T-SQL程序设计,实现n位求和

3.补充完成下面程序,在以往的练习题找张student表,在该表中查找“李艳”的信息,若找到,则显示该生的学号、姓名、专业,否则显示查无此人。

MYSQL基础上机练习题(七)T-SQL程序设计,实现n位求和

4.补充完成下面程序,统计随机产生的10000~1之间的小数以0.5为分界出现的次数,用以说明随机数的均匀性

declare @r numeric(10,2)  --产生的随机数

declare    int                   --随机数个数

declare @n1         int          --小于0.5随机数总个数

declare @n2       int            --大于0.5随机数总个数  

set @m    1                          --初始

set @n1 =0         

set @n2   =0       

while @m <=1000                  --产生1000随机数个数

begin

   Set @r=rand()                        --使用rand()函数产生随机数

   if( @r<=0.5          )

         @[email protected]+1                  --统计小于0.5随机数个数

   else

      @[email protected]+1                     --统计大于0.5随机数个数

   set @[email protected]+1

end

 Print’小于等于0.5的随机数出现了[email protected]+             --输出小于0.5的随机数出现了的次数

 Print’大于0.5的随机数出现了[email protected]+             --输出大于0.5的随机数出现了的次数

 

5.补充完成下面程序,在以往的练习题找张student表,在该表中查找“李艳”的信息,若找到,则显示该生的学号、姓名、专业,否则显示查无此人。

Declare @sno char(20),@sn varchar(20),@dept varchar(20)                --声明三个变量分别表示学号,姓名,专业

Select @sno=学号,@sn=姓名,@dept=系别          --若从student表找到李艳,则赋值给前面声明的三个变量

from         

where           

if(  @sn!=’李艳’          )

  Print‘查无此人’               --输出查无此人

else

 Select 学号,姓名,系别 from student where 姓名[email protected]               --输出该生的学号、姓名、专业

效果:

若无李艳,则如下图所示

MYSQL基础上机练习题(七)T-SQL程序设计,实现n位求和

MYSQL基础上机练习题(七)T-SQL程序设计,实现n位求和

二、课后练习

1.准备CPXS数据库包含如下三个表:

① CP(产品编号,产品名称,价格,库存量);  

② XSS(客户编号,客户名称,地区,负责人,电话);  

③ CPXSB(产品编号客户编号,销售日期,数量,销售额);

三个表结构如图所示。

MYSQL基础上机练习题(七)T-SQL程序设计,实现n位求和MYSQL基础上机练习题(七)T-SQL程序设计,实现n位求和MYSQL基础上机练习题(七)T-SQL程序设计,实现n位求和

MYSQL基础上机练习题(七)T-SQL程序设计,实现n位求和

执行sql脚本,将相关数据导入,完成以下问题。

INSERT [dbo].[cp] ([产品编号], [产品名称], [价格], [库存量]) VALUES (N'100001', N'彩色电视机                    ', 3000, 10)
GO
INSERT [dbo].[cp] ([产品编号], [产品名称], [价格], [库存量]) VALUES (N'100002', N'洗衣机                        ', 1200, 20)
GO
INSERT [dbo].[cp] ([产品编号], [产品名称], [价格], [库存量]) VALUES (N'100003', N'冰箱                          ', 1800, 12)
GO
INSERT [dbo].[cp] ([产品编号], [产品名称], [价格], [库存量]) VALUES (N'100004', N'电热水器                      ', 2000, 30)
GO
INSERT [dbo].[cp] ([产品编号], [产品名称], [价格], [库存量]) VALUES (N'100005', N'太阳能热水器                  ', 2200, 8)
GO
INSERT [dbo].[cp] ([产品编号], [产品名称], [价格], [库存量]) VALUES (N'100006', N'1匹空调                       ', 1800, 5)
GO
INSERT [dbo].[cp] ([产品编号], [产品名称], [价格], [库存量]) VALUES (N'100007', N'1.5匹空调                     ', 3800, 6)
GO
INSERT [dbo].[cp] ([产品编号], [产品名称], [价格], [库存量]) VALUES (N'100008', N'彩色电视机                    ', 3000, 10)
GO
INSERT [dbo].[cp] ([产品编号], [产品名称], [价格], [库存量]) VALUES (N'100011', N'MP3                           ', 900, 10)
GO
INSERT [dbo].[cpxsb] ([产品编号], [客户编号], [销售日期], [数量], [销售额]) VALUES (N'100001', N'000004', CAST(0x672A0B00 AS Date), 5, 8000)
GO
INSERT [dbo].[cpxsb] ([产品编号], [客户编号], [销售日期], [数量], [销售额]) VALUES (N'100002', N'000001', CAST(0x032A0B00 AS Date), 1, 1200)
GO
INSERT [dbo].[cpxsb] ([产品编号], [客户编号], [销售日期], [数量], [销售额]) VALUES (N'100003', N'000005', CAST(0x482A0B00 AS Date), 2, 6000)
GO
INSERT [dbo].[xss] ([客户编号], [客户名称], [地区], [负责人], [电话]) VALUES (N'000001', N'广电公司                      ', N'镇江      ', N'张三    ', N'111111112   ')
GO
INSERT [dbo].[xss] ([客户编号], [客户名称], [地区], [负责人], [电话]) VALUES (N'000002', N'家电市场                      ', N'无锡      ', N'李四    ', N'222222222   ')
GO
INSERT [dbo].[xss] ([客户编号], [客户名称], [地区], [负责人], [电话]) VALUES (N'000003', N'电器商场                      ', N'上海      ', N'王五    ', N'333333333   ')
GO
INSERT [dbo].[xss] ([客户编号], [客户名称], [地区], [负责人], [电话]) VALUES (N'000004', N'小家电商场                    ', N'南京      ', N'赵六    ', N'666666666   ')
GO
INSERT [dbo].[xss] ([客户编号], [客户名称], [地区], [负责人], [电话]) VALUES (N'000005', N'广电公司                      ', N'南京      ', N'张三    ', N'111111122   ')
GO
ALTER TABLE [dbo].[cpxsb]  WITH CHECK ADD  CONSTRAINT [FK__cpxsb__产品编号__145C0A3F] FOREIGN KEY([产品编号])
REFERENCES [dbo].[cp] ([产品编号])
GO
ALTER TABLE [dbo].[cpxsb] CHECK CONSTRAINT [FK__cpxsb__产品编号__145C0A3F]
GO
ALTER TABLE [dbo].[cpxsb]  WITH CHECK ADD  CONSTRAINT [FK__cpxsb__客户编号__15502E78] FOREIGN KEY([客户编号])
REFERENCES [dbo].[xss] ([客户编号])
GO
ALTER TABLE [dbo].[cpxsb] CHECK CONSTRAINT [FK__cpxsb__客户编号__15502E78]
GO

2.创建一名为 Product_name的局部变量,给变量赋值为“冰箱”,查找变量 Product_name对应的“价格”和“库存量”。结果如图所示。

 MYSQL基础上机练习题(七)T-SQL程序设计,实现n位求和

3.创建一个名为Price的局部变量,将产品编号为‘100002’的价格赋值给Price。判断商品的价值是否合理,若商品价格大于3000则输出“价格偏高”,否则输出“价格合理”。最后输出该商品的价格,结果如图所示。

 MYSQL基础上机练习题(七)T-SQL程序设计,实现n位求和

4.编写一段程序判断CP表中价格与平均值的比较,将低于平均值的数据行输出来,结果如图所示。

 MYSQL基础上机练习题(七)T-SQL程序设计,实现n位求和

5.编写一段程序查看有无客户编号为‘000004’的销售记录,若有,则输出“有”,并查询显示该客户销售的产品信息,若无,则输出“无该客户信息”。

MYSQL基础上机练习题(七)T-SQL程序设计,实现n位求和