数据类型被用来表示可以存储在数据库表中的数据的性质。例如,在一个表中的特定列,如果我们要存储数据的串类型,那么我们将不得不宣布该列的字符串数据类型。
数据类型主要分为三类,每数据库。
数据类型在MySQL,SQL Server和Oracle数据库
MySQL数据类型
在MySQL数据库中使用的数据类型的列表。这是基于MySQL的8.0。
MySQL的字符串数据类型
CHAR(Size) | 它用于指定包含数字、字母和特殊字符的固定长度字符串。它的大小可以是0到255个字符。默认值为1。 |
VARCHAR(size) | 它用于指定可包含数字、字母和特殊字符的可变长度字符串。它的大小可以是0到65535个字符。 |
BINARY(Size) | 它等于CHAR(),但存储二进制字节字符串。其尺寸参数指定的字节列的长度。默认值为1。 |
VARBINARY(Size) | 它等于VARCHAR(),但存储二进制字节字符串。它的size参数指定以字节为单位的最大列长度。 |
Character(SIZE) | 它包含一个最大长度为255个字符的字符串。 |
TINYTEXT | 它拥有255个字符的最大长度的字符串。 |
MEDIUMTEXT | 它包含一个最大长度为16,777,215的字符串。 |
LONGTEXT | 它包含一个最大长度为4,294,967,295个字符的字符串。 |
ENUM(val1,val2,val3,…
) | 当仅具有一个值,从可能值的列表中选择的一个字符串对象时使用。它包含在ENUM列表65535个价值观。如果插入的值是不在列表中,空值将被插入。 |
SET( val1,val2,val3,…
.) | 它用于指定一个可以有0个或多个值的字符串,这些值是从可能的值列表中选择的。您可以在一个集合列表中一次列出最多64个值。 |
BLOB(size) | 它用于blob(二进制大对象)。它最多可以容纳65,535个字节。 |
MySQL的数值数据类型
BIT(Size) | 它用于位值类型。每个值的位数以大小指定。它的大小可以是1到64。默认值是1。 |
INT(SIZE) | 它用于整数值。其有符号范围从-2147483648到2147483647不等,无符号范围从0到4294967295不等。size参数指定最大显示宽度255。 |
INTEGER(size) | 它等于INT(大小)。 |
FLOAT(size,d) | 它用于指定浮点数。其大小参数指定数字的总数。小数点后的位数由d参数指定。 |
FLOAT(P) | 它用于指定浮点数。MySQL使用p参数来决定是使用FLOAT还是DOUBLE。如果p在0到24之间,则数据类型为FLOAT()。如果p是从25到53,则数据类型变为DOUBLE()。 |
DOUBLE(size,d) | 这是一个正常大小的浮点数。它的大小参数指定的数字的总数。的数字的小数点后的数量由d参数指定。 |
DECIMAL(size,d) | 它用于指定一个定点编号。其大小参数指定数字的总数。十进制参数后的位数由d参数指定。大小的最大值是65,默认值是10。d的最大值是30,默认值是0。 |
DEC(Size,d) | 它等于小数(大小,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。其支持的范围为“1970-01-01 00:00:01” UTC为“2038年1月9日3点14分07秒” UTC。 |
TIME(fsp) | 它用于指定时间格式。它的格式是hh:mm:ss。它的支持范围从’
-838:59:59’
到’
838:59:59′
|
Year | 它用于以四位数格式指定年份。允许在1901到2155和0000之间的四位数字格式的值。 |
SQL Server数据类型
SQL服务器字符串数据类型
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) | It is a fixed width Binary string data type. Its size can be up to 8000 bytes. |
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.5808到922,337,203,685,477.5807的货币数据。 |
SQL Server的日期和时间数据类型
datetime | 它用于指定日期和时间组合。它支持从1753年1月1日到9999年12月31日的范围,精度为3.33毫秒。 |
DATETIME2 | 它用于指定日期和时间组合。它支持从1月1日到12月31日的范围,精度为100纳秒 |
date | 它是用来只存储日期。它支持范围从0001年1月至9999年12月31日, |
time | 它只存储精度为100纳秒的时间 |
timestamp | 当创建或修改新行时,它存储惟一的编号。时间戳值基于内部时钟,并不对应于实时。每个表可能只包含一次性的stamp变量。 |
SQL Server中的其他数据类型
Sql_variant | 它用于除文本、时间戳和ntext之外的各种数据类型。它最多存储8000字节的数据。 |
XML | 它存储XML格式的数据。最大的2 gb。 |
cursor | 它存储到用于数据库操作的指针的引用。 |
table | 它存储结果集以供以后处理。 |
UID | 它存储GUID(全局惟一标识符)。 |
Oracle数据类型
甲骨文字符串数据类型
CHAR(size) | 它用于在预定义的长度内存储字符数据。它最多可以存储2000字节。 |
NCHAR(大小) | 它用于在预定义的长度内存储国民字符数据。它最多可以存储2000字节。 |
VARCHAR2(size) | 它是用来在预定长度内的可变字符串数据存储。它可以存储多达4000个字节。 |
VARCHAR(SIZE) | 它与VARCHAR2(大小)相同。您也可以使用VARCHAR(size),但是建议使用VARCHAR2(size) |
NVARCHAR2(大小) | 它用于在预定义长度内存储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 | 用于以YYYY-MM-DD格式存储有效日期,时间hh:mm:ss格式。 |
【SQL数据类型】甲骨文大对象数据类型(LOB类型)
BLOB | 它用于指定非结构化的二进制数据。其范围可达232-1字节或4 GB。 |
BFILE | 它用于将二进制数据存储在外部文件中。其范围可达232-1字节或4 GB。 |
CLOB | 它用于单字节字符数据。它的范围上升到232-1字节或4 GB。 |
NCLOB | 它用于指定单字节或定长多字节国家字符集(NCHAR)数据。其范围高达232-1字节或4 GB。 |
RAW(大小) | 它用于指定可变长度的原始二进制数据。它的范围是每行2000字节。必须指定其最大大小。 |
LONG RAW | 它是用来指定可变长度原始二进制数据。它的射程可达231-1字节或2 GB,每行。 |
推荐阅读