SQL 数据类型
数据类型用于表示可以存储在数据库表中的数据的性质。例如,在表的特定列中,如果要存储字符串类型的数据,则必须声明此列的字符串数据类型。
数据类型主要分为以下三类每个数据库。
字符串数据类型
数值数据类型
日期和时间数据类型
MySQL,SQL Server和Oracle数据库中的数据类型
MySQL数据类型
使用的数据类型列表在MySQL数据库中。这基于MySQL 8.0。
MySQL字符串数据类型
数据类型 |
描述 |
CHAR(Size) |
它用于指定固定长度的字符串,该字符串可以包含数字,字母和特殊字符。它的大小可以是0到255个字符。默认值为1。 |
VARCHAR(Size) |
它用于指定可变长度的字符串,该字符串可以包含数字,字母和特殊字符。它的大小可以是0到65535个字符。 |
BINARY(Size) |
它等于CHAR(),但存储二进制字节字符串。它的size参数指定列的长度(以字节为单位)。默认值为1。 |
VARBINARY(Size) |
它等于VARCHAR(),但存储二进制字节字符串。它的size参数指定最大列长度(以字节为单位)。 |
TEXT(Size) |
它包含一个最大可包含255个字符的字符串。 |
TINYTEXT |
它包含一个最大长度为255个字符的字符串。 |
MEDIUMTEXT |
它包含一个最大长度为16,777,215的字符串。 |
LONGTEXT |
它包含一个最大长度为4,294,967,295个字符的字符串。 |
ENUM(val1,val2,val3,...) |
当一个字符串对象只有一个值(从可能的值列表中选择)时使用。它在ENUM列表中包含65535个值。如果您插入的值不在列表中,则将插入空白值。 |
SET(val1,val2,val3,....) |
它用于指定可以具有0个或多个值的字符串,该值是从可能值的列表中选择的。您可以一次在SET列表中最多列出64个值。 |
BLOB(Size) |
它用于BLOB(二进制大对象)。它最多可以容纳65,535个字节。 |
MySQL数值数据类型
数据类型 |
描述 |
BIT(Size) |
它用于位值类型。每个值的位数指定大小。其大小可以为1到64。默认值为1。 |
INT(size) |
它用于整数值。其有符号范围从-2147483648到2147483647,无符号范围从0到4294967295。size参数指定最大显示宽度为255。 |
INTEGER(Size) |
它等于INT(size)。 |
FLOAT(size,d) |
用于指定浮点数。它的size参数指定数字的总数。小数点后的位数由 d 参数指定。 |
FLOAT(p) |
用于指定浮点数。 MySQL使用p参数来确定使用FLOAT还是DOUBLE。如果p在0到24之间,则数据类型为FLOAT()。如果p从25到53,则数据类型为DOUBLE()。 |
DOUBLE(Size,d) |
是正常大小的浮点数。它的size参数指定数字的总数。小数点后的位数由d参数指定。 |
DECIMAL(size,d) |
它用于指定一个固定点号。它的size参数指定数字的总数。十进制参数后的位数由 d 参数指定。大小的最大值为65,默认值为10。 d 的最大值为30,默认值为0。 |
DEC(Size,d) |
它等于DECIMAL(size,d)。 |
BOOL |
它用于指定布尔值true和false。零被认为是错误的,非零值被认为是真实的。 |
MySQL日期和时间数据类型
数据类型 |
描述 |
DATE |
它用于指定日期格式YYYY-MM-DD。支持的范围是" 1000-01-01"到" 9999-12-31"。 |
DATETIME(fsp) |
它用于指定日期和时间组合。其格式为YYYY-MM-DD hh: mm: ss。支持的范围是" 1000-01-01 00:00:00"到9999-12-31 23:59:59"。 |
TIMESTAMP(fsp) |
它用于指定时间戳。它的值存储为自Unix纪元('1970-01-01 00:00:00'UTC)以来的秒数。其格式为YYYY-MM-DD hh: mm: ss。支持的范围是UTC的" 1970-01-01 00:00:01"到UTC的" 2038-01-09 03:14:07"。 |
TIME(fsp) |
它用于指定时间格式。其格式为hh: mm: ss。支持的范围是'-838: 59: 59'到'838: 59: 59' |
YEAR |
用于以四位数格式指定年份。值可以是1901年到2155年和0000年之间的四位数格式。 |
SQL Server数据类型
SQL Server字符串数据类型
数据类型 |
描述 |
char(n) |
是固定宽度的字符串数据类型。大小上限为8000个字符。 |
varchar(n) |
是可变宽度的字符串数据类型。它的最大长度为8000个字符。 |
varchar(max) |
是可变宽度的字符串数据类型。它的大小最多可以为1,073,741,824个字符。 |
text |
是可变宽度的字符串数据类型。它的大小最大为2GB的文本数据。 |
nchar |
它是固定宽度的Unicode字符串数据类型。它的最大长度为4000个字符。 |
nvarchar |
它是可变宽度的Unicode字符串数据类型。它的最大长度为4000个字符。 |
ntext |
它是可变宽度的Unicode字符串数据类型。它的大小最多可以是2GB的文本数据。 |
binary(n) |
是固定宽度的二进制字符串数据类型。它的大小最多可以为8000个字节。 |
varbinary |
是可变宽度的二进制字符串数据类型。它的大小最多可以为8000个字节。 |
image |
它也是可变宽度的二进制字符串数据类型。其大小最多可以为2GB。 |
SQL Server数字数据类型
类型 |
描述 |
bit |
它是一个整数,可以是0、1或null。 |
tinyint |
它允许从0到255的整数。 |
Smallint |
它允许-32,768到32,767之间的整数。 |
Int |
它允许整数在-2,147,483,648和2,147,483,647之间。 |
bigint |
它允许整数在-9,223,372,036,854,775,808和9,223,372,036,854,775,807之间。 |
float(n) |
用于指定从-1.79E + 308到1.79E + 308的浮点精度数字数据。 n参数指示该字段应保留4个字节还是8个字节。 n的默认值为53。 |
real |
它是从-3.40E + 38到3.40E + 38的浮点精度数字数据。 |
money |
用于指定-922,337,233,685,477.5中的货币数据808至922,337,203,685,477.5807。 |
SQL Server日期和时间数据类型
数据类型 |
描述 |
datetime |
它用于指定日期和时间组合。它支持从1753年1月1日到9999年12月31日的范围,精度为3.33毫秒。 |
datetime2 |
它用于指定日期和时间组合。它支持从0001年1月1日到9999年12月31日的范围,精度为100纳秒 |
DATE |
仅用于存储日期。它支持从0001年1月1日到9999年12月31日的范围 |
time |
它仅将时间存储到100纳秒的精度 |
timestamp |
在创建或修改新行时,它将存储一个唯一编号。时间戳值基于内部时钟,并不对应于实时。每个表只能包含一个时戳变量。 |
SQL Server其他数据类型
数据类型 |
描述 |
Sql_variant |
它用于除text,timestamp和ntext之外的各种数据类型。它最多可存储8000个字节的数据。 |
XML |
它存储XML格式的数据。最大2GB。 |
cursor |
它存储对用于数据库操作的游标的引用。 |
table |
它存储结果集以供以后处理。 |
uniqueidentifier |
它存储GUID(全局唯一标识符)。 |
Oracle数据类型
Oracle String数据类型
数据类型 |
描述 |
CHAR(Size) |
它用于存储预定义长度内的字符数据。最多可以存储2000个字节。 |
NCHAR(Size) |
它用于存储预定义长度内的国家字符数据。最多可以存储2000个字节。 |
VARCHAR2(Size) |
它用于存储预定义长度内的可变字符串数据。最多可以存储4000字节。 |
VARCHAR(SIZE) |
与VARCHAR2(size)相同。您也可以使用VARCHAR(size),但建议使用VARCHAR2(size) |
NVARCHAR2(size) |
它用于存储预定义长度内的Unicode字符串数据。我们必须指定NVARCHAR2数据类型的大小。它最多可以存储4000个字节。 |
Oracle数值数据类型
数据类型 |
描述 |
NUMBER(p,s) |
它包含精度p和小数位数s。精度p的范围可以是1到38,刻度s的范围可以是-84到127。 |
FLOAT(p) |
它是NUMBER数据类型的子类型。精度p的范围可以从1到126。 |
BINARY_FLOAT |
它用于二进制精度(32位)。它需要5个字节,包括长度字节。 |
BINARY_DOUBLE |
它用于双二进制精度(64位)。它需要9个字节,包括长度字节。 |
Oracle日期和时间数据类型
数据类型 |
描述 |
DATE |
它用于存储具有固定长度的有效日期时间格式。其范围从公元前4712年1月1日到公元9999年12月31日。 |
TIMESTAMP |
用于将有效日期以时间hh: mm: ss格式存储在YYYY-MM-DD中。 |
Oracle大对象数据类型(LOB类型)
数据类型 |
描述 |
BLOB |
它用于指定非结构化二进制数据。其范围最多为2 32 -1个字节或4 GB。 |
BFILE |
它用于将二进制数据存储在外部文件中。其范围最多为2 32 -1个字节或4 GB。 |
CLOB |
用于单字节字符数据。其范围最多为2 32 -1个字节或4 GB。 |
NCLOB |
它用于指定单字节或固定长度的多字节国家字符集(NCHAR)数据。其范围最大为2 32 -1个字节或4 GB。 |
RAW(size) |
它用于指定可变长度的原始二进制数据。它的范围是每行最多2000个字节。必须指定其最大大小。 |
LONG RAW |
它用于指定可变长度的原始二进制数据。每行的最大范围为2 31 -1字节或2 GB。 |