MySQL 数据类型
在mysql中,有三种主要类型:文本,数字和日期/时间类型。
Text类型:
数据类型 | 描述 |
---|
CHAR(size) | 保存固定长度的字符串(可包含字母,数字以及特殊字符)。在括号中指定字符串的长度。最多255个字符。 |
VARCHAR(size) | 保存可变长度的字符串(可包含字母,数字以及特殊字符)。在括号中指定字符串的最大长度为255个字符。注释:如果值得长度大于255,则被转换为TEXT类型 |
TINYTEXT | 存放最大长度为255个字符的字符串 |
YEXT | 存放最大长度为16777215个字符的字符串 |
BLOB | 用于BLOBs(Binary Large OBjects)。存放最多16777215字节的数据 |
LONGTEXT | 用于BLOBs(Binary Large OBjects)。存放最多4294967295字节的数据 |
ENUM(x,y,z,etc.) | 允许你输入可能值的列表。可以在ENUM列表中列出最大65535个值。如果列表中不存在插入的值,则插入空值。注释:这些值是按照你输入的顺序存储的。可以按照此格式输入可能的值:ENUM(‘X’,‘Y’,‘Z’). |
SET | 与ENUM类似,SET最多只能包含64个列表项,不过SET必须存储一个以上的值。 |
Number类型:
数据类型 | 描述 |
---|
TINYINT(size) | -128到127常规。0到255没有符号。在括号中规定最大位数。 |
SMALLINT(size) | -32768到32767常规。0到65535没有符号。在括号中规定最大位数。 |
MEDIUMINT(SIZE) | 0到16777215。在括号中规定最大位数。 |
INT(size) | -2147483648到2147483647常规。0到4294967295无符号,在括号中规定最大位数。 |
BIGINT(size) | -9223372036854775808到9223372036854775807常规。0到18446744073709551615无符号。在括号中规定最大位数。 |
FLOAT(size,d) | 带有浮动小数点的小数字。在括号中规定最大位数,在d参数中规定小数点右侧的最大位数。 |
DOUBLE(size,d) | 带有浮动小数点的大数字。在括号中规定最大位数。在d参数中规定小数点右侧的最大位数。 |
DECIMAL(size,d) | 作为字符串存储的DOUBLE类型,允许固定的小数点。 |
这些整数类型拥有额外的选项UNSINGED。通常,整数可以是负数或正数。如果添加UNSINGED属性,那么范围而将从0开始,而不是某个负数。
Date类型:
数据类型 | 描述 |
---|
DATE() | 日期。格式:年-月-日。注释:支持的范围从‘1000-01-01’到‘9999-12-31’ |
DATETIME() | 日期和时间的组合。格式:年-月-日 时-分-秒。注释:支持的范围从‘1000-01-01 00:00:00’到‘9999-12-31 23:59:59’ |
TIMESTAMP() | 时间戳。TIMESTAMP值使用Unix纪元(‘1970-01-01 00:00:00’ UTC)至今的描述来存储。格式:年-月-日 时-分-秒。注释:支持的范围是从‘1970-01-01 00:00:01’UTC到‘2038-01-09 03:14:07’UTC。(UTC是世界统一时间) |
TIME() | 时间。格式:时-分-秒 注释:支持的范围是从‘-838:59:59’到‘838:59:59’ |
YEAR() | 2或4位的年。注释:4位格式所允许的值:1901到2155.两位格式所允许的值70到69,表示从1970年代2069年。 |
SQL Server数据类型
Character 字符串:
数据类型 | 描述 |
---|
char(n) | 固定长度的字符串。最多8000个字符。 |
varchar(n) | 可变长度的字符串。最多8000个字符 |
varchar(max) | 可变长度的字符串。最多1073741824个字符 |
text | 可变长度的字符串。最多2GB字符数据 |
Unicode字符串:
数据类型 | 描述 |
---|
nchar(n) | 固定长度的Unicode数据。最多4000个字符。 |
nvarchar(n) | 可变长度的Unicode数据。最多4000个字符。 |
nvarchar(max) | 可变长度的Unicode数据。最多536870912个字符。 |
ntext | 可变长度的Unicode数据。最多2GB字符数据。 |
Binary类型:
数据类型 | 描述 |
---|
bit | 允许0,1或NULL |
binary(n) | 固定长度的二进制数据。最多8000字节。 |
varbinary(n) | 可变长度的二进制数据。最多8000字节。 |
varbinary(max) | 可变长度的二进制数据。最多2GB字节 |
image | 可变长度的二进制数据。最多2GB |
Number类型:
数据类型 | 描述 |
---|
tinyint | 允许从0到255的所有数字。 |
smallint | 允许从-32768到32767的所有数字。 |
int | 允许从-2147483648到2147483647的所有数字。 |
bigint | 允许介于-9223372036854775808和9223372036854775807之间的所有数字。 |
decimal(p,s) | 固定精度和比例的数字。允许从-10^ 38 到 10^38-1之间的数字。p参数指示可以存储的最大位数(小数点左侧和右侧)。p必须是1到38之间的值。默认是18。s参数指示小数点右侧存储的最大位数。s必须是0到p之间的值。默认是0。 |
numeric(p,s) | 固定精度和比例的数字。允许从-10^ 38 到 10^38-1之间的数字。p参数指示可以存储的最大位数(小数点左侧和右侧)。p必须是1到38之间的值。默认是18。s参数指示小数点右侧存储的最大位数。s必须是0到p之间的值。默认是0。 |
smallmoney | 介于-9223372036854775808和9223372036854775807之间的货币数据。 |
float(n) | 从-1.79E +308到1.79E +308的浮动精度数字数据,参数n只是该字段保存4字节还是8字节。float(24)保存4字节,而float(53)保存8字节。n的默认值是53。 |
real | 从-3.40E+38到3.40E+38的浮动精度数字数据。 |
Date类型:
数据类型 | 描述 |
---|
dtetime | 从1753年1月1日到9999年12月31日,精度为3.33毫秒。 |
datetime2 | 从1753年1月1日到9999年12月31日,精度为100纳秒。 |
smalldatetime | 从1900年1月1日到2079年6月6日,精度为1分钟。 |
date | 仅存储日期。从0001年1月1日到9999年12月31日。 |
time | 仅存储时间。精度为100纳秒。 |
datetimeoffset | 与datetime2相同,外加时区偏移。 |
timestamp | 存储唯一的数字,每当创建或者修改某行时,该数字会更新。timestamp基于内部时钟,不对应真实时间。每个表只能有一个timestamp变量。 |
其它数据类型:
数据类型 | 描述 |
---|
sql_variant | 存储最多8000字节不同数据类型的数据,除了text。ntext以及timestamp。 |
uniqueidentifier | 存储全局标识符(GUID) |
xml | 存储XML格式化数据。最多2GB |
cursor | 存储对用于数据库操作的指针的引用。 |
table | 存出结果集,供稍后处理。 |