sql server - 基础数据类型说明

 数据类型
  •  String 类型:
 数据类型 描述  存储 
 char(n)  固定长度的字符串。最多 8,000 个字符。  Defined width
 varchar(n)  可变长度的字符串。最多 8,000 个字符。  2 bytes + number of chars
 varchar(MAX)  可变长度的字符串。最多 1,073,741,824 个字符。  2 bytes + number of chars
 text  可变长度的字符串。最多 2GB 文本数据。  4 bytes + number of chars
 nchar(n)  固定长度的 Unicode 字符串。最多 4,000 个字符。  Defined width x 2
 ncarchar(n)  可变长度的 Unicode 字符串。最多 4,000 个字符。  
 nvarchar(MAX)  可变长度的 Unicode 字符串。最多 536,870,912 个字符。  
 ntext  可变长度的 Unicode 字符串。最多 2GB 文本数据。  
 bit  允许 0、1 或 NULL  1 True / 0 False
 binary(n)  固定长度的二进制字符串。最多 8,000 字节。  
 varbinary(n)  可变长度的二进制字符串。最多 8,000 字节。  
 varbinary(MAX)  可变长度的二进制字符串。最多 2GB。  
 image  可变长度的二进制字符串。最多 2GB。  
  •  Number 类型:
数据类型  描述  存储 
 tinyint  允许从 0 到 255 的所有数字。  1 字节
 smallint  允许介于 -32,768 与 32,767 的所有数字。  2 字节
 int  允许介于 -2,147,483,648 与 2,147,483,647 的所有数字。  4 字节
 bigint  允许介于 -9,223,372,036,854,775,808 与 9,223,372,036,854,775,807 之间的所有数字。  8 字节
 decimal(p,s)  固定精度和比例的数字。

 允许从 -10^38 +1 到 10^38 -1 之间的数字。

 p 参数指示可以存储的最大位数(小数点左侧和右侧)。p 必须是 1 到 38 之间的值。默认是 18

 s 参数指示小数点右侧存储的最大位数。s 必须是 0 到 p 之间的值。默认是 0

 5-17 字节
 numeric(p,s)  固定精度和比例的数字。

 允许从 -10^38 +1 到 10^38 -1 之间的数字。

 p 参数指示可以存储的最大位数(小数点左侧和右侧)。p 必须是 1 到 38 之间的值。默认是 18。

 s 参数指示小数点右侧存储的最大位数。s 必须是 0 到 p 之间的值。默认是 0。

 5-17 字节
 smallmoney  介于 -214,748.3648 与 214,748.3647 之间的货币数据。  4 字节
 money  介于 -922,337,203,685,477.5808 与 922,337,203,685,477.5807 之间的货币数据。  8 字节
 float  从 -1.79E + 308 到 1.79E + 308 的浮动精度数字数据。

 n 参数指示该字段保存 4 字节还是 8 字节。float(24) 保存 4 字节,而 float(53) 保存 8 字节。n 的默认值是 53。

 4 或 8 字节
 real  从 -3.40E + 38 到 3.40E + 38 的浮动精度数字数据。  4 字节
  •  Date 类型:
数据类型  描述  存储 
 datetime  从 1753 年 1 月 1 日 到 9999 年 12 月 31 日,精度为 3.33 毫秒。  8 字节
 datetime2  从 1753 年 1 月 1 日 到 9999 年 12 月 31 日,精度为 100 纳秒。  6-8 字节
 smalldatetime  从 1900 年 1 月 1 日 到 2079 年 6 月 6 日,精度为 1 分钟。  4 字节
 date  仅存储日期。从 0001 年 1 月 1 日 到 9999 年 12 月 31 日。  3 bytes
 time  仅存储时间。精度为 100 纳秒。  3-5 字节
 datetimeoffset  与 datetime2 相同,外加时区偏移。  8-10 字节
 timestamp  存储唯一的数字,每当创建或修改某行时,该数字会更新。timestamp 值基于内部时钟,不对应真实时间。每个表只能有一个 timestamp 变量  
  •  其他数据类型:
数据类型  描述  存储 
 sql_variant  存储最多 8,000 字节不同数据类型的数据,除了 text、ntext 以及 timestamp。  
 uniqueidentifier  存储全局唯一标识符 (GUID)。  
 xml  存储 XML 格式化数据。最多 2GB。  

 

 表设计 及  数据样例

 

 

 

 

 

 基础补充
  •  sql server中字符串和Unicode字符串型【头字母+n类型】的区别

    varchar和nvarchar都能存储汉字,区别在于:一个汉字占varchar(2),只占nvarchar(1),而字母只占varchar(1),那么在数据库字段求长度的时候,用varchar就不一定知道它确切有几个字符,如果用nvarchar,汉字也是nvarchar(1),字母也是nvarchar(1),那么很容易知道字段的长度了。

    同样的,char和nchar也一样道理。

  • 关于长度超过4000的Unicode字符串或超过8000的ASCII字符串:
    不推荐使用ntext或text,应使用nvarchar(max)和varchar(max)替代text;
 新建表时的错误提示

 其中一种varchar:“长度”设置值必须介于1和8000之间。

posted @ 2021-08-11 17:16  gygtech  Views(151)  Comments(0Edit  收藏  举报