SQL 数据类型

类型 标识符 说明
整数 INT/INTEGER 4 字节,-2^31 至 2^31-1
  SMALLINT 2 字节,-2^15 至 2^15-1
  TINYINT 1 字节,0 至 255
  BIGINT 8 字节,2^64 至 2^64-1
浮点数 REAL 4 字节,7 位精度,范围 3.4E-38 至 3.4e38
  FLOAT[(n)] 4 字节,n=1-7,同 REAL

8 字节,n=8-15,默认

  DECIMAL[(p[,s])]

NUMERIC[(p[,s])]

p 总位数(不含小数点),s 小数位

根据不同的位数,分配的字节数为 2 至 17

默认 13 字节,28 位精度

字符 CHAR[(n)] n = 1-8000,默认为 1
  NCHAR[(n)] n = 1-4000,UNICODE 编码
  VARCHAR[(n)] n = 1-8000,可变长度字符串
  NVARCHAR[(n)] n = 1-4000,UNICODE 编码,可变长度字符串
二进制 BINARY(n) n = 1-8000, 占用 n+4 字节
  VARBINARY(n) n = 1-8000,可变长
逻辑 BIT 1 字节,值为 0 或 1,非零值转为 1,不能为空
文本 TEXT 1 至 2^31-1 字节
  NTEXT 1 至 2^30-1 字节,UNICODE 编码
图形 IMAGE 1 至 2^31-1 字节,数据前面须加 "0X"
日期时间 DATETIME 8 字节,1/1/1753 - 12/31/9999,精度 1/300 秒
  SMALLDATETIME 4 字节,1/1/1900 - 6/6/2079,精度 1 分钟
货币 MONEY 8 字节,-2^63 至 2^63-1,精度 1/10000
  SMALLMONEY 4 字节,-214748.3648 至 214748.3648
特定 TIMESTAMP 计数器,在插入及更新操作时改变
  UNIQUEIDENTIFIER 全球唯一鉴别号,16 位,由函数 NEWID() 产生
最新类型 SQL_VARIANT 存储除 TEXT、NTEXT、IMAGE、TIMESTAMP 之外的数据
  TABLE 存储表格数据
  BIGINT 同上

关于 BINARY

输入数据前加上 "0X" 作为二进制标识

数据过长时,自动截掉超出的部分

字段允许空时,将被视为 VARBINARY 类型

关于 TEXT、NTEXT、IMAGE

不能用在 GROUP BY、ORDER BY 子句

除非使用 LIKE,不能在 WHERE、HAVING 子句

不能指定 DISTINCT

不能创建索引、主键、外键

关于 DATETIME

前四字节存储从 1900-1-1 开始的天数,默认为 0

后四字节存储从 00:00:00 开始的毫秒数,默认为 0

关于 SMALLDATETIME

前两字节存储从 1900-1-1 开始的天数,默认为 0

后两字节存储从 00:00:00 开始的分钟数,默认为 0

时间日期格式

格式 说明
June 21 2000、Oct 12 1998、2000 1 Sep、

2000 May 1、

2000 July、、January 2000

99 June、July 00、

不区分大小写、逗号可省、

两位年份时为 1950-2049

无日期时为当月 1 日

2000/6/24、2000-6-24、2000.6.24

6/24/2000

可用多种分隔符、

可用各种顺序

20001010

200010

2000

可用4、6、8位数字表示
2:21:15pm

14:21:15.120

小时:分钟:秒:毫秒

非标量数据类型

类型
TEXT、NTEXT、IMAGE、CURSOR、TIMESTAMP、TABLE