程序员社区

SQL教程 --- 2. SQL数据类型

SQL 数据类型定义了可以存储在表列中的值的类型。例如,如果我们希望一列只存储整数值,那么我们可以将其数据类型定义为int

SQL 数据类型

SQL 数据类型可以大致分为以下几类。

  1. 数字数据类型,例如 int、tinyint、bigint、float、real 等。
  2. 日期和时间数据类型,例如日期、时间、日期时间等。
  3. 字符和字符串数据类型,例如 char、varchar、text 等。
  4. Unicode 字符串数据类型,例如 nchar、nvarchar、ntext 等。
  5. 二进制数据类型,例如 binary、varbinary 等。
  6. 其他数据类型——clob、blob、xml、游标、表等。

file

SQL 数据类型要点

  • 并非每个关系数据库供应商都支持所有数据类型。例如,Oracle 数据库不支持 DATETIME,MySQL 不支持 CLOB 数据类型。因此,在设计数据库架构和编写 SQL 查询时,请务必检查数据类型是否受支持。
  • 此处列出的数据类型并未包括所有数据类型,这些是最常用的数据类型。某些关系数据库供应商有自己的数据类型,此处可能未列出。例如,Microsoft SQL Server 具有moneysmallmoney数据类型,但由于其他流行的数据库供应商不支持它,因此未在此处列出。
  • 每个关系数据库供应商对不同数据类型都有自己的最大大小限制,您无需记住该限制。想法是了解在特定场景中使用什么数据类型。

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 数据类型的快速综述。

赞(0) 打赏
未经允许不得转载:IDEA激活码 » SQL教程 --- 2. SQL数据类型

一个分享Java & Python知识的社区