Transact-SQL简介

来源:互联网 发布:redis同步到mysql 编辑:程序博客网 时间:2024/05/01 21:10
行注释:行注释符为“--”这是ANSI标准的注释符,用于单行注释。
块注释:块注释为“/*。。。*/”


SQL Server标识符分为两类:规则标识符,界定标识符。

其中,规则标识符严格遵守标识符的有关格式的规定,所以在Transact_SQL中凡是规则运算符都不必使用定界符。对于不符合标识符格式的标识符要使用界定符[]



标识符格式:

1)标识符必须是统一码(Unicode)2.0标准中规定的字符,包括26个英文字母a-z和A-Z,以及其他一些语言字符,如汉字。  

2)标识符后的字符可以是_@#$及数字。  

3)标识符不允许是Transact-SQL的保留字。  

4)标识符内不允许有空格和特殊字符。

5)标识符不区分大小写。

@开头的标识符表示这是一个局部变量或是一个函数的参数;以#开头的标识符表示这是一个临时表或是一存储过程。

##开头的表示这是一个全局的临时数据库对象。

Transact-SQL的全局变量以@@开头。

无论是界定标识符还是规则标识符都最多只能容纳128个字符,对于本地的临时表最多可以有116个字符。


定义变量@sumint类型:DECLARE@sumint

定义变量@snamenvarchar(10)类型,定义变量@snumint类型:DECLARE @sname nvarchar(10),@snumint



局部变量在赋值之前,默认为NULL

如果在程序中引用它,必须要先为其赋值。

(1)用SET语句给局部变量赋值

       SET  @局部变量名 =变量值

(2)在查询语句SELECT给局部变量赋值

     SELECT{@局部变量名 =变量值}[,…n]

局部变量的输出

PRINT@局部变量



BEGINEND

语句块的界定,相当于C语言中的“{   }”

BEGIN

     {

      sql_statement |statement_block

      }

END

注意:BEGIN和END语句必须成对使用



多条件分支选择  CASE

CASE具有以下两种格式:

1简单表达式,将某个表达式与一组简单表达式进行比较以确定结果。

2选择表达式,计算一组布尔表达式以确定结果。

1)简单表达式

CASE input_expression

     WHEN    THEN

      [ ...n ]

     [ ELSE… ]

END

<span style="color:#000000;">SELECT [姓名],CASE WHEN [入学时间]=1 THEN 'NAN'WHEN [入学时间]=2 THEN 'NV'ELSE 'NUZHIDAO'ENDFROM [dbo].[软件1405——406$]</span>

2)选择表达式

CASE

     WHEN    THEN

      [ ...n ]

     [ ELSE… ]

END

<span style="color:#000000;">SELECT [姓名],CASE [入学时间]WHEN '2014' THEN 'NAN'WHEN '2' THEN 'NV'ELSE 'NUZHIDAO'ENDFROM [dbo].[软件1405——406$]</span>




循环语句WHILE

计算从1加到100并输出结果。
<span style="color:#000000;">DECLARE @SUM100 INT, @i INTSET @SUM100=0SET @i=0WHILE @i<=100BEGINSET @SUM100=@SUM100+@iSET @i=@i+1ENDPRINT @SUM100</span>




GOTO语句将程序无条件地转到相应的标签的语句:

DECLARE@sum100 int,@iint

SELECT@ sum100=0@i=0

My_Loop: --标签要符合命名规则,并且有“:”

SET @sum100=@sum100+@i

SET @i=@i+1

IF @i<=100

GOTO My_Loop

PRINT @sum100

不利于程序阅读,不符合结构化程序的三种思想,因此不提倡用GOTO语句



延时语句WAITFOR

WAITFOR语句可以将它之后的语句在一个指定的时间间隔之后执行,或在未来的某一指定时间执行。

WAITFOR {DELAY延时时间’|TIME 到达时间’}

WAITFORDELAY '0:00:05'  --必须是datetime数据类型,但不能包含日期部分,不超过24小时

PRINT 时间到!’

WAITFORTIME ‘20:00:00'  --必须是datetime数据类型,但不能包含日期部分

PRINT 下课喽!’

WAITFOR DELAY '0:00:05'PRINT '时间到!'


0 0
原创粉丝点击