SQL语句总结----T-SQL程序结构(持续更新)

1.基本结构——批

批是一组SQL语句集合,一个批以结束符GO而终结。批中的语句被一次性提交给SQL SERVER,将这些语句编译成一个执行单元,在执行时全部执行。
批的基本规则:
(1)所有create语句应当单独构成一个批
(2)使用alter table语句修改表结构后,不能在同一个批中使用新定义的列
(3)excute语句为批中第一语句时,可以省略excute
(4)go与sql语句不同行

{ begin transaction
        {T-SQL语句[...n]
        go
        }[...n]
{commit | rollback}
}[...n]

2.注释

(1) -- 单行注释
(2) /*...*/ 多行注释
(注:多行注释不能跨越批次处理,整个注释必须包含在一个批处理内)

3.变量

  • 全局变量
  • 局部变量(仅在定义它的批处理内有效)
    declare {@变量 变量类型} [,...n]
    变量赋值
    select {@变量=<表达式>}[,...n]
    set @变量=<表达式>
    一条set语句只能为一个变量赋值,而一条select语句可以为多个变量赋值

4.运算符和表达式

  • 算术运算符
    +加,-减,*乘,%求余,/除
  • 位运算符
    &按位与,|按位或,~按位取反,^按位异或
  • 连接运算符
    ”+“两个字符串连接
  • 比较运算符
    大于 > , >= , 小于< , <=
    不等于<> , != , !> , !<
    [NOT] BETWEEN AND
    [NOT] IN
    [NOT] LIKE
    IS [NOT] NULL
    EXISTS一元运算
    普通比较运算符+ANY/ALL
  • 逻辑运算符
    AND,OR,NOT
    返回逻辑值真、假

5.函数

1. 数学函数
ABS()绝对值 ,SIN ,ASIN ,COS ,ACOS ,EXP
POWER (numeric_expression,y)表达式的y次幂
SQRT()平方根
SQUARE()平方

2. 字符串函数
ASCII 求字符的ASCII值
CHAR 求整数对应的字符
STR float数值转字符串
LEFT(char_expression,count) 左侧截取字串
RIGHT(char_expression,count) 右侧截取字串
SUBSTRing(char,start,length) 取串内子串
LEN 求串长
LTRIM 去前导空格
RTRIM 去尾随空格
REPLACE(c1,c2,c3) 用字符串3替换字符串1中的字串2

3. 时间日期函数
GETDATE 取系统时间,日期
DATEADD 加一段时间
DATEDIFF 求两个时间之间的差
4.转换函数
CAST( <表达式> as <目标数据类型> [(<长度>)] )
CONVERT(varchar(60)目标数据类型,getdate()表达式,126格式)

6.流程控制

1. 块语句

begin
  T-SQL语句[....n]
end

2. 条件语句

if<条件表达式>
        语句1
else
        语句2

3. CASE语句
(1)简单CASE语句

case <输入表达式>
    when <当表达式1> then <结果表达式1>
    when <当表达式2> then <结果表达式2>
    ................................
    when <当表达式n> then <结果表达式n>
    [else <结果表达式n+1> ]
end

(2)CASE搜索语句

case
    when <条件表达式1> then <结果表达式1>
    when <<条件表达式2> then <结果表达式2>
    ................................
    when <<条件表达式n> then <结果表达式n>
    [else <结果表达式n+1> ]
end

4. 循环语句

while <条件表达式>
begin
      T-SQL语句[...n]
      [break]
      [continue]
end

5. 等待语句

waitfor {delay<'时间'> |time <'时间'> |errorexit |processexit |mirrorexit }

6. GOTO语句

goto <标号>

你可能感兴趣的:(SQL语句总结----T-SQL程序结构(持续更新))