首页 > 代码库 > SQL学习之T-SQL编程之标识符、变量、批处理与运算符

SQL学习之T-SQL编程之标识符、变量、批处理与运算符

1、标识符:

(1)定义:就像每个人都要有个名字一样,在SQL Server中,每一项对象也都要有一个作为标识用的名称,这就是标识符。例如数据库名称、数据表名称、字段名称等等,这些名称统称为标识符。

(2)命名规则:

            a、英文字符:A~Z或a~z,在SQL中是不用区分大小写的。

 b、数字:0~9,但数字不得作为标识符的第一个字符。

 c、特殊字符:_、#、@、$,但#、@、$ 不得作为标识符的第一个字符。

 d、特殊语系的合法文字:例如中文文字也可作为标识符的合法字符。

特殊说明:若对象名称不符合上述规则,只要在名称的前后加上中括号,该名称就变成合法标识符了(但标识符的长度仍不能超过128个字符)

注意:标识符不能是SQL的关健词,例如“table”、“TABLE”、“select”、“SELECT”等都     不能作为标识符。

    标识符中不能有空格符,或_、#、@、$之外的特殊符号。

    标识符的长度不得超过128个字符长度


2、变量:

(1)分类:

SQL Server中存在两类变量:

全局变量: 由系统定义和维护,变量名前加“@@”

       如:@@VERSION 

局部变量:

       由用户定义和使用,仅在声明它的批处理、存储过程或触发器中有效。变量名加“@”如:        @mystr


(2)局部变量的声明:

基本格式:

       declare @变量名称 数据类型


变量的赋值:

       格式1:  定义变量的同时赋值

       格式2:  set 赋值,(set @变量名 = 表达式)

              select赋值,(select @变量名 as 表达式)

举例:

DECLARE    @A  CHAR(20)

DECLARE    @f  float,@cn  char(8)=‘aa’


注意事项:

       一次可以声明多个变量,用逗号隔开

       所有局部变量在声明后均初始化为NULL

       声明的局部变量可以用set或select赋值

       set语句一次只能给一个变量赋值,select语句可同时为多个变量赋值。


(3)局部变量的输出:

局部变量的输出可以通过print和select实现,区别在于,print一次只能输出一个变量的值,select一次可以输出多个变量的值


3、批处理与脚本:

(1)批处理:

       批处理是由一条或多条T-SQL语句组成的语句集。这些语句被应用程序作为一个整体提交        给服务器,并在服务器端作为一个整体执行。可根据自己的编程习惯和编写批处理的要求使        用批处理


       在查询分析器中,可以用GO命令标志一个批处理的结束。GO不是T-SQL语句,它的作用是        通知查询分析器有多少语句要包含在当前的批处理中。

       查询分析器将第一个GO之前的语句或者两个GO之间的语句,或者最后一个GO之后的语句       分别作为一个批处理,分别组成一个字符串交给服务器去执行


使用批处理应注意的问题:

                a:不能在一个批处理中引用其他批处理中定义的变量

                b:不能将注释从一个批处理开始,在另一个批处理中结束

                c:不能在一个批处理中修改一个表的结构,然后在同一个批处理中引                  用刚修改的新列

                d:不能在一个批处理中创建一个数据库,然后在同一个批处理中选择                  该库

                 e:大多数带CREATE关键字的语句不能与其他语句在同一个批处理中,如                   CREATE DEFAULT、CREATE PROCEDURE、CREATE RULE、CREATE                     TRIGGER与CREATE VIEW语句,但是CREATE TABLE、CREATE                       DATABASE、CREATE INDEX可以

                 f:当需要执行存储过程时,需使用EXEC语句。如果存储过程是批处理                   中的第一条语句,那么省略EXEC关键字也可以执行该存储过程

                g:每个批处理都是独立执行的,并不会相互影响。即无论前一个批处                   理是否正确执行,下一个批处理仍会继续执行


(2)脚本:

      脚本是一系列顺序提交的批处理。脚本可以直接在查询分析器等工具中输入并执行,也可以保       存在文件中,再由查询分析器等工具打开执行

      一个脚本可以包含一个或多个批处理。脚本中的GO命令标志一个批处理的结束,如果一个脚本       中没有包含GO命令,那么它整个被视为是一个批处理


3、运算符:

(1)定义:运算符是一种符号,用来指定要在一个或多个表达式中执行的操作。SQL Server 使用下列几类运算符:算术运算符、赋值运算符、按位运算符、比较运算符、逻辑运算符、字符串连接运算符


(2)算术运算符:

算术运算符包括+(加)、-(减)、*(乘)、/(除)和%(整数相除的余数),用于数值和日期时间的运算。

上述一些运算符的作用大家已经清楚,在此不再赘述,这里仅对日期时间数据的运算作说明。日期时间与数值可做加或减运算,其意义分别为日期加几天或减几天,结果仍为日期时间数据。


(3)赋值运算符:

赋值运算符只有一个,那就是“=”(等号),用来将数值或字符串指定给字段或变量。 


(4)按位运算符:

按位运算符包括&、|、^三种,用来对位进行逻辑运算。

&:为按位与(AND)运算符。当运算符前后的操作数都为1时,结果为1,只要有一个不为1,结果就是0。

|:为按位或(OR)运算符。此运算符前后的操作数只要有1个为1,结果就为1,只有两个都为0的时候,结果才为0。

^:为异或(Exclusive OR)运算符。只有当两个操作数的值不一样的时候才会是1,否则为0。


(5)比较运算符:

比较运算符又称关系运算符,用于测试两个表达式的值之间的关系,其运算结果为布尔类型的值TRUE或者FALSE。

除text、ntext 或image类型的数据外,比较运算符可以用于所有的表达式。


(6)逻辑运算符:

逻辑运算符用于对某个条件进行测试,以获得其真实情况。逻辑运算符和比较运算符一样,返回带有TRUE或FALSE的布尔数据类型。


(7)字符串连接运算符:

字符串连接运算符号为“+”,是用来连接字符串的。它可连接字符串变量、列及字符串表达式。若有其他数据类型的数据要与字符串相加,则必须转换为字符类型。


(8)运算符优先级:

当使用多个运算符来组成表达式,优先级较高的运算符会优先做运算。如果希望某部分能够优先运算,那么可用小括号括起来。如果有多层小括号,则在内层的算式优先。比如“3*(6/(4-2))”,结果为9。

下面将优先级从高到低依次列出: 

()括号

+(正)、-(负)、~(按位 NOT)

*(乘)、/(除)、%(模)

+(加)、(+ 串联)、-(减)

=,  >,  <,  >=,  <=,  <>,  !=,  !>,  !< 比较运算符

^(位异或)、&(位与)、|(位或)

NOT

AND

ALL、ANY、BETWEEN、IN、LIKE、OR、SOME

=(赋值) 



本文出自 “一颗正在成长的小树” 博客,转载请与作者联系!

SQL学习之T-SQL编程之标识符、变量、批处理与运算符