欢迎来到天天文库
浏览记录
ID:48185532
大小:3.06 MB
页数:38页
时间:2020-01-16
《数据库SQL编程教程.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第十章T-SQL编程目标掌握如何定义变量并赋值掌握如何输出显示数据掌握IF、WHILE、CASE逻辑控制语句理解SQL中批处理的概念使用变量变量分为:局部变量:局部变量必须以标记@作为前缀,如@age局部变量的使用也是先声明,再赋值全局变量:全局变量必须以标记@@作为前缀,如@@version全局变量由系统定义和维护,我们只能读取,不能修改全局变量的值局部变量例如:DECLARE@namevarchar(8)DECLARE@seatint声明局部变量DECLARE@变量名数据类型赋值SET@变量名=值SELECT@变量名=值例如:SET@name=‘张三’SELECT@name=stuNa
2、meFROMstuInfoWHEREstuNo=‘s25302’必须确保筛选出的记录只有1条或局部变量示例问题:编写T-SQL查找李文才的左右同桌?学员信息表分析:第一步,找出“李文才“的座位号;第二步,李文才的座位号加1或减1局部变量示例/*--查找李文才的信息--*/DECLARE@namevarchar(8)--学员姓名SET@name='李文才'--使用SET赋值SELECT*FROMstuInfoWHEREstuName=@name/*--查找李文才的左右同桌--*/DECLARE@seatint--座位号SELECT@seat=stuSeatFROMstuInfo--使用SEL
3、ECT赋值WHEREstuName=@nameSELECT*FROMstuInfoWHERE(stuSeat=@seat+1)OR(stuSeat=@seat-1)GO演示:使用局部变量参考语句全局变量全局变量都使用两个@标志作为前缀变量含义@@ERROR最后一个T-SQL错误的错误号@@IDENTITY最后一次插入的标识值@@LANGUAGE当前使用的语言的名称@@MAX_CONNECTIONS可以创建的同时连接的最大数目@@ROWCOUNT受上一个SQL语句影响的行数@@SERVERNAME本地服务器的名称@@TRANSCOUNT当前连接打开的事务数@@VERSIONSQLServer
4、的版本信息全局变量示例print'SQLServer的版本'+@@VERSIONprint'服务器的名称:'+@@SERVERNAMEINSERTINTOstuInfo(stuName,stuNo,stuSex,stuAge)VALUES('武松','s25328','男','23')--如果大于0表示上一条语句执行有错误print'当前错误号'+convert(varchar(5),@@ERROR)print'刚才报名的学员,座位号为:'+convert(varchar(5),@@IDENTITY)UPDATEstuinfoSETstuAge=85WHEREstuName='李文才'pr
5、int'当前错误号'+convert(varchar(5),@@ERROR)GO演示:使用全局变量参考语句SQLServer的版本服务器名称座位号(自动编号)错误号错误号逻辑控制语句T-SQL语言提供了一些可用于改变语句执行顺序的命令,称为流程控制语句.流程控制语句与常见的程序设计语言类似,主要包括以下几种:begin…end…if…elsecasewhile...continue...breakgoto逻辑控制语句IF-ELSE语句SQL中的IF-ELSE语句IF(条件)BEGIN语句1语句2……ENDELSEBEGIN语句1;语句2;……ENDELSE是可选部分如果有多条语句,才需要B
6、EGIN-END语句块IF-ELSE示例问题:统计并显示本班笔试平均分,如果平均分在70以上,显示“成绩优秀“,并显示前三名学员的考试信息;如果在70以下,显示“本班成绩较差“,并显示后三名学员的考试信息。学员成绩表分析:第一步,统计平均成绩存入临时变量;第二步,用IF-ELSE判断;IF-ELSE示例设置输出结果的格式为了文本消息和输出结果显示在同一窗口,需要设置输出结果的格式逻辑控制语句WHILE循环语句SQL中的WHILE语句WHILE(条件)BEGIN语句1语句2……BREAKENDBREAK表示退出循环如果有多条语句,才需要BEGIN-END语句块WHILE示例问题:本次考试成绩
7、较差,假定要提分,确保每人笔试都通过。提分规则很简单,先每人都加2分,看是否都通过,如果没有全部通过,每人再加2分,再看是否都通过,如此反复提分,直到所有人都通过为止。学员成绩表分析:第一步,统计没通过的人数;第二步,如果有人没通过,加分;第三步,循环判断。DECLARE@nintWHILE(1=1)--条件永远成立BEGINSELECT@n=COUNT(*)FROMstuMarksWHEREwrittenExam<
此文档下载收益归作者所有