2021-09-19
分类:未分类
阅读(360)
SQL 数据类型定义了可以存储在表列中的值的类型。例如,如果我们希望一列只存储整数值,那么我们可以将其数据类型定义为int
。
SQL 数据类型
SQL 数据类型可以大致分为以下几类。
- 数字数据类型,例如 int、tinyint、bigint、float、real 等。
- 日期和时间数据类型,例如日期、时间、日期时间等。
- 字符和字符串数据类型,例如 char、varchar、text 等。
- Unicode 字符串数据类型,例如 nchar、nvarchar、ntext 等。
- 二进制数据类型,例如 binary、varbinary 等。
- 其他数据类型——clob、blob、xml、游标、表等。
SQL 数据类型要点
- 并非每个关系数据库供应商都支持所有数据类型。例如,Oracle 数据库不支持 DATETIME,MySQL 不支持 CLOB 数据类型。因此,在设计数据库架构和编写 SQL 查询时,请务必检查数据类型是否受支持。
- 此处列出的数据类型并未包括所有数据类型,这些是最常用的数据类型。某些关系数据库供应商有自己的数据类型,此处可能未列出。例如,Microsoft SQL Server 具有
money
和smallmoney
数据类型,但由于其他流行的数据库供应商不支持它,因此未在此处列出。
- 每个关系数据库供应商对不同数据类型都有自己的最大大小限制,您无需记住该限制。想法是了解在特定场景中使用什么数据类型。
SQL 数字数据类型
Datatype |
From |
To |
bit |
0 |
1 |
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 日期和时间数据类型
数据类型 |
描述 |
DATE |
以 YYYY-MM-DD 格式存储日期 |
TIME |
以 HH:MI:SS 格式存储时间 |
DATETIME |
以 YYYY-MM-DD HH:MI:SS 格式存储日期和时间信息 |
TIMESTAMP |
存储自 Unix 纪元以来经过的秒数 ('1970-01-01 00:00:00' UTC) |
YEAR |
以 2 位或 4 位格式存储年份。范围为 1901 到 2155,采用 4 位格式。范围 70 到 69,代表 1970 到 2069。 |
SQL 字符串数据类型
数据类型 |
描述 |
CHAR |
固定长度,最大长度为 8,000 个字符 |
VARCHAR |
可变长度存储,最大长度为 8,000 个字符 |
VARCHAR(max) |
提供最大字符数的可变长度存储,MySQL 不支持 |
TEXT |
最大容量为 2GB 数据的可变长度存储 |
请注意,以上所有数据类型都是针对字符流的,不应与 Unicode 数据一起使用。
SQL Unicode 字符和字符串数据类型
数据类型 |
描述 |
NCHAR |
固定长度,最大长度为 4,000 个字符 |
NVARCHAR |
可变长度存储,最大长度为 4,000 个字符 |
NVARCHAR(最大) |
提供最大字符数的可变长度存储 |
NTEXT |
最大容量为 1GB 数据的可变长度存储 |
请注意,MySQL 数据库不支持上述数据类型。
SQL 二进制数据类型
数据类型 |
描述 |
BINARY |
固定长度,最大长度为 8,000 字节 |
VARBINARY |
可变长度存储,最大长度为 8,000 字节 |
VARBINARY(最大) |
提供最大字节数的可变长度存储 |
IMAGE |
可变长度存储,最大大小为 2GB 二进制数据 |
SQL 杂项数据类型
数据类型 |
描述 |
CLOB |
最多可容纳 2GB 的字符大对象 |
BLOB |
对于二进制大对象 |
XML |
用于存储 XML 数据 |
JSON |
用于存储 JSON 数据 |
以上就是对 SQL 数据类型的快速综述。