数据库字段类型-SQL Server

来源:互联网 发布:未来社交网络 编辑:程序博客网 时间:2024/06/07 17:29

—字符类型

Char: 定长非Unicode的字符型数据,最大长度为8000

Varchar:变长非Unicode的字符型数据,最大长度为8000

Text(varchar(max)):变长非Unicode的字符型数据,最大长度为2G

Nchar:定长Unicode的字符型数据,最大长度为8000

Nvarchar:变长Unicode的字符型数据,最大长度为8000

Ntext(nvarchar(max)):变长Unicode的字符型数据,最大长度为2G

—数值类型

Bit:0或1的整型数字

Tinyint: 从0到255的整型数字

Smallint::从-2^15(-32,768)到2^15(32,767)的整型数字

Int:从-2^31(-2,147,483,648)到2^31(2,147,483,647)的整型数字

Bigint:从-2^63到2^63-1的整型数字(2000好像是没有的)

Smallmoney:  从-2^31到2^31的货币数据,最小货币单位千分之十

Money:  从-2^63到2^63-1的货币数据,最小货币单位千分之十

Decimal:从-10^38到10^38-1的定精度与有效位数的数字

Numeric: decimal的同义词

Float:  从-1.79E+308到1.79E+308可变精度的数字

Real:从-3.04E+38到3.04E+38可变精度的数字

—日期和时间类型

Datetime: 从1753年1月1日到9999年12日31的日期和时间数据,最小时间单位为百分之三秒或3.33毫秒。长度为8个字节,第一个4字节存储base date (即 1900 年 1 月 1 日)之前或之后的天数,如果是1900 年 1 月 1 日则存储0,另外一个 4 字节存储以午夜后每天的时间

Smalldatetime:从1900年1月1日到2079年6月6日的日期和时间数据,最小时间单位为分钟. 存储日期和每天的时间,但精确度低于 datetime 。长度为4个字节,第一个2字节存储1900 年 1 月 1 日后的天数,第二个2字节存储午夜后的分钟数。

可以将这两种类型转换成float 浮点数, 其中整数部分就是对应的日期字节, 而小数部分是时间相应的比例

—2008新增的日期时间类型

Date:仅存储日期,范围是从 1000 年 1 月 1 日到 9999 年 12 月 31 日,3 字节长度,且精度为 10 位。Date 类型的准确性仅限于单天。

Time:仅存储一天中的时间,支持的范围是 00:00:00.0000000 到 23:59:59.9999999(小时、分钟、秒和小数秒)。可在创建数据类型时指定小数秒的精度。默认精度是 7 位,准确度是 100 毫微秒。精度影响着所需的存储空间大小,范围包括最多 2 位的 3 个字节、3 或 4 位的 4 个字节以及 5 到 7 位的 5 个字节。

Datetime2:datetime 类型的扩展,日期范围是 0001 年 1 月 1 日到 9999 年 12 月 31 日,与 time 类型一样,提供了七位小数秒精度。

Datetimeoffset:在datetime2的基础上提供了时区信息

—二进制类型

Binary:定长二进制数据,最大长度为8000

Varbinary: 变长二进制数据,最大长度为8000

Image(varbinary(max)):变长二进制数据,最大长度为2^31-1(2G)

—其他

Timestamp:时间戳,二进制数据。

Uniqueidentifier: 全球唯一标识符GUID,主要用来防止并发冲突。

Variant:可以存储各种类型,类似于object,一般用的比较少,而且jdbc不支持这个类型

Xml(2000没有):直接存储xml内容,最多可存储2G。

2008新增的类型:

Hierarchyid :数据类型可用于构建表中数据元素之间的关系,专门代表在层次结构中的位置。

空间数据:Geography和Geometry 类型,从矢量对象构建,格式为 Well-Known Text (WKT) 或 Well-Known Binary (WKB)。它们是开放地理空间联盟 (OGC) SQL 简单特征规范描述的空间数据传输格式。

—Timstamp类型

SQL Server中 timestamp 数据类型与时间和日期无关。它是二进制数字,表明数据库中数据修改发生的相对顺序。实现 timestamp 数据类型最初是为了支持 SQL Server 恢复算法,用来判断最近哪些数据被修改过。

存储大小为8个字节,可以转化为datetime(因为其也保存了时间,具体如何转化大家可以网上查一下)。不可为空的 timestamp 列在语义上等同于 binary(8) 列。 可为空的 timestamp 列在语义上等同于 varbinary(8) 列。

 

sql server与java.sql.types的对应

Sql server        java.sql.Types

   bigint (2005,2008)               bigint

   timstamp,binary                   binary

   bit                                       bit

   char,nchar,unqualified            char

   datetime                              date

   money,smallmoney,decimal    decimal

   float (2005,2008)                  double

   float(2000)                            float

   int                                        integer

   image                                    longvarbinary

   text,ntext,xml                        longvarchar

    numeric                          numeric

    real                                 real

    smallint                            smallint

    datetime,smalldatetime     timestamp

    tinyint                               tinyint

    varbinary                           varbinay

    nvarchar,varchar                varchar

date,datetime2,datetimeoffset,time对应的都是varchar

原创粉丝点击