SQL 用于各种数据库的数据类型

本文介绍了Microsoft Access、MySQL和SQL Server中常用的数据类型,包括Text、Number、Date/Time等,并详细阐述了每种类型的特点和使用范围,如MySQL中的UNSIGNED属性,以及SQL Server的多种数据类别。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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位小数(可以自己选择使用哪个国家的货币)
AutonumberAutoNumber字段自动会为每条记录分配数字,通常从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
Year2位或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存储结果集,供稍后处理
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值