Microsoft Access、MySQL 和 SQL Server 所使用的数据类型和范围
Microsoft Access 数据类型
Memo | 用于更大数量的文本,最多存储65,536个字符(无法对memo字段进行排序,但它们是可搜索的) |
Byte | 允许0到255的数字 |
Integer | 允许介于-32,768与32,768之间的全部数字 |
Long | 允许介于-2,147,483,648与2,147,483,647之间的全部数字 |
Single | 单精度浮点,处理大多数小数 |
Duble | 双精度浮点,处理大多数小数 |
Currency | 用于货币,支持15位的元,外加4位小数(可以自己选择使用哪个国家的货币) |
Autonumber | AutoNumber字段自动会为每条记录分配数字,通常从1开始 |
Date/Time | 用于日期和时间 |
Yes/No | 逻辑字段,可以显示为Yes/No、True/Fals或On/Off,在代码中,使用常量True和False等价于1和0(Yes/No字段中不允许Null值) |
Ole Objet | 可以存储图片、音频、视频或其他Blobs(Binary Large Objects) |
Hyperlink | 包含指向其他文件的连接,包括网页 |
Lookup Wizard | 允许你创建一个可从下拉列表中进行选择的选项列表 |
MySQL 数据类型
在 MySQL 中,有三种主要的类型:Text(文本)、Number(数字)和 Date/Time(日期/时间)类型
Text 类型:
Char(size) | 保存固定长度的字符串(可包含字母、数字以及特殊字符),在括号中指定字符串的长度,最多255个字符 |
Varchar(size) | 保存可变长度的字符串(可包含字母、数字以及特殊字符),在size参数中指定最大长度,最多255个字符(如果值的长度大于255,则被转换为Text类型) |
Tinytext | 存放最大长度为255个字符的字符串 |
Text | 存放最大长度为65,535个字符的字符串 |
Blob | 用于Blobs(Binary Large Objects),存放最多65,535字节的数据 |
Mediumtext | 存放最大长度为16,777,215个字符的字符串 |
Mediumblob | 用于Blobs(Binary Large Objects),存放最多16,777,215字节的数据 |
Longtext | 存放最大长度为4,294,967,295个字符的字符串 |
Longblob | 用于Blobs(Binary Large Objects),存放最多4,294,967,295字节的数据 |
Enum(x,y,z) | 允许输入可能值的列表,可以在Enum列表中列出最大65535个值,如果列表中不存在插入的值,则插入空值(这些值是按照输入顺序排序的) |
Set | 与Enum类似,Set最多只能包含64个列表项且Set可存储一个以上的选择 |
Number 类型:
Tinyint(size) | -128到127常规,0到255无符号*,在size参数中规定最大位数 |
Smallint(size) | -32768到32767常规,0到65535无符号*,在size参数中规定最大位数 |
Mediumint(size) | -8388608到8388607普通,0到16777215无符号*,在size参数中规定最大位数 |
Int(size) | -2147483648到2147483647常规,0到4294967295无符号,在size参数中规定最大位数 |
Bigint(size) | -9223372036854775808到9223372036854775807常规,0到18446744073709551615无符号*,在size参数中规定最大位数 |
Float(size,d) | 带有浮动小数点的小数字,在size参数中规定最大位数,在d参数中规定小数点右侧的最大位数 |
Double(size,d) | 带有浮动小数点的大数字,在size参数中规定最大位数,在d参数中规定小数点右侧的最大位数 |
Declmal(size,d) | 字符串存储类型,允许固定的小数点,在size参数中规定最大位数,在d参数中规定小数点右侧的最大位数 |
这些整数类型拥有额外的选项 UNSIGNED。通常,整数可以是负数或正数。如果添加 UNSIGNED 属性,那么范围将从 0 开始,而不是某个负数
Date 类型:
Date | 日期,YYYY-MM-DD,支持范围是从‘1000-01-01’到‘9999-12-31’ |
Datetime | 日期和时间的组合,YYYY-MM-DD HH:MM:SS,支持范围是从‘1000-01-01 00:00:00’到‘9999-12-31 13:59:59’ |
Timestamp | 时间戳,使用Unix纪元(‘1970-01-01 00:00:00’ UTC)至今的秒数来存储,YYYY-MM-DD HH:MM:SS,支持的范围从‘1970-01-01 00:00:00’UTC到‘2038-01-09 03:14:07’UTC |
Year | 2位或4位格式的年,2位格式所允许的值从1970到2069。4位格式所允许的值:1901到2155 |
虽然 DATETIME 和 TIMESTAMP 返回相同的格式,但它们的工作方式很不同。在 INSERT 或 UPDATE 查询中,TIMESTAMP 自动把自身设置为当前的日期和时间。TIMESTAMP 也接受不同的格式,比如 YYYYMMDDHHMMSS、YYMMDDHHMMSS、YYYYMMDD 或 YYMMDD
SQL Server 数据类型
在 SQL Server 中,有四种主要的类型:String 类型、Number 类型、Date 类型、其他数据类型
String 类型:
Char(n) | 固定长度的字符串,最多8,000个字符 |
Varchar(n) | 可变长度的字符串,最多8,000个字符 |
Varchar(max) | 可变长度的字符串,最多1,073,741,823个字符 |
Text | 可变长度的字符串,最多2GB文本数据 |
Nchar | 固定长度的Unicode字符串,最多4,000个字符 |
Nvarchar | 可变长度的Unicode字符串,最多4,000个字符 |
Nvarchar(max) | 可变长度的Unicode字符串,最多536,870,912个字符 |
Ntext | 可变长度的Unicode字符串,最多2GB文本数据 |
Bit | 允许0、1或null |
Binary(n) | 固定长度的二进制字符串,最多8000字节 |
Varbinary | 可变长度的二进制字符串,最多8000字节 |
Varbinary(max) | 可变长度的二进制字符串,最多2GB |
Image | 可变长度的二进制字符串,最多2GB |
Number 类型:
Tinyint | 允许从0到255的所有数字 |
Smallint | 允许介于-32,768与32,767的所有数字 |
Int | 允许介于-2,147,483,648与2,147,483,647的所有数字 |
Bigint | 允许介于-9,223,372,036,854,755,808与9,233,372,036,854,755,807之间的所有数字 |
Decimal(p,s) | 固定精度和比例的数字,允许-10 ^38+1到10 ^38-1之间的数字,p参数指定可以存储的最大位数,但必须是1到38之间的值,默认是18,s参数指定小数点右侧存储的最大位数,s必须是0到p之间的值,默认是0 |
Numeric(p,s) | 固定精度和比例的数字,允许-10 ^38+1到10 ^38-1之间的数字,p参数指定可以存储的最大位数,但必须是1到38之间的值,默认是18,s参数指定小数点右侧存储的最大位数,s必须是0到p之间的值,默认是0 |
Smallmoney | 介于-214,748,3648与214,748,3647之间的货币数据 |
Money | 介于-922,377,203,685,477,5808与922,377,203,685,477,5807之间的货币数据 |
Float(n) | 从-1,79E+308到1,79E+308的浮动精度数字数据,n参数指示该字段保存4字节还是8字节,float(24)保存4字节,而float(53)保存8字节,默认保存8字节 |
Real | 从-3,40E+38dao3,40E+38的浮动精度数字数据 |
Date 类型
Datetime | 从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 | 存储最多8,000字节不同数据类型的数据,除了text、ntext以及timestamp类型的数据 |
Uniqueidentifier | 存储全局唯一标识符(GUID) |
Xml | 存储XML格式化数据,最多2GB |
Cursor | 存储对用于数据库操作的指针的引用 |
Table | 存储结果集,供稍后处理 |