暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

SQLServer自学之路 第四章 数据库的数据类型

菜鸡部落 2021-08-02
782

数据库在建表的时候会选择数据类型,以下数据类型是按照SQL Server2019进行排列的


1.bigint

从 -2^63 (-9223372036854775808) 到 2^63-1 (9223372036854775807) 的整型数据(所有数字)。存储大小为 8 个字节。


2.binary(50)

Binary(n) 数据类型用来存储可达8000 字节长的定长的二进制数据。当输入内容长度接近时可用。其存储空间的大小是 n + 4 个字节。


3.bit

取值类型只有:0、1、null三种类型。类似于bool值。可以用0,1来表示true,false。


4.char(10)

对英文字符占用1个字节,对一个汉字占用2个字节。不论你存储的数据是否达到了10个字节,都要占去10个字节的空间,不够的字符用空格去填。


5.date

Date数据类型只存储日期,不存储时间,仅需要3B的存储空间,默认的数据格式是yyyy-MM-dd,支持的日期范围从0001-01-01到9999-12-31


6.datetime

DateTime数据类型存储日期和时间,其存储空间是固定的8个字节,默认的数据格式是yyyy-MM-dd hh:mm:ss.nnn,表示从1753年1月1日到9999年12月31日的日期和时间数据,精确度为3.33毫秒(0.00333秒),也就是说,DateTime表示的日期范围从公元1753年1月1日00:00:00.000 到9999年12月31日23:59:59.997 ,精确到3.33毫秒。


7.datetime2(7)

DateTime2(n)数据类型存储日期和时间,它是DateTime的升级版本,由于小数秒n的精度可以自主设置,其存储大小(Storage Size)不固定,DateTime2(n)占用的存储空间和小数秒的精度之间的关系是:


DateTime2(n)内部存储的第一个字节存储精度n,后续的字节用于存储值。

当小数秒的精度 n < 3 时,存储空间是1B(精度)+ B(数据);

当小数秒的精度 n 是 3 - 4 时,存储空间是1B(精度)+ 7B(数据);

当小数秒的精度 n 是 5 - 7 时,存储空间是1B(精度)+ 8B(数据),最大的小数秒精度是7,默认值是7;

DateTime2可以表示比DateTime更精确的时间,默认的数据格式是yyyy-MM-dd hh:mm:ss.nnnnnnn,DateTime2 秒默认的精度是7,即用7位小数表示一秒的精度。


8.datetimeoffset(7)

DateTimeOffset(n)数据类型由三部分构成:date、time和 offset(时区偏移),包含了日期、时间和时区数据,其日期和时间使用是本地时间。在本地时间的基础上,使用时区偏移量(offset)来计算UTC时间,因此,DateTimeOffset(n)可以同时表示本地时间和UTC时间,默认的显示文本是:YYYY-MM-DD hh:mm:ss[.nnnnnnn] [{+|-}hh:mm],默认值是1900-01-01 00:00:00 00:00。


DateTimeOffset(n)能够表示的日期、时间和时区范围是:


表示的日期范围是:0001-01-01 到 9999-12-31,

表示的时间范围是:00:00:00 到 23:59:59.9999999,表示的时间精度是100ns,

表示的时区范围是:-14:00 到 +14:00

小数秒的精度会影响变量占用的存储空间的大小:


当小数秒的精度n是 0-2 时,存储大小是8B

当小数秒的精度n是 3-4 时,存储大小是9B

当小数秒的精度n是 5-7 时,存储大小是10B,小数秒的默认精度是7

时区偏移的格式为:[+|-] hh:mm,hh 表示的小时范围是00-14,mm 表示的分钟范围是00-59,把DateTimeOffset时间中的UTC时间 和 时区偏移量 进行算术运算,可以得到本地时间。


9.decimal(18,0)

用来存储小数部分数字,decimal(m,n)的意思是m位数中,有n位是小数,即m-n位整数。


10.float

float 表示近似数值,存在精度损失,数据类型是 float(n),n是可选的,默认类型是float(53),占用8bytes。虽然n的取值范围是1-53,实际上,float 只能表示两种类型float(53) 和 float(24),分别占用 8Bytes 和 4Bytes。


11.geography

空间数据存储,“地理网格分割”,该方案适用于数据类型为 geography 的列。


12.geometry

空间数据存储 ,“几何图形网格分割”,这是适用于 geometry 数据类型的方案。


13.hierarchyid

可以用它来做本地存储并且在树层次结构中管理其位置.只用这个函数能简洁地表示层次结构中的位置.该函数提供的一些内置的函数方法可以操作和遍历层次结构,使得存储和查询分层数据更为容易,而不需要像那样通过CTE递归来获得.


14.image

用来存储图片大小不超过2g的图片,将图片转换为二进制!缺点是占用了很大的数据存储空间。但是对于之前的存储物理路径来说读取图片和存储图片方便了很多。


15.int

从 -2^31 (-2,147,483,648) 到 2^31 - 1 (2,147,483,647) 的整型数据(所有数字)。存储大小为 4 个字节.


16.money

存储大小为8个字节,小数点前15位,小数点后4位


17.nchar(10)

所有的字符都占用2个字节,不论你存储的数据是否达到了10个字节,都要占去10个字节的空间,不够的字符用空格去填。


18.ntext

可变长度 Unicode 数据的最大长度为 230 - 1 (1,073,741,823) 个字符。存储大小是所输入字符个数的两倍(以字节为单位)。ntext中存数据是按双字节存的


19.numeric(18,0)

数字型,长度为18,小数点后0位


20.nvarchar(50)

n 的值必须介于 1 与 4,000 之间。nvarchar是双字节存储,汉字的使用nvarchar


21.nvarchar(MAX)

MAX为4000 = nvarchar(4000)


22.real

表示近似数值,存在精度损失


23.smalldatetime

smalldatetime的有效時間範圍1900/1/1~2079/6/6 存储大小为4个字节


24.smallint

从 -2^15 (-32768) 到 2^15-1 (32767) 的整型数据(所有数字)。存储大小为 2 个字节。


25.smallmoney

存储大小为4个字节,小数点前6位小数点后4位


26.sql_variant

可以存放很多种格式。例如一个sql_variant列既可以存放数字,也可以存放文本。读取时需要进行转化


27.text

服务器代码页中的可变长度非 Unicode 数据的最大长度为 231-1 (2,147,483,647) 个字符。当服务器代码页使用双字节字符时,存储量仍是 2,147,483,647 字节。存储大小可能小于 2,147,483,647 字节(取决于字符串)。


28.time(7)

它允许你只存储一个时间值而没有时间。如果想要存储一个特定的时间信息而不涉及具体的日期时,这将非常的有用。TIME数据类型存储使用24小时制,它并不关心时区,支持高达100纳秒的精确度。TIME数据类型支持从0到7不同的精度


29.timestamp

公开数据库中自动生成的唯一二进制数字的数据类型。timestamp 通常用作给表行加版本戳的机制。存储大小为 8 个字节。timestamp 数据类型只是递增的数字,不保留日期或时间。


30.tinyint

从0 到 255 的整型数据(所有数字)。存储大小为 1 个字节。


31.uniqueidentifier

该类型一般用来做为主键使用,可用SQL语法的newid()来生成一个唯一的值。


32.varbinary(50)

可变长度,n 的取值范围为 1 至 8,000,max 是指最大存储空间是 2^31-1 个字节,即最大4GB;


33.varbinary(MAX)

相当于varbinary(8000)


34.varchar(50)

n 的值必须介于 1 与 8,000 之间。按字节存储的,存储一个字母为2个字节,varchar比较节省空间,因为存储大小为字节的实际长度,存储内容都是英文字符而没有汉字等其他语言符号,建议使用varchar


35.varchar(MAX)

相当于varchar(8000)


36.xml

一种称为 XML 的本机数据类型。用户可以创建这样的表,它在关系列之外还有一个或多个 XML 类型的列;此外,还允许带有变量和参数。为了更好地支持 XML 模型特征(例如文档顺序和递归结构),XML 值以内部格式存储为大型二进制对象 (BLOB)。

————————————————

版权声明:本文为CSDN博主「葬歌倾城」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

原文链接:https://blog.csdn.net/qq1084517825/article/details/117409894


文章转载自菜鸡部落,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论