第 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]
本章首页