第二章
章节目标
- 掌握变量的定义和使用
- 掌握输出语句
- 掌握逻辑控制语句
- 理解批处理的概念
内容
批处理
go
- 可以使不在同一批处理语句中的sql语句相互不受影响
变量
局部变量
- 以标记@做前缀,列:@age
- 先声明,再赋值
- 只在定义它的局部范围内有效
全局变量
- 已标记@@做前缀,列:@@name
- 由系统定义和维护,只能读取,不可修改
- 在整个sql环境下都可以被访问或调用
声明
赋值
输出结果
- select @变量1+@变量2 以表格型格式输出
- print @变量1+@变量2 以文本格式输出
转换类型 convert(转换的目标类型,需要转换的变量)
逻辑控制
分支结构
1.IF-ELSE语句
--if(条件)
-- begin
-- T-SQL语句
-- end
--else if (条件)
-- begin
-- T-SQL语句
-- end
--else
-- begin
-- T-SQL语句
-- end
-- --判断平均值男生和女生 if。。。else分支
--声明变量
declare @avg int,@avg2 int
--给变量赋值
select @avg=AVG(score)from StuInfo,StuMarks where StuInfo.stuid=StuMarks.stuid and stusex='男'
select @avg2=AVG(score)from StuInfo,StuMarks where StuInfo.stuid=StuMarks.stuid and stusex='女'
--判断
if(@avg>@avg2)
begin
print '男生比女生强'
end
else
begin
print '女生比男生强'
end
case end
--2.CASE-END语句
--CASE
-- WHEN 条件1 then 结果1
-- WHEN 条件2 then 结果2
-- [ELSE 结果]
--END
--成绩分等级
select stuname as 姓名,成绩 = case
when score >= 90 then 'A'
when score >= 80 then 'B'
when score >= 70 then 'C'
when score >= 60 then 'D'
else 'E'
end
from StuInfo,StuMarks where StuInfo.stuid = StuMarks.stuid and [subject] = 'SQL'
循环控制语句
/*--循环控制语句--*/
--while(循环控制条件)
-- begin
-- T-SQL语句
-- end
--声明变量
declare @mark int,@markid int
select @mark = score,@markid = StuMarksno from StuMarks where subject = 'html'
while @mark < 90
begin
update StuMarks set score = @mark+1 WHERE StuMarksno = @markid
select @mark = score,@markid = StuMarksno from StuMarks where subject = 'html'
end
print @score --90