第 6章 Transact-SQL程序设计
6.1 概述
6.2 注释
6.3 变量
6.4 运算符
6.5 函数
6.6 流程控制语句
6.1 概述
两个 GO之间的 SQL语句作为一个批处理 。
在 一 个 批 处 理 中 可 以 包 含 一 条 或 多 条
Transact-SQL语句, 成为一个语句组 。 这样
的语句组从应用程序一次性地发送到 SQL
Server服务器进行执行 。 SQL Server服务器
将批处理编译成一个可执行单元, 称为执行计
划 。 本章首页
6.2 注释
在 SQL Server中, 有两种类型的注释字
符:
? 单行注释:使用两个连在一起的减号
,- -”作为注释符;
? 多行注释:使用, /* */”作为注释符。
本章首页
6.3 变量
6.3.1 全局变量
全局变量在整个 SQL Server系统内使用 。 存
储的通常是一些 SQL Server的配置设定值和统
计数据 。 在使用全局变量时应该注意以下几点:
? 全局变量是在服务器级定义的 。
? 用户只能使用预先定义的全局变量 。
? 引用全局变量时, 必须以标记符, @@”开头 。
? 全局变量对用户来说是只读的 。
? 局部变量的名称不能与全局变量的名称相同 。
6.3 变量
6.3.2 局部变量
利用局部变量还可以保存程序执行过程中的中间数
据值, 保存由存储过程返回的数据值等 。
1,局部变量的定义
必 须 先 用 DECLARE 命 令 定 义 后 才 可 以 使 用 。
DECLAER {@local_variable data_type} [… n]
2,局部变量的赋值方法
SET { { @local_variable = expression } 或者
SELECT { @local_variable = expression }
[,...n ] 本章首页
6.4 运算符
6.4.1 算术运算符
算术运算符包括加 ( +), 减 ( - ), 乘 ( *), 除
( /) 和取模 ( %)
6.4.2 赋值运算符
Transact-SQL中只有一个赋值运算符, 即等号 ( =)
6.4.3 位运算符
位运算符包括按位与 ( &), 按位或 ( |), 按位异
或 ( ^) 和求反 ( ~) 。
位运算符用来对整型数据或者二进制数据 ( image
数据类型除外 ) 之间执行位操作 。 要求在位运算符左
右两侧的操作数不能同时是二进制数据 。
6.4 运算符
6.4.4 比较运算符
比较运算符包括:等于 ( =), 大于 ( >),
大于或等于 ( >=), 小于 ( <), 小于或等于
( <=), 不等于 ( <>或 !=), 不小于 ( !<),
不大于 ( !>) 。
6.4.5 逻辑运算符
逻辑运算符包括与 ( AND), 或 ( OR) 和
非 ( NOT) 等运算符 。
逻辑运算返回布尔值, 值为 TRUE或 FALSE。
6.4 运算符
6.4.6 字符串连接运算符 ( +)
6.4.7 运算符的优先级
括号,( ) ;
乘, 除, 求模运算符,*,/,%;
加减运算符:+, -;
比较运算符,=,>,<,>=,<=,<>,!=,!>,!<;
位运算符,^,&,|;
逻辑运算符,NOT;
逻辑运算符,AND;
逻辑运算符,OR。 本章首页
6.5 函数
6.5.1 系统函数
6.5.2 字符串函数
6.5.3 日期和时间函数
6.5.4 数学函数
6.5.5 转换函数
CAST ( expression AS data_type )
CONVERT ( data_type[( length) ],
expression [,style])
6.5 函数
6.5.6 用户自定义函数
CREATE FUNCTION 函数名称
( 形式参数名称 AS 数据类型 )
RETURNS 返回数据类型
BEGIN
函数内容
RETURN 表达式
END
调用用户自定义函数的基本语法为:
变量 =用户名,函数名称 ( 实际参数列表 )
注意:在调用返回数值的用户自定义函数时, 一
定要在函数名称的前面加上用户名
本章首页
6.6 流程控制语句
6.6.1 BEGIN… END语句
BEGIN
{ sql_statement | statement_block }
END
6.6.2 IF… ELSE语句
IF Boolean_expression{ sql_statement
| statement_block }
[ELSE{ sql_statement |
statement_block } ]
6.6 流程控制语句
6.6.3 CASE语句
简单 CASE语句的语法形式为:
CASE input_expression
WHEN when_expression THEN
result_expression [,..n ]
[ ELSE else_result_expression]
END
搜索 CASE语句的语法形式为:
CASE
WHEN Boolean_expression
THEN result_expression[,..n ]
[ELSE else_result_expression]
END
6.6 流程控制语句
6.6.4 WHILE… CONTINUE… BREAK语句
WHILE Boolean_expression
{ sql_statement | statement_block }
[ BREAK ]
{ sql_statement | statement_block }
[ CONTINUE ]
6.6.5 GOTO语句
GOTO label
……
label:
6.6 流程控制语句
6.6.6 WAITFOR语句
WAITFOR { DELAY 'time' | TIME'time' }
6.6.7 RETURN语句
RETURN[ integer_expression]
本章首页