SQL_Server之数据类型详解

一、前言

Sql Server的列中有数据类型属性,用于指定对象可保存的数据的类型,Sql Server中支持多种数据类型,包括字符类型、数值类型以及日期类型等。数据类型相当于一个容器,容器的大小决定了装的东西的多少,将数据分为不同的类型可以节省磁盘资源和空间。Sql Server会自动限制每个系统数据类型的取值范围,当插入数据库中的值超过了数据允许的范围时,Sql Server就会报错。

二、整数数据类型

  • bigint,8字节有符号
  • int,4字节有符号
  • smallint,2字节有符号
  • tinyint,1字节无符号

三、浮点数据类型

  • real,4字节有符号
  • float(n),n为指定float数据的精度,当n取124时,实际上定义了一个real类型的数据,占4字节。当n取2553时,系统认为其为float类型,占8字节。如果不指定,也是占8字节。
  • decimal(p,s)和numeric(p,s),p(精度)指定了最多可以存储十进制数字的总位数,包括小数点左边和右边的位数,范围1~38,默认精度为18。s(小数位数)指定了小鼠点右边可以存取的十进制数字的最大位数,默认值为0。例如:decimal(10,5)表示共有10位数,其中整数5位,小数5位。

四、字符数据类型

  • char(n),每一个字符和符号占用一个字节存储空间,n表示所有字符所占的存储空间,若输入数据的字符串长度小于n,则系统自动在其后添加空格来填满设定好的空间,若输入的数据过长,则会截掉其超出部分。
  • varchar(n),存储大小时输入数据的实际长度加2个字节,n为存储字符的最大长度。如varchar(20),则对应的变量最多只能存储20个字符,不够20个字符的按实际存储。
  • nchar(n),n个字符的固定长度Unicode字符数据,每一个存储单位占两个字节。
  • nvarchar(n),存储可变长度Unicode字符数据,存储大小是输入字符个数的两倍+2个字节。

char和varchar都是存储非Unicode字符集,不能存储中文,一个字符占一个字节;nchar和nvarchar都是存储Unicode字符集,可以存储中文,一个字符占两个字节。

五、日期和时间数据类型

  • data,存储用字符串表示的日期数据,数据格式为“YYYY-MM-DD”;YYYY:表示年份的是为数字,范围00019999;MM:表示月份的两位数字,范围为0112;DD:表示月份中某一天的两位数字,范围为01~31;该数据类型占用3个字节空间。
  • time,以字符串形式记录一天的某个时间,数据格式为“hh:mm:ss.nnnnnnn”:hh:表示小时的两位数字,mm:表示分钟的两位数字,ss:表示秒的两位数字,n表示秒的小数部分。time值占用5个字节的空间。
  • datetime,用于存储时间和日期数据,从1753年1月1日到9999年12月31日,默认值为1900-01-01 00:00:00,占用8字节空间。
  • datetime2
      datetime的扩展类型,其数据范围更大,默认的最小精度最高,并具有可选的用户定义的精度。默认格式为:YYYY-MM-DD hh:mm:ss[.fractional seconds],日期的存取范围是0001-01-01~9999-12-31(公元元年1月1日到公元9999年12月31日).
  • smalldatetime
     smalldatetime类型与datetime类型相似,只是其存储范围是从1900年1月1日到2079年6月6日,当日期时间精度较小时,刻印使用smalldatetime,该类型数据占用4个字节的存储空间。

六、位数据类型

  • bit,支取0或者1,长度1字节,经常当作逻辑值用于判断true(1)或false(0),输入非法值时系统将其替换为1。

七、二进制数据类型

  • binary(n),长度为n个字节的固定长度二进制数据,其中n是从1~8000的值。存储大小为n个字节。在输入binary值时,必须在前面带0x,可以使用0xAA5代表AA5,如果输入数据长度大于定于的长度,超出的部分会被截断。
  • varbinary(n),可变长度二进制数据。其中n是从1~8000的值,max指示存储大小为2的31次方-1字节。存储大小为所输入数据的实际长度+2个字节。在定义的范围内,不论输入的时间长度是多少,binary类型的数据都占用相同的存储空间,即定义时空间,而对于varbinary类型的数据,在存储时实际值的长度使用存储空间

八、其他数据类型

  • uniqueidentifier,16字节的GUID(Globally Unique Identifier,全球唯一标识符),是Sql Server根据网络适配器地址和主机CPU时钟产生的唯一号码,其中,每个为都是09或af范围内的十六进制数字。例如:6F9619FF-8B86-D011-B42D-00C04FC964FF,此号码可以通过newid()函数获得,在全世界各地的计算机由此函数产生的数字不会相同
  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值