- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
3.7嵌入式SQL
Transact-SQL程序设计 ; 变量 ;在Transact-SQL中不能像在一般的程序语言中一样使用“变量=变量值”来给变量赋值,必须使用SELECT或SET命令来设定变量的值。其语法如下:
SELECT @局部变量= 变量值
SET @局部变量= 变量值
【例】声明一个长度为 8 个字符的变量id,并赋值。
declare @id char(8)
select @id =
;2.全局变量
全局变量是SQL Server 系统内部使用的变量,其作用范围并不局限于某一程序,而是任何程序均可随时调用。
全局变量通常存储一些SQL Server 的配置设定值和效能统计数据。用户可在程序中用全局变量来测试系统的设定值或Transact-SQL命令执行后的状态值。
全局变量不是由用户的程序定义的,它们是在服务器级定义的,只能使用预先说明及定义的全局变量。
引用全局变量时必须以“@@”开头。
局部变量的名称不能与全局变量的名称相同,否则会在应用中出错。;3.注释符
在Transact-SQL 中可使用两类注释符:
ANSI 标准的注释符“--”用于单行注释。
与C 语言相同的程序注释符号,即“/*……*/”,/* 用于注释文字的开头,*/用于注释文字的结尾,可在程序中标识多行文字为注释。
; 流程控制命令 ;IF … ELSE
其语法如下:
IF 条件表达式
命令行或程序块
[ELSE [条件表达式]
命令行或程序块]
其中:
条件表达式可以是各种表达式的组合,但表达式的值必须是逻辑值“真”或“假”。
ELSE子句是可选的,最简单的IF语句没有ELSE子句部分。
IF…ELSE 用来判断当某一条件成立时执行某段程序,条件不成立时执行另一段程序。
如果不使用程序块,IF或ELSE只能执行一条命令。
IF ELSE 可以进行嵌套,在Transact-SQL中最多可嵌套32 级。 ;【例】从SC数据表中求出学号为S1同学的平均成绩,如果此平均成绩大于或等于60分,则输出“pass”信息。
if (select avg(score) from sc where sno=S1 group by sno)=60
begin
print pass
end ;CASE
CASE 命令有两种语句格式:
格式1:
CASE 运算式
WHEN 运算式 THEN 运算式
…
WHEN 运算式 THEN 运算式
[ELSE 运算式]
END
该语句的执行过程是:
将CASE后面表达式的值与各WHEN子句中的表达式的值进行比较,
如果二者相等,则返回THEN后的表达式的值,然后跳出CASE语句,否则返回ELSE子句中的表达式的值。
ELSE子句是可选项。当CASE语句中不包含ELSE子句时,如果所有比较失败时,CASE语句将返回NULL。 ;【例】从学生表S中,选取SNO,SEX,如果SEX为“男”则输出“M”,如果为“女”输出“F”。
SELECT SNO,
SEX=
CASE sex
WHEN 男 THEN M
WHEN 女 THEN F
END
FROM S ;格式2:
CASE
WHEN 条件表达式 THEN 运算式
…
WHEN 条件表达式 THEN 运算式
[ELSE 运算式]
END
该语句的执行过程是:
首先测试WHEN后的表达式的值
如果其值为真,则返回THEN后面的表达式的值,否则测试下一个WHEN子句中的表达式的值
如果所有WHEN子句后的表达式的值都为假,则返回ELSE后的表达式的值
如果在CASE语句中没有ELSE子句,则CASE表达式返回NULL。 ;注:CASE 命令可以嵌套到SQL命令中。
【例】从SC表中查询所有同学选课成绩情况,凡成绩为空者输出“未考”、小于60分输出“不及格”、60分至70分输出“及格”、70分至90分输出“良好”、大于或等于90分时输出“优秀”。
SELECT SNO,CNO,
SCORE=
CASE
WHEN SCORE IS NULL THEN 未考
WHEN SCORE60 THEN 不及格
WHEN SCORE=60 AND SCORE70 THEN 及格
WHEN SCORE=70 AND SCORE90 THEN 良好
WHEN SCORE=90 THEN 优秀
END
FROM SC ;WHILE…CONTINUE…BREAK
其语法如下:
WHILE 条件表达式
BEGIN
命令行或程序块
[BREAK]
[CONTINUE]
[命令行或程
文档评论(0)