SQL server (三)T-SQL语言

1.基本概念

SQL Server 2008在支持标准SQL语言的同时,对其进行了扩充,引入了T-SQL,即Transact-SQL,T-SQL是使用SQL Server 2008的核心,通过它,可以定义变量、使用流控制语句、自定义函数、自定义存储过程等,极大地扩展了SQL Server 2008的功能。

标识符

1.标识符

数据库对象的名称即为其标识符

2.标识符的种类

1)常规标识符 2)分隔标识符

3.常规标识符规则

1)第一个字符必须是英文大小写、 下划线(_)、at符号(@)或者数字符号(#)

2)首字符可以用到的、十进制数字、美元符号($)

4.标识符不能是Transact-SQL保留字

5.不允许嵌入空格或其他特殊字符

批处理

批处理是包含一个或多个Transact-SQL语句的组,从应用程序一次性地发送到SQL Server 2008进行执行。可以理解为选中SQL语句块执行它,SQL Server会一行一行地执行它。

注释

–(双连字符)

/*…*/(斜杠-星号字符对)

2.常量和变量

常量

文字值或标量值

  1. 字符串常量:单引号内

  2. Unicode字符串:前缀必须是大写N

  3. 二进制常量:前缀0x,后面是十六进制字符串

  4. bit常量:0和1

  5. datetime常量

  6. integer常量

  7. decimal常量

  8. float和real常量:使用科学计数法

  9. money常量

变量

局部变量

用DECLARE语句声明,作用范围仅在程序内部。名称以@开头。

DECLARE @variable_name datatype

[,@variable_name datatype]…

赋值

SET @local_variable=expression

SELECT @local_variable=expression[,…n]

全局变量

事先定义好的,用户不能去创建和修改。以@@开头。

输出

PRIINT

PRINT msg_str|@local_variable|string_expr

运算符

  1. 算术运算符 + – * / %

1  DECLARE @a INT, @b INT, @z INT
2  SET @a=18
3  SET @b=4
4  SET @z=@a+@b
5  PRINT @z
  1. 赋值运算符 =

  2. 位运算符 & | ^

  3. 比较运算符

  4. 逻辑运算符 返回TRUE或FALSE。AND BETWEEN IN LIKE NOT OR

  5. 连接运算符 + (字符串拼接)

  6. 一元运算符 +正 -负 ~位反

  7. 运算符的优先级

3.流控制语句

1. BEGIN…END

将多个语句组合成一个逻辑块

1  BEGIN
2  两条或两条以上的语句
3  ...
4  END

2. IF…ELSE

1  DECLARE @m INT
2  SET @m=12
3  IF @m>0
4      PRINT 'TRUE'
5  ELSE
6      PRINT 'FALSE'

3. WHILE

 1  --求1到10之间的整数和
 2  DECLARE @x INT,@sum INT
 3  SET @x=1
 4  SET @sum=0
 5  WHILE @x<=10
 6      BEGIN
 7          SET @sum=@sum+@x
 8          SET @x=@x+1
 9      END
10  PRINT @sum

4. BREAK与CONTINUE

5. CASE

根据表达式的真假来确定是否返回某个值

 1  --根据学生分数给出判断
 2  DECLARE @grade INT,@msg VARCHAR(10)
 3  SET @grade=13
 4  SET @msg=
 5  CASE
 6      WHEN @grade>=90 AND @grade<=100 THEN  'excellent'
 7      WHEN @grade>=70 AND @grade<90 THEN  'good'
 8      WHEN @grade>=60 AND @grade<70 THEN  'pass'
 9      ELSE  'fail'
10  END
11  PRINT @msg

6. WAITFOR

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

WAITFOR DELAY ‘time’|time ‘time’

delay等待时间,time结束时间点 格式为’hh:mm:ss’

1  --3秒后显示‘傻瓜你好’
2  WAITFOR DELAY '00:00:03'
3  PRINT '傻瓜你好'
4 5  --16点15分显示‘傻瓜你好’
6  WAITFOR TIME '16:15:00'
7  PRINT '傻瓜你好'

7. GOTO

改变程序执行的流程,使程序跳到标识符指定的程序行继续往下执行。

GOTO 标识符

标识符需要在其名称后加上一个冒号:

 

8. RETURN

从查询或过程中无条件退出

RETURN [整数值]

1  --RETURN
2  DECLARE @m INT
3  SET @m=3
4  IF @m>0
5      PRINT '遇到RETURN之前'
6      RETURN
7      PRINT '遇到RETURN之后'

9. PRINT

原文地址:https://www.cnblogs.com/sxkio/p/14781827.html