购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

4.3 常量

常量也称为文字值或标量值,是表示一个特定数据值的符号。常量的格式取决于它所表示的值的数据类型。一个常量通常有一种数据类型和长度,这二者取决于常量格式。根据数据类型的不同,常量可以分为如下几类:数字常量、字符串常量、日期和时间常量和符号常量。本节将介绍这些不同常量的表示方法。

4.3.1 数字常量

数字常量包括有符号和无符号的整数、定点数和浮点小数。

integer常量不用引号引起来,用不包含小数点的数字字串来表示。integer常量必须全部为数字,不能包含小数。

     1894
     2

decimal常量不用引号引起来,用包含小数点的数字字串来表示。

     1894.1204
     2.0

float和real常量使用科学计数法来表示。

     101.5E5
     0.5E-2

若要指示一个数是正数还是负数,对数值常量应用“+”或“-”一元运算符。可用于一个表示有符号数字值的表达式。如果没有应用“+”或“-”一元运算符,数值常量将默认为正数。

money常量以前缀为可选的小数点和可选的货币符号的数字字串来表示。money常量不使用引号引起来。

     $12
     ¥542023.14

4.3.2 字符串常量

1.字符串常量

字符串常量括在单引号内,包含字母和数字字符(a~z、A~Z和0~9)以及特殊字符,如!、@和#。将为字符串常量分配当前数据库的默认排序规则,除非使用COLLATE子句为其指定排序规则。用户输入的字符串通过计算机的代码页计算,如有必要,将被转换为数据库的默认代码页。

     'Cincinnati'
     'O''Brien'
     'Process X is 50% complete.'
     'The level for job_id: %d should be between %d and %d.'
     "O'Brien"
2.Unicode字符串

Unicode字符串的格式与普通字符串相似,但它前面有一个N标识符(N代表SQL92标准中的区域语言)。N前缀必须是大写字母。例如,'Michél'是字符串常量而N'Michél'则是Unicode常量。Unicode常量被解释为Unicode数据,并且不使用代码页进行计算。Unicode常量有排序规则,该排序规则主要用于控制比较和如何区分字母大小写。为Unicode常量分配当前数据库的默认排序规则,除非使用COLLATE子句为其指定了排序规则。对于字符数据,存储Unicode数据时每个字符使用2个字节,而不是每个字符1个字节。

4.3.3 日期和时间常量

日期和时间常量使用特定格式的字符日期值来表示,并用单引号引起来。

     'December 5, 1985'
     '5 December, 1985'
     '851205'
     '12/5/85'

4.3.4 符号常量

1.分隔标识符

在Transact-SQL中,双引号有两层意思,除了用于表示字符串之外,双引号还能用来做分隔标识符(Delimited Identifier)。分隔标识符是标识符的一种特殊类型。

提示

单引号和双引号之间的区别在于SQL92标准中的规定,单引号只能用来包含字符串,不能用于分隔标识符。对于不符合常规标识符规则的标识符必须用双引号来分隔。分隔标识符是用双引号引出的,而且区分字母大小写(Transact-SQL还支持用方括号代替双引号作为分隔标识符)。另外,双引号用于分隔字符串时,可以在其中包含不合规定的字符,如空格。

在Transact-SQL中,双引号可用来定义SET语句中的QUOTED_IDENTIFIER选项,如果该选项设置为ON(即默认值),那么双引号只能用于分隔标识符,而不能用于分隔字符串。

技巧

说明一个Transact-SQL语句的注释有两种方法:一种方法是使用一对字符/**/,注释就是用附着在里面的内容进行提示说明(这种情况下,注释内容可以扩展成很多行);另一种方法是使用字符“--”(两个连字符)表示当前行剩下的就是注释(两个连字符就符合ANSI SQL标准,而/和/是Transact-SQL语言的扩展)。

2.标识符

在Transact-SQL语句中,标识符用于标识数据库对象如数据库、数据表和索引。它们是字符序列,这些字符序列的长度可以达到128个字符,其中可包含字母、数字或者这些字符:“_”“@”“#”和“$”。每个标识符都必须以一个字母或者这些字符中的一个作为开头:“_”“@”和“#”。以“#”开头的标识符作为表名或存储程序名时表示一个临时对象,而以“@”开头的标识符则表示一个变量。如前文所述,这些规则并不适用于分隔标识符(也称为引用标识符),分隔标识符可以将这些字符包含在内或者以其中的任意字符开头。 45Eh0K9Tuqvjs828KdO1TlV/GheNDIDlTkxRn5/fE9UxZoAlDCWEB17X5VINrmX8

点击中间区域
呼出菜单
上一章
目录
下一章
×