一、实验目的:
1、掌握T-SQL变量的定义和使用
2、掌握T-SQL控制流语句
3、掌握存储过程的使用方法
二、实验内容:
1、定义一个变量,将其声明为char 类型,并使用两种语句为其赋值。并使用print和select 语句打印变量的值。
(1)定义变量
(2)使用set赋值并用print打印
(3)使用select赋值并用select打印
2. 编写一个批量,计算1到100的偶数和。(使用while)
(1) sql语句
(2) 执行结果
3. 编写一个批量,针对Toys表,如果价格大于25元的玩具数量在10种之上,则打印下列消息‘Maybe the price of toys on globaltoyz is not cheap ’,否则,打印消息‘You can search something on globaltoyz’。(使用IF…ELSE语句)
(1)定义变量存储符合条件的数量
(2) 判断条件输出语句
(3) 执行结果
4.(使用简单的CASE语句)对于Shopper表,查询代码为‘000020’的详细情况,根据该用户所使用的信用卡信息打印不同的信息,如果其使用的是 ‘Master Card’,打印消息‘Great priority’,如果使用的是 ‘Visa Card’,打印消息 ‘Potential’,否则答应消息 ‘Normal’。
(1)定义变量存储信用卡信息
(2) 判断条件输出语句
(3) 执行结果
5.(使用搜索的CASE语句)对于Position表,其中可以看到每个职位的人员配备情况,根据Position表中的每个职位的人员缺少数,我们分别打印不同的消息,如果缺少数在20人以上,打印‘奇缺’,在5~20之间,打印‘适中’,如果在5人以下,则打印‘或缺’。提示:人员缺少数应该根据预算人数(iBudgetedStrength)和当前人数(iCurrentStrength)之差求出来。
(1)sql语句
(2) 执行结果
6. 针对外部候选人表,计算所有人的平均成绩,如果平均分大于80,则将所有人的成绩降低5%,否则将所有人的成绩降低3%。
(1)定义变量存储平均分
(2) 判断条件执行不同语句
(3) 执行结果
7. Toys表包含由零售机构出售的所有玩具的信息。Toys表的siToyQOH列存储各玩具的零件数量,cToyId列存储各玩具的Toy Id。当玩具代号为’000029’的玩具的siToyQOH列的值大于0时,使用适当的编程构造显示短语“Product available”。如果存储在siToyQOHd的值为0时,那么显示短语“Product not available”。
(1)声明变量存储
(2) 判断条件打印短语
(3) 执行结果
8. 如果Toys表中存在着没有被人订购过的玩具,请打印这些玩具的详细信息,否则打印‘All toys have been ordered!’
(1)sql语句
(2) 执行结果
9. 创建一个存储过程,能够显示要求礼物包装(Orderdetail表)的订单的号码和附言。执行相应的存储过程。
(1)定义存储过程
(2) 执行存储过程
(3) 执行结果
10. 创建一个存储过程,参数是接收国家的ID和名称,将其插入到Country表中。执行该过程。
(1)定义存储过程
(2) 执行存储过程
(3) 执行结果
11. 创建一个存储过程,接收国家的ID,在Shopper表,Recipient表和ShippingRate表中查找该国家是否被参照引用,如果该国家值没有被引用,则删除相应的国家记录。执行该过程。
(1)创建存储过程
(2) 执行存储过程
(3) 执行结果
(上一题中加的050删除了)
12. 创建一个存储过程,该存储过程接收玩具的ID,显示相应的玩具的名称和价格。执行过程。
(1)sql语句
(2) 执行结果
13. 创建一个存储过程,能够根据提供的订单号码显示相应的订单信息,如果没有提供订单号码,则打印消息‘No Order No’。执行该过程。
(1)sql语句
(2) 有参执行结果
(3)空参执行结果
14. 创建存储过程,接收姓和名,在SHOPPER表中查找相应的订购者详细信息。
(1)sql语句
(2) 执行结果
15. 创建存储过程,对于接收的订单号,如果该订单订购的总花费在60元以上,则打印消息并返回值0,否则打印相应消息并返回值1。
(1)sql语句
(2) 执行结果
16. 创建存储过程,能够接收玩具ID,并按下列格式打印出该玩具的名称,描述和价格,并列出订购了该玩具的订单的详细信息,写出相应的所有存储过程。如下所示:
The Name of toy : Robby the Whale
The Description of toy: A giant Blue Whale w
The Price of toy : 8.99
cOrderNo cToyId siQty cGiftWrap cWrapperId vMessage mToyCost
--------------------------------------------------------------------
000005 000001 4 Y 001 Happy Birthday 35.96
(1)sql语句
(2) 执行结果