数据库库设计之数据库行为特征设计-SQL程序设计(批处理、局部变量的赋值引用、流程控制语句)

  • 批处理

概念:

批处理是一组Transact-SQL语句,其中可以包括变量和流程控制语句,由客户端应用程序一次性地发送到数据库服务器,SQL server的数据库服务器将批处理语句编译成一个可执行的单元,此单元称为执行计划,执行计划中的语句被逐条执行。

  • 变量的声明和使用

1.局部变量的声明

DECLARE @<变量名> <数据类型> [,···n]

例:

DECLARE @Num INTEGER,@Title Char(10)

局部变量的生存期从声明它的地方开始,直到声明它的批处理、存储过程或函数结束

2.局部变量的赋值与引用

SET @<变量名>=<表达式>

DECLARE @MaxGrade INT

SET @MaxGrade=(SELECT MAX(Grade)*0.9 FROM Student_Elective WHERE StdId='09001')

表达式中可以包含查询语句,但查询语句必须是单列单值或单列空值

SELECT @<变量名>=<表达式>

DECLARE @MaxGrade INT

该格式的特点是允许查询结果为单列多行,赋给变量的为最后一行的值

SELECT @MaxGrade=Max(Grade)*0.9 FROM Student_Elective WHERE StdId='09001'

3.在查询分析器中输出变量的值

PRINT 表达式

declare @MaxGrade INT
select @MaxGrade=MAX(Grade)*0.9 
from Student_Elevtive
where StdId='09001'
print @MaxGrade

4.全局变量

@@VERSION:返回SQL server安装的日期、版本和处理器类型

@@DBTS:返回当前TIMESTAMP数据类型的值

@@ERROR:返回最后执行的Transact-SQL语句的错误代码

5.流程控制语句

(1)分支语句-IF

IF <条件表达式>

BEGIN

         <语句>[···n]

END

[ELSE

BEGIN

         <语句>[···n]

END]

例:

declare @BoyAvgGrade INTEGER
declare @GirlAvgGrade integer

select @BoyAvgGrade=AVG(Grade) 
from Student a,Student_Elevtive b
where a.StdId=b.StdId    and a.StdSex=1

select @GirlAvgGrade=AVG(Grade) 
from Student a,Student_Elevtive b
where a.StdId=b.StdId    and a.StdSex=0

if @BoyAvgGrade>@GirlAvgGrade
    print '男同学平均成绩高于女同学'
else
    if @BoyAvgGrade=@GirlAvgGrade
        print '男同学平均成绩等于女同学'
    else
        print '女同学平均成绩高于男同学'

(2)循环语句

WHILE <条件表达式>

BEGIN

语句 [···n]

[BREAK]

[CONTINUE]

语句 [···n]

END

declare @Id int,@lev int
set @Id=8
set @lev=0
set @Id=(select pid from Code where id=@Id)
while @Id!=0
begin
    set @Id=(select pid from Code where id=@Id)
    set @lev=@lev+1
end
print @lev

(3)RETURN语句

RETURN [expression]

结束程序,RETURN以后的程序将不被执行

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值