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. 算术运算符 + - * / %
DECLARE @a INT, @b INT, @z INT
SET @a=18
SET @b=4
SET @z=@a+@b
PRINT @z
  1. 赋值运算符 =
  2. 位运算符 & | ^
  3. 比较运算符
  4. 逻辑运算符 返回TRUE或FALSE。AND BETWEEN IN LIKE NOT OR
  5. 连接运算符 + (字符串拼接)
  6. 一元运算符 +正 -负 ~位反
  7. 运算符的优先级

3.流控制语句

1. BEGIN...END

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

BEGIN
两条或两条以上的语句
...
END

2. IF...ELSE

DECLARE @m INT
SET @m=12
IF @m>0
	PRINT 'TRUE'
ELSE
	PRINT 'FALSE'

3. WHILE

--求1到10之间的整数和
DECLARE @x INT,@sum INT
SET @x=1
SET @sum=0
WHILE @x<=10
	BEGIN
		SET @sum=@sum+@x
		SET @x=@x+1
	END
PRINT @sum

4. BREAK与CONTINUE

5. CASE

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

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

6. WAITFOR

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

WAITFOR DELAY 'time'|time 'time'

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

--3秒后显示‘傻瓜你好’
WAITFOR DELAY '00:00:03'
PRINT '傻瓜你好'

--16点15分显示‘傻瓜你好’
WAITFOR TIME '16:15:00'
PRINT '傻瓜你好'

7. GOTO

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

GOTO 标识符

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

8. RETURN

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

RETURN [整数值]

--RETURN
DECLARE @m INT
SET @m=3
IF @m>0
	PRINT '遇到RETURN之前'
	RETURN
	PRINT '遇到RETURN之后'

9. PRINT

posted @ 2021-05-18 17:12  sxkio  阅读(1098)  评论(0编辑  收藏  举报