
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程序代码
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程序代码
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)执行结果:

1 )输入:身高,体重,性别
2 )输出:体重超出标准多少的判断
3 )调用函数实现类似如下的输出


T-SQL程序代码
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执行结果:

1 )输入:父亲血型,母亲血型
2 )输出:孩子的所有可能血型
3 )要求:使用 多语句表值函数 实现(不要试图建表)
4 )调用函数实现类似如下的输出


T-SQL程序代码
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执行结果:

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。