首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >_T-SQL程序练习01

_T-SQL程序练习01

原创
作者头像
会洗碗的CV工程师
修改2023-11-23 22:48:21
修改2023-11-23 22:48:21
31800
代码可运行
举报
文章被收录于专栏:LongJava学习资料LongJava学习资料
运行总次数:0
代码可运行

前言

T-SQL 即 Transact-SQL,是 SQL 在 Microsoft SQL Server 上的增强版,它是用来让应用程序与 SQL Server 沟通的主要语言。T-SQL 提供标准 SQL 的 DDL 和 DML 功能,加上延伸的函数、系统预存程序以及程式设计结构(例如 IF 和 WHILE)让程式设计更有弹性

Transact Structured Query Language 它是ANSI和ISO SQL 标准的Microsoft SQL Server方言或扩展,中文理解为:SQL SERVER专用标准结构化查询语言增强版。在 Microsoft SQL Server 7.0 中 T-SQL 有着为数不少的新增功能,包括新的预存程序、系统资料表、函数、资料型别、陈述式以及现存陈述式中的选项。这些都被保留在 SQL Server 2000 中,因此我们在这里要先回顾 (特别是在您还不很熟悉 SQL Server 7.0 中 T-SQL 的功能,这个温习就很重要了)。

创建一个表的时候,必须决定字段定义所要使用的数据类型。数据类型定义了可以存储在一个字段中的数据种类。DBA可以使用数据类型来定义变量和存储过程的输入和输出参数。你必须为每个字段或变量选择一个数据类型以适配于存储在相应字段或变量中的数据。另外,还需要考虑存储需求并选择高效率存储的数据类型。举个例子,想要存储介于0到255的正数时通常要用tinyint替代smallint,int或bigint。这是因为tinyint是一个固定的1字节字段,而smallint为2字节,int为4字节还有bigint为一个8字节的固定字段。

选择正确的数据类型还可以改善数据完整性。例如,如果为一个日期字段使用datetime数据类型,那么只有日期才能存储在此字段中。然而,如果为此字段使用字符或数字数据类型,那么最终的结果就可以在此字段中存储任何字符和数字类型的数据值,而它们并不代表一个日期。

最后,选择正确的数据类型会带来正确的执行计划,从而改善数据库性能。

一、编写T-SQL程序,计算 1 + 2 − 3 + 4 − 5 … − 99 + 100 =?

T-SQL程序代码

代码语言:sql
复制
declare @i int,@j int,@sum int,@str varchar(500),@temp int
 select @i=2,@j=-1,@sum=1,@str='1'
 while(@i<=100)
   begin
   set @temp=power(@j,@i)*@i
   set @sum = @sum+@temp
   if(@temp>0)
     set @str+='+'+cast(@temp as varchar(5))
   else
     set @str+=cast(@temp as varchar(5))
   set @i+=1
   end
 print @str+'='+cast(@sum as varchar(3)) 

执行结果:

二、写一个求三个数最大值的函数,输入为三个整数,输出为其中的最大值。

运行该函数。类似如下输出

T-SQL程序代码

代码语言:javascript
代码运行次数:0
运行
复制
  create function MyMax(
     @num1 int,
     @num2 int,
     @num3 int
 )
 returns int
 as 
 begin
   declare @Maxnum int
   if(@num1>=@num2)
     set @Maxnum = @num1
   else
     set @Maxnum = @num2
   if(@Maxnum>=@num3)
     set @Maxnum = @Maxnum
   else
     set @Maxnum = @num3
   return @Maxnum
 end;
 
 select dbo.MyMax( 7, 9, 13)

执行结果:

三、写一个T-SQL函数 𝑓𝑎𝑡,利用标准体重计算公式,根据身高判断体重是否合乎标准

1 )输入:身高,体重,性别

2 )输出:体重超出标准多少的判断

3 )调用函数实现类似如下的输出

T-SQL程序代码

代码语言:javascript
代码运行次数:0
运行
复制
 create function fat(
   @height int,
   @weight int,
   @sex varchar(3)
 )
 returns varchar(50)
 as
 begin
   declare @tempWeight int,@str varchar(50)
   set @str='';
   if(@sex='男')
   set @tempWeight = (@height-105)
   else if(@sex='女')
   set @tempWeight = (@height-100)
   else 
   begin
     set @str='你输入的性别有误';
     return @str;
   end
   if(@tempWeight-@weight>0)
   set @str='你的体重比标准体重轻了'+cast(@tempWeight-@weight
   as varchar(4))+'公斤'
   else if(@tempWeight-@weight<0)
   set @str='你的体重比标准体重重了'+cast(@weight-@tempWeight
   as varchar(4))+'公斤'
   else
   set @str='你的身材非常标准'
   return @str;
 end

执行结果:

四、写一个T-SQL多语句表值函数 𝑏𝑙𝑜𝑜𝑑,根据父母的血型列出孩子的所有可能血型

1 )输入:父亲血型,母亲血型

2 )输出:孩子的所有可能血型

3 )要求:使用 多语句表值函数 实现(不要试图建表)

4 )调用函数实现类似如下的输出

T-SQL程序代码 

代码语言:javascript
代码运行次数:0
运行
复制
   possibleblood varchar(4)
 )
 as
 begin
 if(@faBl='A'and @maBl='A')or(@faBl='O' and @maBl='A')
   or(@faBl='A'and @maBl='O')
   begin
     insert into @blood values('A');
     insert into @blood values('O');
   end
 else if(@faBl='A' and @maBl='B')or(@faBl='B' and @maBl='A')
   begin
     insert into @blood values('A');
     insert into @blood values('B');
     insert into @blood values('AB');
     insert into @blood values('O');
   end
 else if(@faBl='A' and @maBl='AB')or(@faBl='B' and @maBl='AB')
        or(@faBl='AB' and @maBl='A')or(@faBl='AB' and @maBl='B')
        or(@faBl='AB' and @maBl='AB')
   begin
     insert into @blood values('A');
     insert into @blood values('B');
     insert into @blood values('AB');
   end
 else if(@faBl='B' and @maBl='B')or(@faBl='B' and @maBl='O')
        or(@faBl='O' and @maBl='B')
   begin
     insert into @blood values('B');
     insert into @blood values('O');
   end
 else if(@faBl='AB' and @maBl='O')or(@maBl='AB' and @faBl='O')
   begin
     insert into @blood values('A');
     insert into @blood values('B');
   end
 else if(@faBl='O' and @maBl='O')
   begin
     insert into @blood values('O');
   end
   return
 end

执行结果:

我正在参与2023腾讯技术创作特训营第三期有奖征文,组队打卡瓜分大奖!

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 一、编写T-SQL程序,计算 1 + 2 − 3 + 4 − 5 … − 99 + 100 =?
  • 二、写一个求三个数最大值的函数,输入为三个整数,输出为其中的最大值。
  • 三、写一个T-SQL函数 𝑓𝑎𝑡,利用标准体重计算公式,根据身高判断体重是否合乎标准
  • 四、写一个T-SQL多语句表值函数 𝑏𝑙𝑜𝑜𝑑,根据父母的血型列出孩子的所有可能血型
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档