SQL 的服务器端编程---T-SQL简介

SQL 的服务器端编程---T-SQL简介

Transact-SQL 的缩写为T-SQL,T-SQL是Microsoft 公司的SQL Server的数据库语言,它是对标准SQL语言的扩充。

一、数据类型

数据库中的数据通常需要定义一个数据类型,不同DBMS具体支持的数据类型大体相同,稍有差异,具体可参阅相关手册。

二、变量

分为全局变量和局部变量。

1. 全局变量

T-SQL中的全局变量由系统定义和维护,全局变量前有两个 @@ 符号为标记,主要用于存放SQL Server工作状态信息。
  全局变量可以使用select、print显示其当前值。
例如:

select @@SERVERNAME  --返回运行SQL服务器名称。
select @@LANGUAGE    --返回当前使用的语言名 
select @@VERSION   --返回SQL服务器安装的日期、版本和处理器类型
print APP_NAME ()   --当前会话的应用程序
print USER_NAME()    --返回用户数据库用户名
print GETDATE()      --当前时间

2. 局部变量

T-SQL中的局部变量是由用户定义和使用的变量,其作用范围仅仅局限在定义的T-SQL程序内。局部变量前以一个 @ 为标记。

(1)局部变量和其他高级语言一样,要先声明后使用,用DECLARE语句声明,它只能在声明该变量的批语句和过程体内使用。
格式:
DECLARE @local_variable data_type......
例如:

DECLARE @x int,@y char(20),@z int

(2) 局部变量的赋值

  • SET语句赋值
    在T-SQL程序中,用SET语句给局部变量赋值的语法如下:
    SET @local_variable=expression
       其中,@local_variable为局部变量的名称,expression为有效的表达式,表示将表达式的值赋予局部变量。
  • select语句赋值
    与上面的SET等效的赋值语句是将SET替换为SELECT。
    SELECT @local_variable=expression
  • 通过查询语句赋值
    很多情况下,局部变量需要获取通过select查询语句查询某个表后得到的字段值。
    SELECT @empId = max(empId) --查出的值赋给局部变量
    FROM tableTest
       如果查询语句返回的值不止一行,而且变量引用一个非标量表达式,那么最后变量的值将是最后一行记录的特定字段的值。

(3) 局部变量也可以使用select、print显示其当前值。

例1 给x和y赋值

declare @x int,@y char(20),@z char(20)
select @x=100,@y=‘计算机‘,@z=‘数据库原理及应用‘
set @x=200
set @y=‘数学‘
SELECT @x=max(sage) FROM student

例2 接上面例子,显示x、y、z的当前值

SELECT @x,@y
Print @z 

运行结果:
SQL 的服务器端编程---T-SQL简介
SQL 的服务器端编程---T-SQL简介
(4) 局部变量还可在游标使用时由FETCH INTO赋值。

三、流程控制语句

T-SQL主要的流程控制语句包括:
   GO:批处理命令的结束标志;
   IF ELSE :条件选择语句;
   BEGIN ... END :定义语句块;
   GOTO :无条件转移语句;
   WHILE :循环语句;
   BREAK :循环跳出语句;
   CONTINUE :继续执行循环语句
   WAITFOR : 设置语句执行的延迟时间;
   RETURN:从查询或存储过程无条件跳出;
   CASE 表达式 :按表达式返回条件分支;

SQL 的服务器端编程---T-SQL简介

上一篇:数据库-过滤数据


下一篇:MySQL中删除重复数据时保留一行