SQL 数据类型
开头
SQL数据类型定义了可以存储在表列中的值的类型。例如,如果你想要一个列只存储整数值,你可以将它的数据类型定义为INT。
SQL的数据类型可以大致分为以下几个类别。
-
- 数值数据类型,如:INT、TINYINT、BIGINT、FLOAT、REAL等。
-
- 日期和时间数据类型,如:DATE、TIME、DATETIME等。
-
- 字符和字符串数据类型,如:CHAR、VARCHAR、TEXT等。
-
- Unicode字符字符串数据类型,如:NCHAR、NVARCHAR、NTEXT等。
-
- 二进制数据类型,如:BINARY、VARBINARY等。
- 杂项数据类型 – CLOB,BLOB,XML,CURSOR,TABLE等。
在这篇文章中,您将了解不同类别的SQL数据类型。
关系数据库供应商之间的差异
Note
注意:并非每个关系型数据库供应商都支持所有数据类型。
例如,Oracle数据库不支持DATETIME类型,而MySQL不支持CLOB类型。在设计数据库架构和编写SQL查询时,请确保检查数据类型是否被支持。
Note
注意:这里列出的数据类型并不包括全部的数据类型。这些是最常用的数据类型。一些关系型数据库供应商可能有自己的数据类型,可能未在此处列出。
例如,Microsoft SQL Server具有MONEY和SMALLMONEY数据类型,但由于它们不受其他流行数据库供应商支持,它们不在此列出。
Note
注意:每个关系型数据库供应商都对不同的数据类型有其自己的最大大小限制。
确保为您的特定场景选择适当的数据类型。
SQL 数据类型 – 数值类型
Data Type | From | To |
---|---|---|
BIT | 1 | 0 |
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 |
DECIMAL | -10^38 + 1 | 10^38 – 1 |
NUMERIC | -10^38 + 1 | 10^38 – 1 |
FLOAT | -1.79E+308 | 1.79E+308 |
REAL | -3.40E+38 | 3.40E+38 |
SQL日期和时间数据类型
Data Type | Description |
---|---|
DATE | Stores date in the format YYYY-MM-DD |
TIME | Stores time in the format HH:MI:SS |
DATETIME | Stores date and time information in the format YYYY-MM-DD HH:MI:SS |
TIMESTAMP | Stores number of seconds passed since the Unix epoch ('1970-01-01 00:00:00' UTC ) |
YEAR | Stores year in a 2-digit or 4-digit format. Range 1901 to 2155 in 4-digit format. Range 70 to 69, representing 1970 to 2069. |
SQL字符和字符串数据类型
Data Type | Description |
---|---|
CHAR | Fixed length with a maximum length of 8,000 characters |
VARCHAR | Variable-length storage with a maximum length of 8,000 characters |
VARCHAR(max) | Variable-length storage with provided max characters, not supported in MySQL |
TEXT | Variable-length storage with a maximum size of 2GB data |
Note
注意:这些数据类型适用于字符流,不应与Unicode数据一起使用。
SQL的Unicode字符和字符串数据类型
Data Type | Description |
---|---|
NCHAR | Fixed length with a maximum length of 4,000 characters |
NVARCHAR | Variable-length storage with a maximum length of 4,000 characters |
NVARCHAR(max) | Variable-length storage with provided max characters |
NTEXT | Variable-length storage with a maximum size of 1GB data |
Note
注意:MySQL数据库不支持这些数据类型。
SQL的二进制数据类型
Data Type | Description |
---|---|
BINARY | Fixed length with a maximum length of 8,000 bytes |
VARBINARY | Variable-length storage with a maximum length of 8,000 bytes |
VARBINARY(max) | Variable-length storage with provided max bytes |
IMAGE | Variable-length storage with a maximum size of 2 GB binary data |
SQL 杂项数据类型
Data Type | Description |
---|---|
CLOB | Character large objects that can hold up to 2 GB |
BLOB | For large binary objects |
XML | For storing XML data |
JSON | For storing JSON data |
结论
在这篇文章中,你了解了不同类别的SQL数据类型。
继续学习更多的SQL教程。
参考文献
- Oracle Database Dataypes
- MySQL Data Types