实验8:T-SQL编程-批量

更新时间:2023-10-22 22:39:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

GDOU-B-11-112

广东海洋大学学生实验报告书

实验名称 实验8:批量 学院(系) 学生姓名

实验目的:

掌握T-SQL变量的定义和使用 掌握T-SQL控制流语句 实验内容

针对GlobalToyz和Recruitement数据库,按要求完成下列题目。

1. 定义一个变量,将其声明为char 类型,并使用两种语句为其赋值。并使用print和select 语句

打印变量的值。 DECLARE @var CHAR; SET @var = 'A'; SELECT @var = 'B'; SELECT @var;

2. 编写一个批量,计算1到100的偶数和。(使用while)

DECLARE @sum INT = 0, @i INT = 0 WHILE (@i <= 100) BEGIN

SELECT @sum = @sum + @i SELECT @i = @i + 2 CONTINUE END SELECT @sum

3. 编写一个批量,针对Toys表,如果价格大于25元的玩具数量在10种之上,则打印下列消息‘Maybe

the price of toys on globaltoyz is not so cheap ’,否则,打印消息‘You can search something on globaltoyz’。(使用IF?ELSE语句)

IF (SELECT COUNT(*) FROM Toys WHERE mToyRate > 25) > 10 PRINT 'Maybe the price of toys on globaltoyz is not so cheap' ELSE

PRINT 'You can search something on globaltoyz'

课程名称 数据库原理及应用

专业

软件工程 实验地点

班级

学号

成绩

软件学院

实验日期

4. (使用简单的CASE语句)对于Shopper表,查询代码为‘000020’的详细情况,根据该用户所

使用的信用卡信息打印不同的信息,如果其使用的是 ‘Master Card’,打印消息‘Great priority’,如果使用的是 ‘Visa Card’,打印消息 ‘Potential’,否则答应消息 ‘Normal’。 DECLARE @message VARCHAR(20) SELECT @message =

CASE (SELECT vCreditCardType FROM Shopper WHERE cShopperId = '000020')

WHEN 'Master Card' THEN 'Great priority' WHEN 'Visa Card' THEN 'Potential' ELSE 'Normal'

END

PRINT @message

5. (使用搜索的CASE语句)对于Position表,其中可以看到每个职位的人员配备情况,根据Position

表中的每个职位的人员缺少数,我们分别打印不同的消息,如果缺少数在20人以上,打印‘奇缺’,在5~20之间,打印‘适中’,如果在5人以下,则打印‘或缺’。提示:人员缺少数应该根据预算人数(iBudgetedStrength)和当前人数(iCurrentStrength)之差求出来。 SELECT vDescription, Info = CASE

WHEN iBudgetedStrength - iCurrentStrength > 20 THEN '奇缺'

WHEN (iBudgetedStrength - iCurrentStrength >= 5 AND iBudgetedStrength - iCurrentStrength WHEN (iBudgetedStrength - iCurrentStrength < 5) THEN '或缺'

<= 20) THEN '适中' END FROM Position

6. 针对外部候选人表,计算所有人的平均成绩,如果平均分大于80,则将所有人的成绩降低5%,否

则将所有人的成绩降低3%。

IF (SELECT AVG(siTestScore) FROM ExternalCandidate) > 80 UPDATE ExternalCandidate SET siTestScore = siTestScore * 0.95 ELSE

UPDATE ExternalCandidate SET siTestScore = siTestScore * 0.97

7. Toys表包含由零售机构出售的所有玩具的信息。Toys表的siToyQOH列存储各玩具的零件数量,

cToyId列存储各玩具的Toy Id。当玩具代号为’000029’的玩具的siToyQOH列的值大于0时,使用适当的编程构造显示短语“Product available”。如果存储在siToyQOHd的值为0时,那么显示短语“Product not available”。

DECLARE @isAvailable VARCHAR(4) = ''

IF (SELECT siToyQoh FROM Toys WHERE cToyId = '000029') = 0 SET @isAvailable = 'not '

PRINT 'Product ' + @isAvailable + 'available'

本文来源:https://www.bwwdw.com/article/y03f.html

Top