1. SqlServer数据类型
类 别
数据类型
说 明
精确数字
bigint
整数数据,从 –2^63 (–9,223,372,036,854,775,808) 到 2^63–1 (9,223,372,036,854,775,807)。存储大小为 8 字节。
bit
整数数据,值为 1 或 0。存储大小为 1 位。
int
整数数据,从 –2^31 (-2,147,483,648) 到 2^31–1 (2,147,483,647)。存储大小为 4 字节。
smallint
整数数据,从 –32,768 到 32,767。存储大小为 2 字节。
tinyint
整数数据,从 0 到 255。存储大小为 1 字节。
numeric[p,[s]]
字符串长度0到59
固定精度和小数的数字数据,取值范围从 –10^38+1 到 10^38–1。p 变量指定精度,取值范围从 1 到 38。s 变量指定小数位数,取值范围从 0 到 p。存储大小为 19 字节。
decimal [p,[s]]
固定精度和刻度的数字。精度(p)指被保存数字的总位数,刻度(s)指定数字的小数点后面的位数。存储大小为5-17字节。
money
货币数据,从 (–2^63/10000) (–922,337,203,685,477.5808) 到 2^63–1 (922,337,203,685,477.5807),准确度为货币单位的万分之一。存储大小为 8 字节。
smallmoney
货币数据,从-213748.3648到213748.3647,存储大小为4字节。
近似数字
float[ ( n ) ]
浮点数数据,其中 n 为用于存储 float 数值尾数的位数(以科学记数法表示),从 –1.79E +308 到 1.79E+308,存储大小为 8 字节。
real
浮点精度数字数据,从 –3.40E+38 到 3.40E+38。存储大小为 4 字节。
日期和时间
datetime
日期和时间数据,1753-1-1到9999-12-31,精度为1/300秒,存储大小为两个4字节。
smalldatetime
日期和时间数据,1900-1-1到2079-6-6,精度为分钟,
储大小为两个2字节。
字符串
char [ ( n ) ]
固定长度,非 Unicode 字符数据,长度为 n 个字节。n 的取值范围为 1 至 8,000,存储大小是 n 个字节。
varchar[ ( n | max ) ]
可变长度,非 Unicode 字符数据。n 的取值范围为 1 至 8,000。max 指示最大存储大小是 2^31-1 个字节。存储大小是输入数据的实际长度加 2 个字节。所输入数据的长度可以为 0 个字符。
text
服务器代码页中长度可变的非 Unicode 数据,最大长度为 2^31-1 (2,147,483,647) 个字符。当服务器代码页使用双字节字符时,存储仍是 2,147,483,647 字节。根据字符串,存储大小可能小于 2,147,483,647 字节。
Unicode字符串
nchar [ ( n ) ]
n 个字符的固定长度的 Unicode 字符数据。n 值必须在 1 到 4,000 之间(含)。存储大小为两倍 n 字节。
nvarchar[ ( n | max ) ]
可变长度 Unicode 字符数据。n 值在 1 到 4,000 之间(含)。max 指示最大存储大小为 2^31-1 字节。存储大小是所输入字符个数的两倍 + 2 个字节。所输入数据的长度可以为 0 个字符。
ntext
长度可变的 Unicode 数据,最大长度为 2^30 - 1 (1,073,741,823) 个字符。存储大小是所输入字符个数的两倍(以字节为单位)。
二进制字符串
binary
长度为 n 字节的固定长度二进制数据,其中 n 是从 1 到 8,000 的值。存储大小为 n 字节。
varbinary
可变长度二进制数据,n 可以是从 1 到 8,000 之间的值。max 指示最大存储大小为 2^31-1 字节。存储大小为所输入数据的实际长度 + 2 个字节。所输入数据的长度可以是 0 字节。
image
长度可变的二进制数据,从 0 到 2^31-1 (2,147,483,647) 个字节。
其他数据类型
sql_variant
用于存储sqlserver2005支持的各种数据类型。除text,ntext,image,timestamp,sql_variant,最大长度可以为8016字节。
table
类似于使用临时表,此类型包括列表和数据类型,可以用于定义本地变量或用于用户定义的函数的返回值。随着表定义的变化而变化。
timestamp
公开数据库中自动生成的一个唯一一个二进制的数据类型。通常用作给表行加班本戳的机制。一个表只能由一个该类型字段。存储大小为8字节。
uniqueidentifier
全局唯一标识符(guid)。可以通过newid()函数产生。存储大小为16字节。
xml
2005新增类型,存储xml文件,Xml格式<2gb。
2. MySql数据类型
类 别
数据类型
说 明
数值
BIT[(M)]
位字段类型。M表示每个值的位数,范围为从1到64。如果M被省略, 默认为1。
TINYINT[(M)]
整数。带符号的范围是-128到127。无符号的范围是0到255。BOOL,BOOLEAN是TINYINT(1)的同义词。
SMALLINT[(M)]
整数。带符号的范围是-32768到32767。无符号的范围是0到65535。
MEDIUMINT[(M)]
整数。带符号的范围是-8388608到8388607。无符号的范围是0到16777215。
INT[(M)]
整数。带符号的范围是-2147483648到2147483647。无符号的范围是0到4294967295。
BIGINT[(M)]
整数。带符号的范围是-9223372036854775808到9223372036854775807。无符号的范围是0到184********709551615。
使用带符号的BIGINT或DOUBLE值进行所有算法,因此除了位函数,不应使用大于9223372036854775807(63位)的无符号的大整数! 如果这样做,结果中的最后几位可能出错,这是由于将BIGINT值转换为DOUBLE进行四舍五入时造成的错误。
FLOAT[(M,D)]
(单精度)浮点数。允许的值是-3.402823466E+38到-1.175494351E-38、0和1.175494351E-38到3.402823466E+38。这些是理论限制,基于IEEE标准。实际的范围根据硬件或操作系统的不同可能稍微小些。
M是小数纵位数,D是小数点后面的位数。如果M和D被省略,根据硬件允许的限制来保存值。单精度浮点数精确到大约7位小数位。
DOUBLE[(M,D)]
(双精度)浮点数。允许的值是-1.7976931348623157E+308到-2.2250738585072014E-308、0和2.2250738585072014E-308到 1.7976931348623157E+308。这些是理论限制,基于IEEE标准。实际的范围根据硬件或操作系统的不同可能稍微小些。
M是小数总位数,D是小数点后面的位数。如果M和D被省略,根据硬件允许的限制来保存值。双精度浮点数精确到大约15位小数位。
FLOAT(p)
浮点数。p表示精度(以位数表示),但MySQL只使用该值来确定是否结果列的数据类型为FLOAT或DOUBLE。如果p为从0到24,数据类型变为没有M或D值的FLOAT。如果p为从25到53,数据类型变为没有M或D值的DOUBLE。结果列范围与本节前面描述的单精度FLOAT或双精度DOUBLE数据类型相同。
DECIMAL[(M[,D])]
压缩的“严格”定点数。M是小数位数(精度)的总数,D是小数点(标度)后面的位数。小数点和(负数)的‘-’符号不包括在M中。如果D是0,则值没有小数点或分数部分。DECIMAL整数最大位数(M)为65。支持的十进制数的最大位数(D)是30。如果D被省略, 默认是0。如果M被省略, 默认是10。
日期和时间
DATE
日期。支持的范围为'1000-01-01'到'9999-12-31'。MySQL以'YYYY-MM-DD'格式显示DATE值,但允许使用字符串或数字为DATE列分配值。
DATETIME
日期和时间的组合。支持的范围是'1000-01-01 00:00:00'到'9999-12-31 23:59:59'。MySQL以'YYYY-MM-DD HH:MM:SS'格式显示DATETIME值,但允许使用字符串或数字为DATETIME列分配值。
TIMESTAMP[(M)]
时间戳。范围是'1970-01-01 00:00:00'到2037年。
TIMESTAMP列用于INSERT或UPDATE操作时记录日期和时间。如果你不分配一个值,表中的第一个TIMESTAMP列自动设置为最近操作的日期和时间。也可以通过分配一个NULL值,将TIMESTAMP列设置为当前的日期和时间。
TIMESTAMP值返回后显示为'YYYY-MM-DD HH:MM:SS'格式的字符串,显示宽度固定为19个字符。如果想要获得数字值,应在TIMESTAMP 列添加+0。
TIME
时间。范围是'-838:59:59'到'838:59:59'。MySQL以'HH:MM:SS'格式显示TIME值,但允许使用字符串或数字为TIME列分配值。
YEAR[(2|4)]
两位或四位格式的年。默认是四位格式。在四位格式中,允许的值是1901到2155和0000。在两位格式中,允许的值是70到69,表示从1970年到2069年。
字符串
CHAR(M)
固定长度字符串,当保存时在右侧填充空格以达到指定的长度。M表示列长度。M的范围是0到255个字符。
VARCHAR(M)
变长字符串。M 表示最大列长度。M的范围是0到65,535。(VARCHAR的最大实际长度由最长的行的大小和使用的字符集确定。最大有效长度是65,532字节)。
BINARY(M)
类似于CHAR类型,但保存二进制字节字符串而不是非二进制字符串。
VARBINARY(M)
类似于VARCHAR类型,但保存二进制字节字符串而不是非二进制字符串。
BLOB[(M)]
最大长度为65,535(216–1)字节的BLOB列。可以给出该类型的可选长度M。如果给出,则MySQL将列创建为最小的但足以容纳M字节长的值的BLOB类型。
TEXT[(M)]
最大长度为65,535(216–1)字符的TEXT列。可以给出可选长度M。则MySQL将列创建为最小的但足以容纳M字符长的值的TEXT类型。
ENUM('value1','value2',...)
枚举类型。只能有一个值的字符串,从值列'value1','value2',...,NULL中或特殊 ''错误值中选出。ENUM列最多可以有65,535个截然不同的值。ENUM值在内部用整数表示。
SET('value1','value2',...)
一个设置。字符串对象可以有零个或多个值,每个值必须来自列值'value1','value2',...SET列最多可以有64个成员。SET值在内部用整数表示。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。