常量
1. 常量概述
常量也称为文字值或标量值,是表示一个特定数据值的符号,常量在程序运行过程中是指不变的量,常量的格式取决于它所表示的值的数据类型;
根据常量的不同类型,T-SQL 的常量分为数字常量、字符串常量、日期和时间常量以及符号常量等;
2. 数字常量
数字常量即数值常量,其格式不需要任何其他的符号,只要按照特定的数据类型进行赋值就可以;
T-SQL 中的数字常量主要包括 bit 常量、integer 常量、decimal 常量、money 常量、float 和 real 常量
;
2.1 bit 常量
bit 常量
使用数字 0 或 1 表示,并不使用引号;若使用一个大于 1 的数字,它将被转换为1;
2.2. integer 常量
integer 常量
由没有用引号括起来且不包含小数点的一串数字表示,integer 常量必须是整数,不能包含小数点如 352、5;
2.3 decimal 常量
decimal 常量
由没有用引号括起来且包含小数点的一串数字表示,如 3.1415926、2.0;
2.4 flat 和 real 常量
float 和 real 常量
使用科学计数法表示,如 101.5E5、0.3E-2;
2.5 money 常量
money 常量
表示为以可选小数点和可选货币符号作为前缀的一串数字,这些常量不使用引号,如$15、$325.25;
3. 字符串常量
T-SQL 的字符串常量是括在单引号内并包含字母数字的字符(a — z、A — Z、0 — 9)以及特殊字符,如感叹号(!)、@符(@)、数字号(#);字符串分为 ASCII 字符串和 Unicode 字符串常量;
3.1 ASCII 字符串
ASCII 字符串:用单引号括起来,如‘A’,‘teacher’、‘Bye bye’等;空字符串用中间没有任何字符的两个单引号 ‘ ’ 表示;
3.2 Unicode 字符串常量
Unicode 字符串常量:格式与普通字符串相似,但它前面有一个 N 标识符(N 代表 SQL-92 标准中的国际语言(National Language)),N 前缀必须是大写字母;如,‘Teacher’ 是字符串常量而 N‘Teacher’ 则是 Unicode 常量;
Unicode 常量
被解释为 Unicode 数据,并不使用代码页进行计算;
Unicode 常量有排序规则,主要用于控制比较和区分大小写;要为 Unicode 常量指派当前数据库的默认排序规则,除非使用 COLLATE 子句为其指定了排序规则;
Unicode 数据中的每个字符都使用了两个字节进行存储,而字符数据中的每个字符则都使用了一个字节进行存储;
4. 日期和时间常量
日期和时间常量是用单引号将表示日期时间的字符串括起来构成的;
根据日期时间的不同表示格式,T-SQL 的日期时间常量能有多种表示方式:
- 字母日期格式:如 ‘March 23,2008’;
- 数字日期格式:如‘5/15/2008’ ‘2008-5-15’;
- 未分隔的字符格式:如 ‘20080527’;
- 时间常量:如 ‘15:30:25’ ‘05:30:PM’;
- 日期时间常量:如 ‘March 23,2008 15:30:25’;
日期和时间函数如下表:
这些标量函数对日期和时间输入值执行操作,并返回一个字符串、数字值或日期和时间值;
4. 符号常量
Uniqueidentifier 常量是表示全局唯一标识符(GUID)值的字符串,能使用字符或二进制字符串格式指定;
这两个示例指定相同的 GUID:
'6F9619FF-8B86-D011-B42D-00C04FC964FF'
oxff1996f868b11d0b42d00c04fc964ff