SQL数据类型完全指南:掌握数据库设计中的核心数据类型

SQL数据类型概述

SQL数据类型定义了可以存储在表列中的值的类型。例如,如果你想要一个列只存储整数值,你可以将它的数据类型定义为INT。

SQL的数据类型可以大致分为以下几个类别:

  1. 数值数据类型,如:INT、TINYINT、BIGINT、FLOAT、REAL等。
  2. 日期和时间数据类型,如:DATE、TIME、DATETIME等。
  3. 字符和字符串数据类型,如:CHAR、VARCHAR、TEXT等。
  4. Unicode字符字符串数据类型,如:NCHAR、NVARCHAR、NTEXT等。
  5. 二进制数据类型,如:BINARY、VARBINARY等。
  6. 杂项数据类型 – 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数据类型
bannerAds