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.常量和变量
常量
文字值或标量值
-
字符串常量:单引号内
-
Unicode字符串:前缀必须是大写N
-
二进制常量:前缀0x,后面是十六进制字符串
-
bit常量:0和1
-
datetime常量
-
integer常量
-
decimal常量
-
float和real常量:使用科学计数法
-
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 2 SET @a=18 3 SET @b=4 4 SET @z=@a+@b 5 PRINT @z
-
赋值运算符 =
-
位运算符 & | ^
-
比较运算符
-
逻辑运算符 返回TRUE或FALSE。AND BETWEEN IN LIKE NOT OR
-
连接运算符 + (字符串拼接)
-
一元运算符 +正 -负 ~位反
-
运算符的优先级
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