欢迎来到天天文库
浏览记录
ID:36422347
大小:279.10 KB
页数:47页
时间:2019-05-09
《sqlserver存储过程》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、1Transact-SQL程序设计在Transact-SQL语言中标准的SQL语句畅通无阻。Transact-SQL也有类似于SQL语言的分类不过做了许多扩充。本章中,我们介绍了标准SQL语言的语法及其基本使用方法,在此只介绍Transact-SQL语言中的其它部分。1变量2流程控制命令3其它命令4常用函数21.变量Transact-SQL中使用两种变量:局部变量和全局变量。1.局部变量局部变量是用户可自定义的变量,它的作用范围仅在程序内部。在程序中通常用来储存从表中查询到的数据,或当作程序执行过程中暂存变量使用。局部变量必须以@开头,而且必须先用D
2、ECLARE命令说明后才可使用。其说明形式为:DECLARE@变量名变量类型[,@变量名变量类型…]31.变量在Transact-SQL中不能像在一般的程序语言中一样使用“变量=变量值”来给变量赋值,必须使用SELECT或SET命令来设定变量的值。其语法如下:SELECT@局部变量=变量值SET@局部变量量=变量值【例】声明一个长度为8个字符的变量id,并赋值。declare@idchar(8)select@id=‘10010001’42.全局变量全局变量是SQLServer系统内部使用的变量,其作用范围并不局限于某一程序,而是任何程序均可随时调用。
3、全局变量通常存储一些SQLServer的配置设定值和效能统计数据。用户可在程序中用全局变量来测试系统的设定值或Transact-SQL命令执行后的状态值。全局变量不是由用户的程序定义的,它们是在服务器级定义的,只能使用预先说明及定义的全局变量。引用全局变量时必须以“@@”开头。局部变量的名称不能与全局变量的名称相同,否则会在应用中出错。53.注释符在Transact-SQL中可使用两类注释符:1.ANSI标准的注释符“--”用于单行注释。2.与C语言相同的程序注释符号,即“/*……*/”,/*用于注释文字的开头,*/用于注释文字的结尾,可在程序中标识
4、多行文字为注释。62.流程控制命令Transact-SQL语言使用的流程控制命令主要有以下几种控制命令。2.1BEGIN…END其语法如下:BEGIN<命令行或程序块块>ENDBEGIN…END用来设定一个程序块,将在BEGIN…END内的所有程序视为一个单元执行。BEGIN…END经常在条件语句(如IF…ELSE)中使用。在BEGIN…END中可嵌套另外的BEGIN…END来定义另一程序块。72.2IF…ELSE其语法如下:IF<条件表达式式><命令行或程序块块>[ELSE[条件表达式式]<命令行或程序块块>]其中:<条件表达式>可以是各种表达式的
5、组合,但表达式的值必须是逻辑值“真”或“假”。ELSE子句是可选的,最简单的IF语句没有ELSE子句部分。IF…ELSE用来判断当某一条件成立时执行某段程序,条件不成立时执行另一段程序。如果不使用程序块,IF或ELSE只能执行一条命令。IFELSE可以进行嵌套,在Transact-SQL中最多可嵌套32级。8【例】从SC数据表中求出学号为S1同学的平均成绩,如果此平均成绩大于或等于60分,则输出“pass”信息。if(selectavg(score)fromscwheresno='S1'groupbysno)>=60beginprint'pass'e
6、nd92.3CASECASE命令有两种语句格式:格式1:CASE<运算式>WHEN<运算式>THEN<运算式>…WHEN<运算式>THEN<运算式>[ELSE<运算式>]END该语句的执行过程是:将CASE后面表达式的值与各WHEN子句中的表达式的值进行比较,如果二者相等,则返回THEN后的表达式的值,然后跳出CASE语句,否则返回ELSE子句中的表达式的值。ELSE子句是可选项。当CASE语句中不包含ELSE子句时,如果所有比较失败时,CASE语句将返回NULL。10【例】从学生表S中,选取SNO,SEX,如果SEX为“男”则输出“M”,如果为“女
7、”输出“F”。SELECTSNO,SEX=CASEsexWHEN'男'THEN'M'WHEN'女'THEN'F'ENDFROMS11格式2:CASEWHEN<条件表达式>THEN<运算式>…WHEN<条件表达式>THEN<运算式>[ELSE<运算式>]END该语句的执行过程是:首先测试WHEN后的表达式的值如果其值为真,则返回THEN后面的表达式的值,否则测试下一个WHEN子句中的表达式的值如果所有WHEN子句后的表达式的值都为假,则返回ELSE后的表达式的值如果在CASE语句中没有ELSE子句,则CASE表达式返回NULL。注:CASE命令可以嵌套
8、到SQL命令中。12【例】从SC表中查询所有同学选课成绩情况,凡成绩为空者输出“未考”、小于60分输出“不及
此文档下载收益归作者所有