首页 > 其他分享 >数据类型

数据类型

时间:2023-08-17 11:36:29浏览次数:25  
标签:00 01 59 字节 数据类型 存储 范围

bigint、int、smallint、tinyint

使用整数数据的精确数字数据类型。若要节省数据空间,请使用能够可靠包含所有可能值的最小数据类型。例如,对于一个人的年龄,tinyint就足够了,因为没人活到255岁以上。但对于建筑物的年龄,tinyint就不再适应,因为建筑物的年龄可能超过255年。

数据类型范围存储
bigint -2^63(-9,223,372,036,854,775,808)到2^63-1(9,223,372,036,854,775,807) 8字节
int -2^31(-2,147,483,648)到2^31-1(2,147,483,647) 4字节
smallint -2^15(-32,768)到2^15-1(32,767) 2字节
tinyint 0到255 1字节

 

bit

SQL server数据库引擎优化位列的存储。如果表中的bit列为8列或更少,则这些列作为1个字节存储。如果bit列为9到16列,则这些列作为2个字节存储,以此类推。字符串值TRUE和FALSE可转换为bit值:

TRUE将转换为1,FALSE将转换为0。

性别

bool值

 

numeric和decimal

decimal[(p[ ,s])]和numeric[(p[, s])]

固定精度和小数位数。使用最大精度时,有效值的范围为-10^38+1到10^38-1。decimal的ISO同义词为dec和dec(p,s)。numeric在功能上完全等同于decimal。

金额——精度很高,小数点后面可能有很多位;后面的小数点精度可以达到38位

 

smallmoney和money

小数点存储都为4位,如果出现第5位,根据第5位做四舍五入。

数据类型范围存储
money -922,337,203,685,477.5808到922,337,203,685,477.5807 8字节
smallmoney -214,748.3648到214,748.3647 4字节

 

float和real

这两个类型保存的是一个近似值。保存的数据,可能和真是要保存的数据有细微的偏差。

注意:数据筛选的时候,只适合 > ≥ < ≤ ,不适合

float[(n)]其中n为用于

存储float数值尾数的位数(以科学计数法表示),因此可以确定精度和存储大小。如果指定了n,则它必须介于1和53之间的某个值。n的默认值为53.

n值Precision存储大小
1-24 7位数 4字节
25-53 15位数 8字节

 

date类型 说明

date类型可用于需要一个日期值而不需要时间部分时。

roperties
语法 date
使用情况 DECLARE@MyDate date CREATE TABLE Table1(Column1 date)
默认的字符串文字格式(用于下级客户端) YYYY-MM-DD 有关详细信息,请参阅后面的“下级客户端的向后兼容性”部分。
范围 0001-01-01到9999-12-31(对于informatica,为1582-10-15到9999-12-31) 公元1年1月1日(公历纪元)到公元9999年12月31日(对于informatica,公元1582年10月15日到公元9999年12月31日)
各元素的范围 YYYY是表示年份的四位数字,范围从0001到9999 。对于informatica,YYYY限为1582年到9999年。MM是表示指定年份中的月份的两位数字,范围从01到12 。DD是表示指定月份几号的两位数字,介于01和31之间(具体视月份而定)。
字符长度 10位
精度、小数位数 10,0
存储大小 固定3字节
存储结构 1、3字节整数存储日期
精确度 一天
默认值 1900-01-01 此值用于从time隐士转换到datetime2或datetimeoffset时追加的日期部分。
日历 公历
用户定义的秒的小数部分精确度
时区偏移量感知和保留
夏时制感知

 

datetime 说明

可用于需要同时包含日期和时间信息的值。

properties
语法 datetime
使用情况 DECLARE@MyDatetime datetime CREATE TABLE Table1(Column1 datetime)
默认的字符串文字格式(用于下级客户端) 不适用
日期范围 1753年1月1日到9999年12月31日
时间范围 00:00:00到23:59:59.997
时区偏移量范围
各元素的范围 YYYY是表示年份的四位数字,范围从1753到9999 。MM是表示指定年份中的月份的两位数字,范围从01到12 。DD是表示指定月份中的某一天的两位数字,介于01和31之间(最高值取决于相应的月份)。hh是表示小时的两位数字,范围为00到23 。mm是表示分钟的两位数字,范围为00到59 。ss是表示秒钟的两位数字,范围为00到59 。n*为一个0到3位的数字,范围为0到999,表示秒的小数部分 。
字符长度 最低19位到最高23位
存储大小 8字节
精确度 舍入到.000、 .003或 .007秒三个增量
默认值 1900-01-01 00:00:00
日历 公历(包括完整的年份范围)
用户定义的秒的小数部分精度
时区偏移量感知和保留
夏时制感知

 

time 说明

属性
语法 time[(fractional second scale)]
使用情况 DECLARE @MyTime time(7) CREATE TABLE Table(Column1 time(7))
fractional seconds scale 为秒的小数部分指定数字的位数 。这可以是从0到7的整数 。对于informatica,这可以是从0到3的整数。默认小数位数为7(100ns)。
默认的字符串文字格式(用于下级客户端) 对于Informatica,为hh:mm:ss[.nnnnnnn] 有关详细信息,请参阅下级客户端的向后兼容性部分
范围 00:00:00.0000000到23:59:59.9999999(对于Informatica,为00:00:00.000到23:59:59.999)
各元素的范围 hh是表示小时的两位数字,范围为0到23 。mm是表示分钟的两位数字,范围为0到59 。ss是表示秒的两位数字,范围为0到59 。n是0到7位数字,范围为0到9999999,它表示秒的小数部分 。对于Informatica,n是零到三位数字,范围为0到999 。
字符长度 最小8位(hh:mm:ss),最大16位(hh:mm:ss.nnnnnnn) 。对于Informatica,最大值位12位(hh:mm:ss.nnn) 。
精度、小数位数(用户只能指定小数位数) 请参阅下表。
存储大小 固定5字节,是使用默认的100ns秒的小数部分精度时的默认存储大小 。在Informatica中,默认为4个字节,固定不变,同时秒的小数部分精度默认为1毫秒。
精确度 100纳秒(Informatica中为1毫秒)
默认值 00:00:00 此值用作从date隐式转换到datetime2或datetimeoffset时追加的时间部分 。
用户定义的秒的小数部分精度
时区偏移量感知和保留
夏时制感知

 

datetime2 说明

属性
语法 datetime2[(fracional seconds precision)]
使用情况 DECLARE @MyDatetime2 datetime2(7) CREATE TABLE Table(Column1 datetime2(7))
默认的字符串文字格式(用于下级客户端) YYYY-MM-DD hh:mm:ss[.fractional seconds] 有关详细信息,请参阅后面的下级客户端的向后兼容性部分
日期范围 0001-01-01到31.12.99 公元1年1月1日到公元9999年12月31日
时间范围 00:00:00到23:59:59.9999999
时区偏移量范围
各元素的范围 YYYY是表示年份的四位数字,范围从0001到9999,表示年份 。MM是一个两位数,范围从01到12,它表示指定年份中的月份。DD是表示指定月份中的某一天的两位数字,介于01和31之间(具体取决于月份)。hh是表示小时的两位数字,范围为00到23 ,它表示小时。mm是表示分钟的两位数字,范围为00到59 ,它表示分钟。ss是表示秒钟的两位数字,范围为00到59 ,它表示秒钟 。n*为一个0到7位的数字,范围为0到9999999,表示秒的小数部分 。在Informatica中,当n>3时,秒的小数部分会被截断。
字符长度 最低19位(YYYY-MM-DD hh:mm:ss),最高27位(YYYY-MM-DD hh:mm:ss.0000000)
精度、小数位数 -0到7位,准确度为100ns 。默认精度为7位数。
存储大小 精度小于3的6个字节 。精度为3和4的6个字节 。所有其他精度需要8个字节 。
精确度 100纳秒
默认值 1900-01-01 00:00:00
日历 公历
用户定义的秒的小数部分精度
时区偏移量感知和保留
夏时制感知

 

smalldatetime 说明

属性
语法 smalldatetime
使用情况 DECLARE @MySmalldatetime smalldatetime CREATE TABLE Table(Column1 smalldatetime)
默认的字符串文字格式(用于下级客户端) 不适用
日期范围 1900-01-01 到 2079-06-06 1900年1月1日到2079年6月6日
时间范围 00:00:00到23:59:59 2007-05-09 23:59:59 将舍入为 2007-05-10 00:00:00
各元素的范围 YYYY是表示年份的四位数字,范围从1900到2079,表示年份 。MM是一个两位数,范围从01到12,它表示指定年份中的月份。DD是表示指定月份中的某一天的两位数字,介于01和31之间(具体取决于月份)。hh是表示小时的两位数字,范围为00到23 ,它表示小时。mm是表示分钟的两位数字,范围为00到59 ,它表示分钟。ss是表示秒钟的两位数字,范围为00到59 ,它表示秒钟 。值为29.998秒或更小值时会向下舍入到最接近的分钟数 。值为29.999秒或更大值会向上舍入到最接近的分钟数 。
字符长度 最高19位
存储大小 固定4个字节
精确度 一分钟
默认值 1900-01-01 00:00:00
日历 公历(不包括完整的年份范围)
用户定义的秒的小数部分精度
时区偏移量感知和保留
夏时制感知

 

datetimeoffset 说明

属性
语法 datetimeoffset[(fractional seconds precision)]
使用情况 DECLARE @MyDatetimeoffset datetimeoffset(7) CREATE TABLE Table1(Column1 datetimeoffset(7))
默认字符串文字格式(用于下级客户端) YYYY-MM-DD hh:mm:ss[.nnnnnnn] [{ + | - }hh:mm]
日期范围 0001-01-01到31.12.99 公元 1年1月1日到公元9999年12月31日
时间范围 00:00:00 到 23:59:59.9999999
时区偏移量范围 -14:00 到 +14:00
各元素的范围 YYYY是表示年份的四位数字,范围从0001到9999,表示年份 。MM是一个两位数,范围从01到12,它表示指定年份中的月份。DD是表示指定月份中的某一天的两位数字,介于01和31之间(具体取决于月份)。hh是表示小时的两位数字,范围为00到23 ,它表示小时。mm是表示分钟的两位数字,范围为00到59 ,它表示分钟。ss是表示秒钟的两位数字,范围为00到59 ,它表示秒钟 。n*为一个0到7位的数字,范围为0到9999999,表示秒的小数部分 。hh是两位数,范围位-14到+14 。mm是两位数,范围位00到59 。
字符长度 最低26位(YYYY-MM-DD hh:mm:ss {+|-} hh:mm) 到最高34位(YYYY-DD-MM hh:mm:ss.nnnnnnn {+|-} hh:mm)
精度、小数位数 请参阅下表
存储大小 默认值位10个字节的固定大小,默认的秒的小数部分精度位100ns
默认值 1900-01-01 00:00:00 00:00
日历 公历
用户定义的秒的小数部分精度
时区偏移量感知和保留
夏时制感知

 

char和varchar

char[(n)]固定大小字符串数据 。n用于定义字符串大小(以字节为单位),并且它必须为1到8,000之间的值 。对于单字节编码字符集(如拉丁文),存储大小为n个字节,并且可存储的字符数也为n 。对于多字节编码字符集,存储大小仍为n个字节,但可存储的字符数可能小于n 。char的ISO同义词是character 。有关字符集的详细信息,请参阅单字节和多字节字符集 。

varchar[( n | max )]可变大小字符串数据 。使用n定义字符串大小(以字节为单位),可以是介于1和8,000之间的值;或使用max指明列约束大小上限为最大存储2^31-1个字节(2GB) 。对于单字节编码字符集(如拉丁文),存储大小为n+2个字节,并且可存储的字符数也为n 。对于多字节编码字符集,存储大小仍为n+2个字节,但可存储的字符数可能小于n 。varchar的ISO同义词是charvarying或charactervarying

 

nchar和nvarchar

nchar[(n)]

无论存储中文还是英文、数字等,每个字符都是占用两个字节 。

固定大小字符串数据 。n用于定义字符串大小(以双字节为单位),并且它必须为1到4,000之间的值 。存储大小为n字节的两倍 。对于UCS-2编码,存储大小为n个字节的两倍,并且可存储的字符数也为n 。对于UTF-16编码,存储大小仍为n个字节的两倍,但可存储的字符数可能小于n,因为补充字符使用两个双字节(也称为代理顶对) 。nchar的ISO同义词是national char和national character 。

nvarchar[(n | max)]

可变大小字符串数据 。n用于定义字符串大小(以双字节为单位),并且它可能为1到4,000之间的值 。max指示最大存储大小是2^30-1个字符(2GB)。存储大小为n字节的两倍+2个字节 。对于UCS-2编码,存储大小为n个字节的两倍+2个字节,并且可存储的字符数也为n 。对于UTF-16编码,存储大小仍为n个字节的两倍+2个字节,但可存储的字符数可能小于n,因为补充字符使用两个双字节(也称为代理顶对)。nvarhcar的ISO同义词是national char varying和national character varying 。

 

ntext、text和images

ntext

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

text

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

images

长度可变的二进制数据,从0到2^31-1(2,147,483,647)个字节。

 

标签:00,01,59,字节,数据类型,存储,范围
From: https://www.cnblogs.com/LloydTony/p/17637161.html

相关文章

  • Oracle DB :用户自定义数据类型
    用户自定义类型可以使用Oracle内嵌的数据类型和其他用户自定义类型作为对象类型的构建块,对象模型构成了在应用中数据的结构和行为。下面将描述用户自定义类型的种类。提示:可以参考createType和createtypebody获取更多的创建用户定义数据类型的信息;==对象类型==对象类型是真......
  • Python3 数据类型转换
    有时候,我们需要对数据内置的类型进行转换,数据类型的转换,一般情况下你只需要将数据类型作为函数名即可。Python数据类型转换可以分为两种:隐式类型转换-自动完成显式类型转换-需要使用类型函数来转换1. 隐式类型转换在隐式类型转换中,Python会自动将一种数据类型转......
  • elasticsearch中的数据类型search_as_you_type及查看底层Lucene索引
    search_as_you_type字段类型用于自动补全,当用户输入搜索关键词的时候,还没输完就可以提示用户相关内容。as_you_type应该是说当你打字的时候。它会给索引里的这个类型的字段添加一些子字段_2gram_3gram和_index_prefix。_2gram的意思是,如果一个值是abcd,2gram就是abbccd,3gr......
  • C# 的数据类型
    在C#中,变量主要分为三种类型:值类型,引用类型,指针类型1、值类型值类型变量可以直接分配给一个值,直接包含数据(如 int、char、float,它们分别存储数字、字符、浮点数)特点:当声明一个值类型时,系统分配内存来存储值C#中可用的值类型:Java中有8大基本类型,C#中都含有,就是bool与b......
  • elasticsearch中的数据类型:flattened和join
    flattened:比如你有一个字段的值是一个json,这个json里面又有很多字段,你又不想一个一个的定义这些字段到mapping,就可以用flattened直接动手:创建索引:PUTperson{"mappings":{"properties":{"patient_name":{"type":"text"},&......
  • linux shell变量和数据类型
    变量是在编程中用于存储和操作数据的容器。在Shell脚本中,变量不需要事先声明数据类型,可以存储不同类型的值。以下是一些常见的变量和数据类型的示例:1.**字符串变量**:字符串是文本数据,在Shell脚本中用双引号或单引号括起来。NAME="Alice"MESSAGE='Hello,World!'2.**整数......
  • JavaSE--基本数据类型的包装类
    一、八种包装类1、为什么需要基本数据类型的包装类  有以下需求:方法参数为Objectobj,但是有需要传进去一个数字或者字符,publicclassIntegerTest01{publicstaticvoidmain(String[]args){//有没有这种需求:调用doSome()方法的时候需要传一个数字进去......
  • Mysql - BIGINT 数据类型
    1、bigint默认是有符号,即取值范围是正负范围比如:bigint(20),就是-1234567890123456789~+12345678901234567892、bigintunsigned无符号,即取值范围就是正值范围比如:bigint(20),就是+12345678901234567890BIGINTUNSIGNED是MySQL中一种无符号的整数数据类型,使用8个字节(64位)......
  • Java中Integer数据类型详细用法
    Java中的Integer类在对象中包装了一个基本类型int的值。以下是关于Integer类的详细用法和相关代码:1.构造方法:Integer(intvalue):构造一个新分配的Integer对象,它表示指定的int值。Integer(Strings):构造一个新分配的Integer对象,它表示String参数所指示的int值。javaCopycodeI......
  • java中基本数据类型
    Java中的基本数据类型包括以下八种:整数类型:byte:占用1个字节,取值范围为-128到127。short:占用2个字节,取值范围为-32768到32767。int:占用4个字节,取值范围为-2147483648到2147483647。long:占用8个字节,取值范围为-9223372036854775808到9223372036854775807。浮点数类型:float:占用4个字节......