IF...ELSE语句:条件处理语句
IF Boolean_expression {sql_statement|statement_block} ELSE {sql_statement|statement_block}
需求:查询成绩表sc编号为801,学科为01这门课程所有学生的平均分,以此来对学生表现进行评价
declare @num int --声明变量 select @num=avg(score) --给变量赋值为平均分 from sc where 课程编号='801' and CId='01' --指定查询 if @num>90 --if...else语句判断平均分是否大于90 begin print '这门课学生学得非常不错!' --打印结果 end else print '这门课学生还需要继续努力!'
输出结果:
IF...ELSE语句嵌套
需求:查询成绩表sc编号为801,学科为01这门课程所有学生的平均分,对查询到的平均分按等级输出相应的语句
declare @num int select @num=avg(score) from sc where 课程编号='801' and CId='01' if @num>=60 begin if @num<70 print'成绩刚刚及格,还要继续努力!' else if @num<80 print'成绩中等' else if @num<90 print'成绩良好' else print'成绩优秀,希望把经验与大家分享分享!' end else print'这一科学生们还需要加把劲啊!'
输出结果:
Case语句:分支语句
现有如下员工信息表:
需求:根据每个员工的所在职位分发员工职称
select 员工姓名, 所在职位, 员工职称= --设置要显示的列 case 所在职位 --case,判断条件为所在职位字段 when '经理' then '高级职称' --所在职位为经理的员工,职称为高级职称 when '主管' then '中级职称' when '普通职员' then '初级职称' else '其他职称' end from 新员工信息 --要查询的表
输出结果:
While语句:循环语句。执行一段重复的语句
WHILE_E Boolean_expression 循环条件 {sql_statement | statement_block} [BREAK] break跳出整个循环 {sql_statement | statement_block} [CONTINUE] continue跳出本次循环执行下次循环 {sql_statement | statement_block}
需求:执行1~100的累加
declare @i int, @sum int --声明变量 set @i=1 --给变量赋初值 set @sum=0 while @i<=100 begin set @sum=@sum+@i --对和进行累加 set @i=@i+1 end print @sum --使用print函数打印和
执行结果:
思维导图
总结
通过这次对SQL的学习让我大跌眼界,发现原来不是只有像vb、C这些编程语言才有流程控制语句,数据库也是有的,只是以前不知道。要学的东西真的很多,但每一门语言之间它们都是会有共通的地方,比如流程控制语句!所以我们在学习中要善于去发现那些相通的地方,及时总结相同之处,通过一遍一遍的学习在之前的基础上进行累加得到升华!多练习!