Menu
×
   ❮     
HTML CSS JAVASCRIPT SQL PYTHON JAVA PHP HOW TO W3.CSS C C++ C# BOOTSTRAP REACT MYSQL JQUERY EXCEL XML DJANGO NUMPY PANDAS NODEJS R TYPESCRIPT ANGULAR GIT POSTGRESQL MONGODB ASP AI GO KOTLIN SASS VUE DSA GEN AI SCIPY AWS CYBERSECURITY DATA SCIENCE
     ❯   

SQL 教程

SQL 主页 SQL 简介 SQL 语法 SQL Select SQL Select Distinct SQL Where SQL Order By SQL And SQL Or SQL Not SQL Insert Into SQL Null Values SQL Update SQL Delete SQL Select Top SQL 聚合函数 SQL Min 和 Max SQL Count SQL Sum SQL Avg SQL Like SQL 通配符 SQL In SQL Between SQL 别名 SQL Joins SQL Inner Join SQL Left Join SQL Right Join SQL Full Join SQL Self Join SQL Union SQL Group By SQL Having SQL Exists SQL Any, All SQL Select Into SQL Insert Into Select SQL Case SQL Null 函数 SQL 存储过程 SQL 注释 SQL 运算符

SQL 数据库

SQL 创建数据库 SQL 删除数据库 SQL 备份数据库 SQL 创建表 SQL 删除表 SQL 修改表 SQL 约束 SQL Not Null SQL Unique SQL 主键 SQL 外键 SQL Check SQL 默认值 SQL 索引 SQL 自动递增 SQL 日期 SQL 视图 SQL 注入 SQL 托管 SQL 数据类型

SQL 参考

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

SQL 示例

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

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


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


SQL 数据类型

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

在创建表时,SQL 开发人员必须决定将在每一列中存储什么样的数据。数据类型是 SQL 理解每一列中预期数据的类型以及 SQL 将如何与存储的数据交互的指南。

注意: 数据类型在不同的数据库中可能具有不同的名称。即使名称相同,大小和其他细节也可能不同!始终查看文档!


MySQL 数据类型 (版本 8.0)

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

字符串数据类型

数据类型 描述
CHAR(size) 固定长度字符串(可以包含字母、数字和特殊字符)。size 参数指定列的字符长度 - 可以从 0 到 255。默认值为 1
VARCHAR(size) 可变长度字符串(可以包含字母、数字和特殊字符)。size 参数指定字符的最大字符串长度 - 可以从 0 到 65535
BINARY(size) 等于 CHAR(),但存储二进制字节字符串。size 参数指定列的字节长度。默认值为 1
VARBINARY(size) 等于 VARCHAR(),但存储二进制字节字符串。size 参数指定列的最大字节长度。
TINYBLOB 用于 BLOB(二进制大型对象)。最大长度:255 字节
TINYTEXT 保存最大长度为 255 个字符的字符串
TEXT(size) 保存最大长度为 65,535 个字节的字符串
BLOB(size) 用于 BLOB(二进制大型对象)。保存多达 65,535 个字节的数据
MEDIUMTEXT 保存最大长度为 16,777,215 个字符的字符串
MEDIUMBLOB 用于 BLOB(二进制大型对象)。保存多达 16,777,215 个字节的数据
LONGTEXT 保存最大长度为 4,294,967,295 个字符的字符串
LONGBLOB 用于 BLOB(二进制大型对象)。保存多达 4,294,967,295 个字节的数据
ENUM(val1, val2, val3, ...) 一个字符串对象,只能有一个值,从可能的列表中选择一个值。您可以在 ENUM 列表中列出最多 65535 个值。如果插入的值不在列表中,则将插入一个空值。这些值按您输入它们的顺序排序
SET(val1, val2, val3, ...) 一个字符串对象,可以有 0 个或多个值,从可能的列表中选择一个值。您可以在 SET 列表中列出最多 64 个值

数值数据类型

数据类型 描述
BIT(size) 一个位值类型。每个值的位数在 size 中指定。size 参数可以保存从 1 到 64 的值。size 的默认值为 1。
TINYINT(size) 一个非常小的整数。带符号范围为 -128 到 127。无符号范围为 0 到 255。size 参数指定最大显示宽度(为 255)
BOOL 零被视为假,非零值被视为真。
BOOLEAN 等于 BOOL
SMALLINT(size) 一个小的整数。带符号范围为 -32768 到 32767。无符号范围为 0 到 65535。size 参数指定最大显示宽度(为 255)
MEDIUMINT(size) 一个中等大小的整数。带符号范围为 -8388608 到 8388607。无符号范围为 0 到 16777215。size 参数指定最大显示宽度(为 255)
INT(size) 一个中等大小的整数。带符号范围为 -2147483648 到 2147483647。无符号范围为 0 到 4294967295。size 参数指定最大显示宽度(为 255)
INTEGER(size) 等于 INT(size)
BIGINT(size) 一个大的整数。带符号范围为 -9223372036854775808 到 9223372036854775807。无符号范围为 0 到 18446744073709551615。size 参数指定最大显示宽度(为 255)
FLOAT(size, d) 一个浮点数。总位数在 size 中指定。小数点后的位数在 d 参数中指定。此语法在 MySQL 8.0.17 中已弃用,将在未来的 MySQL 版本中删除
FLOAT(p) 一个浮点数。MySQL 使用 p 值来确定是使用 FLOAT 还是 DOUBLE 作为结果数据类型。如果 p 为 0 到 24,则数据类型变为 FLOAT()。如果 p 为 25 到 53,则数据类型变为 DOUBLE()
DOUBLE(size, d) 一个正常大小的浮点数。总位数在 size 中指定。小数点后的位数在 d 参数中指定
DOUBLE PRECISION(size, d)  
DECIMAL(size, d) 一个精确的定点数字。总位数在 size 中指定。小数点后的位数在 d 参数中指定。size 的最大值为 65。d 的最大值为 30。size 的默认值为 10。d 的默认值为 0。
DEC(size, d) 等于 DECIMAL(size,d)

注意: 所有数值数据类型都可以具有一个额外的选项:UNSIGNED 或 ZEROFILL。如果添加 UNSIGNED 选项,MySQL 将不允许列出现负值。如果添加 ZEROFILL 选项,MySQL 将自动将 UNSIGNED 属性添加到该列。

日期时间数据类型

数据类型 描述
DATE 一个日期。格式:YYYY-MM-DD。支持的范围为 '1000-01-01' 到 '9999-12-31'
DATETIME(fsp) 一个日期和时间的组合。格式:YYYY-MM-DD hh:mm:ss。支持的范围为 '1000-01-01 00:00:00' 到 '9999-12-31 23:59:59'。在列定义中添加 DEFAULT 和 ON UPDATE 以获得自动初始化和更新到当前日期和时间
TIMESTAMP(fsp) 一个时间戳。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 指定自动初始化和更新到当前日期和时间
TIME(fsp) 一个时间。格式:hh:mm:ss。支持的范围是从“-838:59:59”到“838:59:59”。
年份 四位数格式的年份。四位数格式允许的值:1901到2155,以及0000。
MySQL 8.0不支持两位数格式的年份。


SQL Server 数据类型

字符串数据类型

数据类型 描述 最大大小 存储
char(n) 固定宽度字符字符串 8,000个字符 定义的宽度
varchar(n) 可变宽度字符字符串 8,000个字符 2个字节 + 字符数量
varchar(max) 可变宽度字符字符串 1,073,741,824个字符 2个字节 + 字符数量
text 可变宽度字符字符串 2GB文本数据 4个字节 + 字符数量
nchar 固定宽度 Unicode 字符串 4,000个字符 定义的宽度 x 2
nvarchar 可变宽度 Unicode 字符串 4,000个字符  
nvarchar(max) 可变宽度 Unicode 字符串 536,870,912个字符  
ntext 可变宽度 Unicode 字符串 2GB文本数据  
binary(n) 固定宽度二进制字符串 8,000个字节  
varbinary 可变宽度二进制字符串 8,000个字节  
varbinary(max) 可变宽度二进制字符串 2GB  
image 可变宽度二进制字符串 2GB  

数值数据类型

数据类型 描述 存储
bit 可以为 0、1 或 NULL 的整数  
tinyint 允许 0 到 255 之间的整数 1个字节
smallint 允许 -32,768 到 32,767 之间的整数 2个字节
int 允许 -2,147,483,648 到 2,147,483,647 之间的整数 4个字节
bigint 允许 -9,223,372,036,854,775,808 到 9,223,372,036,854,775,807 之间的整数 8个字节
decimal(p,s) 固定精度和比例数字。

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

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

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

5-17个字节
numeric(p,s) 固定精度和比例数字。

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

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

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

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

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

4或8个字节
real 浮点精度数字数据,从 -3.40E + 38 到 3.40E + 38 4个字节

日期时间数据类型

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

其他数据类型

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

MS Access 数据类型

数据类型 描述 存储
Text 用于文本或文本和数字的组合。最多 255 个字符  
Memo Memo 用于存储大量文本。存储最多 65,536 个字符。注意:您不能对备忘录字段进行排序。但是,它们是可以搜索的  
Byte 允许 0 到 255 之间的整数 1个字节
Integer 允许 -32,768 到 32,767 之间的整数 2个字节
Long 允许 -2,147,483,648 到 2,147,483,647 之间的整数 4个字节
Single 单精度浮点数。将处理大多数小数 4个字节
Double 双精度浮点数。将处理大多数小数 8个字节
Currency 用于货币。保存最多 15 位整数,以及 4 位小数。提示:您可以选择使用哪个国家的货币 8个字节
AutoNumber 自动编号字段会自动为每个记录分配一个唯一的数字,通常从 1 开始 4个字节
Date/Time 用于日期和时间 8个字节
Yes/No 逻辑字段可以显示为是/否、真/假或开/关。在代码中,使用常量 True 和 False(相当于 -1 和 0)。注意:Yes/No 字段不允许为空值 1位
Ole Object 可以存储图片、音频、视频或其他 BLOB(二进制大对象) 最多 1GB
Hyperlink 包含指向其他文件的链接,包括网页  
Lookup Wizard 允许您键入选项列表,然后可以从下拉列表中选择这些选项 4个字节

×

Contact Sales

If you want to use W3Schools services as an educational institution, team or enterprise, send us an e-mail:
[email protected]

Report Error

If you want to report an error, or if you want to make a suggestion, send us an e-mail:
[email protected]

W3Schools is optimized for learning and training. Examples might be simplified to improve reading and learning. Tutorials, references, and examples are constantly reviewed to avoid errors, but we cannot warrant full correctness of all content. While using W3Schools, you agree to have read and accepted our terms of use, cookie and privacy policy.

Copyright 1999-2024 by Refsnes Data. All Rights Reserved. W3Schools is Powered by W3.CSS.