SQL数据类型完全指南:掌握数据库设计中的核心数据类型
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数据类型。
关系数据库供应商之间的差异
注意
并非每个关系型数据库供应商都支持所有数据类型。
例如,Oracle数据库不支持DATETIME类型,而MySQL不支持CLOB类型。在设计数据库架构和编写SQL查询时,请确保检查数据类型是否被支持。
注意
这里列出的数据类型并不包括全部的数据类型。这些是最常用的数据类型。一些关系型数据库供应商可能有自己的数据类型,可能未在此处列出。
例如,Microsoft SQL Server具有MONEY和SMALLMONEY数据类型,但由于它们不受其他流行数据库供应商支持,它们不在此列出。
注意
每个关系型数据库供应商都对不同的数据类型有其自己的最大大小限制。
确保为您的特定场景选择适当的数据类型。
SQL 数据类型 – 数值类型
数据类型 | 最小值 | 最大值 |
---|---|---|
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位格式存储年份。4位格式范围为1901至2155。2位格式范围为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(max) | 可变长度存储,具有指定的最大字符数 |
NTEXT | 可变长度存储,最大大小为1GB数据 |
注意
MySQL数据库不支持这些数据类型。
SQL的二进制数据类型
数据类型 | 描述 |
---|---|
BINARY | 固定长度,最大长度为8,000字节 |
VARBINARY | 可变长度存储,最大长度为8,000字节 |
VARBINARY(max) | 可变长度存储,具有指定的最大字节数 |
IMAGE | 可变长度存储,最大大小为2 GB二进制数据 |
SQL 杂项数据类型
数据类型 | 描述 |
---|---|
CLOB | 字符大对象,最多可容纳2 GB数据 |
BLOB | 用于大型二进制对象 |
XML | 用于存储XML数据 |
JSON | 用于存储JSON数据 |
结论
在这篇文章中,你了解了不同类别的SQL数据类型。
继续学习更多的SQL教程。
参考文献
- Oracle数据库数据类型
- MySQL数据类型