跳到主要内容

SQL数据类型

提示

1.数据类型概述:SQL 中每个表列都有数据类型限制,如 INTEGERTEXTREAL 等,用于限制该列可以存储的数据类型。

2.创建表时指定数据类型:在创建表时,使用 CREATE TABLE 语句为每个列指定数据类型,例如 CREATE TABLE Employees (id INTEGER, name TEXT);

3.不同数据库系统的数据类型差异:不同的数据库系统支持的数据类型可能不同,例如 SQL Server、MySQL、PostgreSQL 和 Oracle 支持不同的数值、字符串和日期时间数据类型。

在 SQL 中,每个表的列都有一个数据类型。这限制了可以存储在该列中的数据类型。

示例

  id INTEGER PRIMARY KEY,
name TEXT,
age INTEGER,
salary REAL
);

在上面的示例中,我们创建了一个名为 Employees 的表,它包含四个列:idnameagesalaryidage 列使用 INTEGER 数据类型,name 列使用 TEXTsalary 列使用 REAL

SQL 数据类型语法

SQL 数据类型的语法是:

CREATE TABLE table_name (
column1_name datatype1,
column2_name datatype2,
column3_name datatype3,
...
);

这里,

  • column1_namecolumn2_namecolumn3_name... 是列的名称
  • datatype1datatype2datatype3... 是要存储在相应列中的数据类型,如 INTEGERTEXT

注意: 不同数据库系统支持的数据类型可能会有所不同,这意味着并非所有系统都支持相同的数据类型。

SQL Server 数据类型

SQL Server 支持的数据类型包括,

数值数据类型

数据类型描述
BIT可以存储单个位(01)或 NULL
TINYINT可以存储从 0255 的数字
SMALLINT可以存储从 -32,76832,767 的数字
INT可以存储从 -2,147,483,6482,147,483,647 的数字
BIGINT可以存储从 -9,223,372,036,854,775,8089,223,372,036,854,775,807 的数字

字符串数据类型

数据类型描述
CHAR(x)可以存储固定长度的字符(最多 8000 个字符)
VARCHAR(x)可以存储给定长度的字符(最多 8000 个字符)
TEXT可以存储最多 2 GB 大小的字符
IMAGE可以存储最多 2 GB 大小的二进制字符串

日期和时间数据类型

数据类型描述
DATETIME可以存储从 1753年1月1日9999年12月31日 的日期和时间
DATETIME2可以存储从 0001年1月1日9999年12月31日 的日期和时间
DATE只能存储从 0001年1月1日9999年12月31日 的日期
TIME只能存储时间

注意: SQL Server 支持许多其他数据类型。要了解更多,请访问 SQL Server 文档

MySQL 数据类型

MySQL 支持的数据类型有,

数值数据类型

数据类型描述
BIT(x)可以存储 x 位 值。x 可以从 164
TINYINT可以存储从 -128127 的数字
SMALLINT可以存储从 -3276832767 的数字
MEDIUMINT可以存储从 -8,388,6088,388,607 的数字
INT可以存储从 -2,147,483,6482,147,483,647 的数字
BIGINT可以存储从 -9,223,372,036,854,775,8089,223,372,036,854,775,807 的数字
DECIMAL(x, y)可以存储总共 x 位数(最多 65 位)的十进制数,其中小数点后的 y 位数(最多 30 位)

字符串数据类型

数据类型描述
CHAR(x)可以存储固定长度的字符(最多 8000 个字符)
VARCHAR(x)可以存储给定长度的字符(最多 8000 个字符)
BINARY(x)可以存储固定长度的二进制字符串
VARBINARY(x)可以存储给定长度的二进制字符串
TINYTEXT可以存储多达 255 个字符
TEXT(x)可以存储多达给定限制的字符(最多 65,535 字节)
MEDIUMTEXT可以存储多达 16,777,215 个字符
LONGTEXT可以存储多达 4,294,967,295 个字符
BLOB(x)可以存储多达 65,535 字节的二进制大型对象
MEDIUMBLOB可以存储多达 16,777,215 字节的二进制大型对象
LONGBLOB可以存储多达 4,294,967,295 字节的二进制大型对象

日期和时间数据类型

数据类型描述
DATE可以存储格式为 YYYY-MM-DD 的日期,范围从 1000-01-019999-12-31
DATETIME可以存储格式为 YYYY-MM-DD hh:mm:ss 的日期和时间
TIME仅能存储格式为 hh:mm:ss 的时间,范围从 -838:59:59838:59:59
YEAR可以存储4位数字格式的年份,范围从 19012155
TIMESTAMP可以存储从当前时区到 UTC 的时间戳

注意: MySQL 支持更多数据类型。要了解更多,请访问 MySQL 文档

PostgreSQL 数据类型

PostgreSQL 支持的数据类型有,

数值数据类型

数据类型描述
SMALLINT可存储从 -32,76832,767 的数字
INTEGER可存储从 -2,147,483,6482,147,483,647 的数字
BIGINT可存储从 -9,223,372,036,854,775,8089,223,372,036,854,775,807 的数字
DECIMAL可存储小数点前最多 131072 位数字;小数点后最多 16383 位数字
SMALLSERIAL可存储从 132767 的小型自增数字
SERIAL可存储从 12147483647 的自增数字
BIGSERIAL可存储从 19223372036854775807 的大型自增数字

字符串数据类型

数据类型描述
CHAR(x)可存储固定长度的字符
VARCHAR(x)可存储给定长度的字符
TEXT可存储无限制长度的字符

日期和时间数据类型

数据类型描述
TIMESTAMP可存储日期和时间
DATE只能存储日期
TIME只能存储时间

注意: PostgreSQL 支持更多数据类型。要了解更多,请访问 PostgreSQL 文档

Oracle 数据类型

Oracle 支持的数据类型包括,

数值数据类型

数据类型描述
NUMBER可存储数字

字符串数据类型

数据类型描述
CHAR(x)可存储固定长度的字符,最多 2000 字节或字符
VARCHAR(x)可存储给定长度的字符,最大为 4000 字节或字符
LONG可存储最多 2 GB 的字符

日期和时间数据类型

数据类型描述
TIMESTAMP可存储日期和时间
DATE只能存储从 公元前4712年1月1日公元后9999年12月31日 的日期
TIME只能存储时间

注意: Oracle 支持更多数据类型。要了解更多,请访问 Oracle 文档