您的位置:首页 > 数据库

T-SQL程序设计之标识符,常量和变量

2015-11-07 19:18 281 查看

---------------------------标识符

      标识符用于定义服务器、数据库、数据库对象、变量等的名称,包括常规标识符和分隔标识符两类。

     
1,常规标识符

       常规标识符就是不需要使用分隔标识符进行分隔的标识符,它以字母、下划线(_)、@或#开头,可后续一个或若干个ASCII字符、Unicode字符、下划线(_)、美元符号($)、@或#,但不能全为下划线(_)、@或#。 

     
2,分隔标识符

      包含在双引号 (") 或者方括号 ([ ]) 内的常规标识符或不符合常规标识符规则的标识符。

      标识符允许的最大长度为128个字符,符合常规标识符格式规则的标识符可以分隔、也可以不分隔,对不符合标识符规则的标识符必须进行分隔。

---------------------------常量

     常量是在程序运行中其值不能改变的量,又称为标量值。常量使用格式取决于值的数据类型,可分为整型常量、实型常量、字符串常量、日期时间常量、货币常量等。

     
1,整型常量

       (1)十进制整型常量

       (2)二进制整型常量的表示

        (3)十六进制整型常量的表示

     
2,实型常量

      实型常量分为   定点表示和浮点表示。

      (1)定点表示

         比如:  24.5          5678.0        -12345.6789       +9876.54321

       (2)浮点表示

        比如: 0.7E-3         123.456E-2    

     
 3,字符串变量

      字符串变量分为ASC|| 和 unicode 两种。

     (1) ASC||

      比如:‘hello’     ‘people  like us’

      (2)unicode 

       unicode在前面有一个 N  标识符,N 前缀必须大写,比如,

        N ‘hello’       N'we won it'

     
 4,日期时间常量

     日期时间常量由但一号将表示日期时间的字符串括起来构成,它有以下几种格式:

    (1)字母日期格式,例如: ‘June 08,2011’

    (2) 数字日期格式,如:‘11/7/2015’ , ‘2015-11-7’

      (3)未分隔的字符串格式,如:‘20151107’

    (4)时间常量格式,如:‘13:14:00’ ,‘13:14 :AM’

     (5)日期时间常量格式,如:‘July 18, 2015  13:14:00’

     
  5,货币常量

     货币常量是以“$”作为前缀的一个整型或实型常量数据,例如: $1314, +$1314

---------------------------变量

         变量分为局部变量和全局变量

    1, 局部变量

     局部变量由用户定义和使用,局部变量名称前有“@”符号,局部变量仅在声明它的批处理或过程中有效,当批处理或过程执行结束后变成无效。

     1)局部变量的定义

     使用 DECLARE 语句声明局部变量,所有局部变量在声明后均初始化为NULL,局部变量语法格式如下:

DECLARE{ @local_variable data_type [= value]}[ ,...n]    说明:
  ● local_variable:局部变量名,前面的@表示是局部变量。

  ● data_type:用于定义局部变量的类型。

  ● =value:为变量赋值。

  ●  n:表示可定义多个变量,各变量间用逗号隔开。

     2)局部变量的赋值

     在定义局部变量后,可使用SET语句或SELECT语句赋值。

          (1)使用SET语句赋值,使用SET 语句赋值的语法格式如下:

SET @local_variable=expression    其中,@local_variable是除 cursor、text、ntext、 image 、table外的任何类型的变量名,变量名必须以“@”符号开头。
    expression是任何有效的SQL Server表达式。

    例如,创建两个局部变量并赋值,然后输出局部变量的值

DECLARE @var1 char(10),@var2 char(20)
SET @var1='睿歌'
SET @var2='是软件工程专业的学生'
SELECT @var1+@var2 
    例如:创建一个局部变量,在SELECT语句中使用该变量查找计算机专业学生的学号、姓名、性别。
USE stsc
DECLARE @spe char(12)
SET @spe='计算机'
SELECT stno, stname, stsex
FROM student
WHERE specialist=@spe
     例如:将查询结果赋给局部变量
USE stsc
DECLARE @snm char(8)
SET @snm=(SELECT stname FROM student WHERE stno= '1002')
SELECT @snm 
          (2)使用SELECT语句赋值,其语法格式如下:
SELECT {@local_variable=expression} [,…n]
      例如,使用SELECT语句赋值给变量
USE stsc
DECLARE @no char(5), @name char(10)
SELECT @no=stno,@name=stname
FROM student
WHERE specialist='通信'
PRINT @no+''+@name
     例如,使用排序规则在查询语句中为变量赋值
USE stsc
DECLARE @no char(5), @name char(10)
SELECT @no=stno,@name=stname
FROM student
WHERE specialist='通信'
ORDER BY stno DESC
PRINT @no+''+@name
    例如,使用聚合函数语为变量赋值。
USE stsc
DECLARE @hg int
SELECT @hg=MAX(grade) FROM score WHERE grade IS NOT NULL
PRINT '最高分'
PRINT @hg 

    2,全局变量

     全局变量由系统定义,在名称前加“@@”符号,用于提供当前的系统信息。

     T-SQL 全局变量作为函数引用,例如,@@ERROR返回执行上次执行的T-SQL语句的错误编号,@@CONNECTIONS返回自上次启动SQL Server以来连接或试图连接的次数。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息