文章目录
- 1.标识符
- 1.1常规标识符
- 1.2界定标识符
- 2.常量
- 3.变量
- 4.函数
- 5.批处理及语句结构
T-SQL作为SQL Server中拓展的编程语言,有着更为适用的语法结构,同时,也可以借用以前的高级编程语言来理解T-SQL的语法结构。
1.标识符
1.1常规标识符
命名规则如下:
- 标识符由字母、数字、下划线、@符号、#和$符号组成,其中字母可以是英文字母a-z或A-Z,也可以是其他语言的字符,如表名:“学生信息表”。
- 标识符的首字符不能是数字或“$”符号。
- 标识符不能使用SL的保留字,如:命令(sp_help)或函数名max, min, desc, asc)。
- 标识符内能使用空格和特殊字符,如:?、%、&、*等。
- 标识符的长度不能超过128个字符。
1.2界定标识符
对不符合标识符命名规则的标识符,例如,标识符中包含 SQL Server关键字或包含了内嵌的空格和其他不是规则规定的字符时,要使用**界定标识符([ ])或双引号(“ ”)**来将标识符括起来。
一般应对于不能用常规标识符的情况。
2.常量
同其他语言,常量就是将值裸露在外,比如数字1、2、3等,字符串’hello’、'hi’等,以及特殊符号!、@等
字符串用单引号括起来,不是双引号
SQL Server里有更多的能自动识别的常量类型:
- 日期时间
用单引号括起来,且使用日期格式
比如:‘2016-08-09’、‘2016/08/09’、‘2016年08月09日’ 都可自动识别为日期 - 货币
以货币符号开头,且SQL Server每隔三个数字会插入一个逗号进行内部规范化
比如:¥3000000 - 小数
小数加小数点,科学计数法加E
比如:125.01、5E12
3.变量
变量必须在前面加@,任何时候都要,不然无法识别
声明语句:
declare @变量名1 [as] 数据类型 , @变量名2 [as] 数据类型 …
- as 可以省略
- 默认值为NULL
- 用逗号隔开
赋值语句:
set @变量名 = 表达式
select @变量名1 = 表达式, @变量名2 = 表达式 …
或者 select @变量名 = (select 输出值 from 表 where 条件)
- 两个关键字set 、seclect都可以完成赋值
- set 一次性仅能赋值一个变量,select 则可以批量操作
- select 还可以配合select查询语句使用
上面加一个@的变量是局部变量,加两个@的变量是全局变量
4.函数
TSQL中有多中现成的函数,以供使用,也可以自行创建函数
- 数学函数
- 字符函数
- 日期函数
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-tMXD9fEl-1622655059096)(https://files.catbox.moe/fhytmf.png)]
自行创建函数:
create function 函数名(@参数变量名 数据类型, …)
returns 返回值数据类型
as
begin
…
end
- returns语句不可少
- returns可以是table
5.批处理及语句结构
SQL Server中语句是按一个个批处理同时进行运行的,不同于高级程序语言按语句顺序执行,这样,在一个批处理中新建的表就无法在同一个批处理中修改等操作,因为直到这个批处理语句结束,这个表才被创建出来。
关键字 GO 放在批处理最后,用于结束一个批处理
语句结构:(每个关键字都有自己的用法)
- 顺序结构
BEGIN…END 、SET 、SELEC、PRINT - 选择结构
IF…ELSE 、CASE - 循环结构
WHILE - 循环结构
GOTO 、WAIT…FOR 、TURN
相关控制语句:
注意:
- begin…end 必须成对存在,限定着一段语句,有着类似于C语言中的大括号{ }作用,使用IF语句时,若后面跟有多条语句,就必须使用 begin…end 进行限定