最适合网络开发者的网站

SQL 教程

SQL主页 SQL 简介 SQL 语法 SQL 选择 SQL 选择不同 SQL 语句 SQL 排序依据 SQL 和 SQL 或 SQL不是 SQL 插入 SQL 空值 SQL 更新 SQL 删除 SQL 选择顶部 SQL 最小值和最大值 SQL 计数 SQL 汇总 SQL 平均值 SQL 类似 SQL 通配符 SQL 输入 SQL 之间 SQL 别名 SQL 连接 SQL 内连接 SQL左连接 SQL右连接 SQL全连接 SQL自连接 SQL联盟 SQL 分组依据 SQL 具有 SQL 存在 SQL 任何、全部 SQL 选择 SQL 插入选择 SQL 案例 SQL 空函数 SQL 存储过程 SQL 注释 SQL 运算符

SQL 数据库

SQL创建数据库 SQL删除数据库 SQL 备份数据库 SQL创建表 SQL删除表 SQL 修改表 SQL 约束 SQL 非空 SQL唯一标识符 SQL 主键 SQL 外键 SQL 检查 SQL 默认值 SQL 索引 SQL 自动增量 SQL 日期 SQL 视图 SQL 注入 SQL 托管 SQL 数据类型

SQL 参考

SQL 关键字 MySQL 函数 SQL Server 函数 MS Access 函数 SQL 快速参考

SQL 例子

SQL 示例 SQL 编辑器 SQL 测验 SQL 练习 SQL训练营 SQL 证书

SQL。初学者课程

尿素

SQL MySQL、SQL Server 和 MS Access 的数据类型


数据类型 列定义了该列可以保存什么值:整数、字符、货币、日期和时间、二进制等等。


SQL 数据类型

数据库表中的每一列都需要有一个名称和数据类型。

SQL 开发人员在创建表时必须决定每列中存储的数据类型。数据类型是 SQL 了解每列中应存储什么类型的数据的指南,它还确定了 SQL 将如何与存储的数据进行交互。

笔记: 数据类型在不同的数据库中可能有不同的名称。即使名称相同,大小和其他细节也可能不同!请务必检查文档!


MySQL 数据类型(版本 8.0)

MySQL 中有三种主要数据类型:字符串,数字以及日期和时间。

字符串数据类型

数据类型 描述
CHAR(大小) 固定长度的字符串(可以包含字母、数字和特殊字符)。 尺寸 参数指定列长度(以字符为单位)——可以是 0 到 255。默认值为 1
VARCHAR(大小) 可变长度的字符串(可以包含字母、数字和特殊字符)。 尺寸 参数指定字符串的最大长度(以字符为单位)——范围是 0 到 65535
BINARY(大小) 相当于 CHAR(),但存储的是二进制字节字符串。 尺寸 参数指定列长度(以字节为单位)。默认值为 1
VARBINARY(大小) 相当于 VARCHAR(),但存储二进制字节字符串。 尺寸 参数指定最大列长度(以字节为单位)。
微小的斑点 适用于 BLOB(二进制大对象)。最大长度:255 字节
微小文本 保存最大长度为 255 个字符的字符串
字体大小) 保存最大长度为 65,535 字节的字符串
BLOB(大小) 适用于 BLOB(二进制大对象)。最多可容纳 65,535 字节数据
媒体文本 保存最大长度为 16,777,215 个字符的字符串
中等斑点 适用于 BLOB(二进制大对象)。最多可容纳 16,777,215 字节数据
长文 保存最大长度为 4,294,967,295 个字符的字符串
长斑点 适用于 BLOB(二进制大对象)。最多可容纳 4,294,967,295 字节数据
枚举(val1,val2,val3,...) 一个字符串对象,只能有一个值,从可能值列表中选择。您可以在 ENUM 列表中列出最多 65535 个值。如果插入的值不在列表中,则会插入一个空白值。值按您输入的顺序排序
设置(值1,值2,值3,...) 一个字符串对象,可以有 0 个或多个值,从可能值列表中选择。您可以在 SET 列表中列出最多 64 个值

数字数据类型

数据类型 描述
少量(尺寸) 位值类型。每个值的位数在 尺寸。 这 尺寸 参数可以保存从 1 到 64 的值。默认值为尺寸 为 1。
TINYINT(尺寸) 非常小的整数。有符号范围是 -128 到 127。无符号范围是 0 到 255。 尺寸 参数指定最大显示宽度(为 255)
布尔值 零被视为假,非零值被视为真。
布尔值 等于 BOOL
SMALLINT(尺寸) 一个小整数。有符号范围是 -32768 到 32767。无符号范围是 0 到 65535。 尺寸 参数指定最大显示宽度(为 255)
中号薄荷(尺寸) 中等整数。有符号范围为 -8388608 至 8388607。无符号范围为 0 至 16777215。 尺寸 参数指定最大显示宽度(为 255)
INT(尺寸) 中等整数。有符号范围为 -2147483648 至 2147483647。无符号范围为 0 至 4294967295。 尺寸 参数指定最大显示宽度(为 255)
整数(尺寸) 等于 INT(size)
BIGINT(尺寸) 大整数。有符号范围为 -9223372036854775808 至 9223372036854775807。无符号范围为 0 至 18446744073709551615。 尺寸 参数指定最大显示宽度(为 255)
漂浮(尺寸, d) 浮点数。数字总数在 尺寸。小数点后的位数在 d 参数。此语法在 MySQL 8.0.17 中已弃用,并将在未来的 MySQL 版本中删除
漂浮() 浮点数。MySQL 使用 值来确定是否使用 FLOAT 或 DOUBLE 作为结果数据类型。如果 介于 0 至 24 之间,数据类型变为 FLOAT()。如果 从 25 到 53,数据类型变为 DOUBLE()
双倍的(尺寸, d) 正常大小的浮点数。数字总数在 尺寸。小数点后的位数在 d 范围
双精度(尺寸, d)  
十进制(尺寸, d) 精确的定点数。数字总数在 尺寸。小数点后的位数在 d 参数。尺寸 为 65。d 为 30。默认值为尺寸 为 10。默认值为d 为 0。
十二月(尺寸, d) 等于 DECIMAL(size,d)

笔记: 所有数字数据类型可能都有一个额外的选项:UNSIGNED 或 ZEROFILL。如果添加 UNSIGNED 选项,MySQL 不允许列使用负值。如果添加 ZEROFILL 选项,MySQL 还会自动将 UNSIGNED 属性添加到列中。

日期和时间数据类型

数据类型 描述
日期 日期。格式:YYYY-MM-DD。支持的范围是从“1000-01-01”到“9999-12-31”
约会时间(纤维蛋白原) 日期和时间组合。格式:YYYY-MM-DD hh:mm:ss。支持的范围是从“1000-01-01 00:00:00”到“9999-12-31 23:59:59”。在列定义中添加 DEFAULT 和 ON UPDATE 可自动初始化并更新为当前日期和时间
时间戳(纤维蛋白原) 时间戳。TIMESTAMP 值存储为自 Unix 纪元 ('1970-01-01 00:00:00' UTC) 以来的秒数。格式:YYYY-MM-DD hh:mm:ss。支持的范围是从 '1970-01-01 00:00:01' UTC 到 '2038-01-09 03:14:07' UTC。可以使用列定义中的 DEFAULT CURRENT_TIMESTAMP 和 ON UPDATE CURRENT_TIMESTAMP 指定自动初始化和更新到当前日期和时间
时间(纤维蛋白原) 时间。格式:hh:mm:ss。支持的范围是从“-838:59:59”到“838:59:59”
四位数字格式的年份。四位数字格式允许的值:1901 至 2155,以及 0000。
MySQL 8.0 不支持两位数格式的年份。

SQL Server 数据类型

字符串数据类型

数据类型 描述 最大尺寸 贮存
字符(n) 固定宽度字符串 8,000 个字符 定义宽度
varchar(n) 可变宽度字符串 8,000 个字符 2 个字节 + 字符数
varchar(最大) 可变宽度字符串 1,073,741,824 个字符 2 个字节 + 字符数
文本 可变宽度字符串 2GB 文本数据 4 个字节 + 字符数
纳查尔 固定宽度 Unicode 字符串 4,000 个字符 定义宽度 x 2
字符型 可变宽度 Unicode 字符串 4,000 个字符  
nvarchar(最大) 可变宽度 Unicode 字符串 536,870,912 个字符  
ntext 可变宽度 Unicode 字符串 2GB 文本数据  
二进制(n) 固定宽度二进制字符串 8,000 字节  
二进制 可变宽度二进制字符串 8,000 字节  
varbinary(最大) 可变宽度二进制字符串 2GB  
图像 可变宽度二进制字符串 2GB  

数字数据类型

数据类型 描述 贮存
少量 整数,可以为 0、1 或 NULL  
tinyint 允许 0 至 255 之间的整数 1 字节
smallint 允许 -32,768 至 32,767 之间的整数 2 个字节
整数 允许 -2,147,483,648 和 2,147,483,647 之间的整数 4字节
大整型 允许 -9,223,372,036,854,775,808 和 9,223,372,036,854,775,807 之间的整数 8 个字节
小数(p,s) 固定精度和小数位数。

允许从 -10^38 +1 到 10^38 –1 的数字。

p 参数表示可以存储的最大总位数(小数点左边和右边的位数)。p 必须是 1 到 38 之间的值。默认值为 18。

s 参数表示小数点右侧存储的最大位数。s 必须是 0 到 p 之间的值。默认值为 0

5-17 字节
数字(p,s) 固定精度和小数位数。

允许从 -10^38 +1 到 10^38 –1 的数字。

p 参数表示可以存储的最大总位数(小数点左边和右边的位数)。p 必须是 1 到 38 之间的值。默认值为 18。

s 参数表示小数点右侧存储的最大位数。s 必须是 0 到 p 之间的值。默认值为 0

5-17 字节
小钱 货币数据从 -214,748.3648 到 214,748.3647 4字节
货币数据从 -922,337,203,685,477.5808 到 922,337,203,685,477.5807 8 个字节
浮点数(n) 浮点精度数字数据从 -1.79E + 308 到 1.79E + 308。

n 参数表示字段应包含 4 个字节还是 8 个字节。float(24) 包含 4 个字节字段,float(53) 包含 8 个字节字段。n 的默认值为 53。

4 或 8 个字节
真实的 浮点精度数字数据从 -3.40E + 38 到 3.40E + 38 4字节

日期和时间数据类型

数据类型 描述 贮存
约会时间 从 1753 年 1 月 1 日到 9999 年 12 月 31 日,精度为 3.33 毫秒 8 个字节
datetime2 从 0001 年 1 月 1 日到 9999 年 12 月 31 日,精度为 100 纳秒 6-8字节
小日期时间 从 1900 年 1 月 1 日到 2079 年 6 月 6 日,精度为 1 分钟 4字节
日期 仅存储日期。从 0001 年 1 月 1 日到 9999 年 12 月 31 日 3 个字节
时间 仅存储精确到 100 纳秒的时间 3-5字节
日期时间偏移 与 datetime2 相同,但增加了时区偏移量 8-10字节
时间戳 存储一个唯一编号,该编号在每次创建或修改行时都会更新。时间戳值基于内部时钟,与实际时间不符。每个表只能有一个时间戳变量  

其他数据类型

数据类型 描述
sql_variant 存储最多 8,000 字节的各种数据类型的数据(text、ntext 和 timestamp 除外)
唯一标识符 存储全局唯一标识符 (GUID)
xml 存储 XML 格式的数据。最大 2GB
光标 存储对用于数据库操作的游标的引用
桌子 存储结果集以供稍后处理

MS Access 数据类型

数据类型 描述 贮存
文本 用于文本或文本和数字的组合。最多 255 个字符  
备忘录 备忘录用于存储大量文本。最多可存储 65,536 个字符。 笔记: 您无法对备忘录字段进行排序。但是,它们可以进行搜索  
字节 允许 0 至 255 之间的整数 1 字节
整数 允许 -32,768 至 32,767 之间的整数 2 个字节
长的 允许 -2,147,483,648 和 2,147,483,647 之间的整数 4字节
单身的 单精度浮点。可处理大多数小数 4字节
双倍的 双精度浮点。可处理大多数小数 8 个字节
货币 用于货币。最多可保存 15 位整数美元,外加 4 位小数。 提示: 您可以选择使用哪个国家的货币 8 个字节
自动编号 自动编号字段会自动为每条记录分配自己的编号,通常从 1 开始 4字节
约会时间 用于日期和时间 8 个字节
是/否 逻辑字段可以显示为是/否、真/假或开/关。在代码中,使用常量 True 和 False(相当于 -1 和 0)。 笔记: 是/否字段不允许为空值 1 位
Ole 对象 可以存储图片、音频、视频或其他 BLOB(二进制大对象) 最高 1GB
超级链接 包含指向其他文件(包括网页)的链接  
查找向导 让您键入选项列表,然后可以从下拉列表中选择 4字节