- 关于 TiDB
- 快速上手
- 部署集群
- 数据迁移
- 数据迁移概述
- 从 MySQL 迁移至 TiDB
- 从 CSV 文件迁移至 TiDB
- 运维操作
- 监控与告警
- 故障诊断
- 性能调优
- 系统调优
- 软件调优
- SQL 性能调优
- 教程
- TiDB 生态工具
- TiDB 生态工具功能概览
- TiDB 生态工具适用场景
- TiDB 工具下载
- Backup & Restore (BR)
- TiDB Binlog
- TiDB Lightning
- TiCDC 简介
- Dumpling 使用文档
- sync-diff-inspector
- Loader 使用文档
- Mydumper 使用文档
- Syncer 使用文档
- TiSpark
- 参考指南
- 架构
- 监控指标
- 安全加固
- 权限
- SQL
- SQL 语言结构和语法
- 属性
- 字面值
- Schema 对象名
- 关键字
- 用户自定义变量
- 表达式语法
- 注释语法
- SQL 语句
- ADD COLUMN
- ADD INDEX
- ADMIN
- ALTER DATABASE
- ALTER INSTANCE
- ALTER TABLE
- ALTER USER
- ANALYZE
- BACKUP
- BEGIN
- CHANGE COLUMN
- CHANGE DRAINER
- CHANGE PUMP
- COMMIT
- CREATE [GLOBAL|SESSION] BINDING
- CREATE DATABASE
- CREATE INDEX
- CREATE ROLE
- CREATE SEQUENCE
- CREATE TABLE LIKE
- CREATE TABLE
- CREATE USER
- CREATE VIEW
- DEALLOCATE
- DELETE
- DESC
- DESCRIBE
- DO
- DROP [GLOBAL|SESSION] BINDING
- DROP COLUMN
- DROP DATABASE
- DROP INDEX
- DROP ROLE
- DROP SEQUENCE
- DROP STATS
- DROP TABLE
- DROP USER
- DROP VIEW
- EXECUTE
- EXPLAIN ANALYZE
- EXPLAIN
- FLASHBACK TABLE
- FLUSH PRIVILEGES
- FLUSH STATUS
- FLUSH TABLES
- GRANT
- GRANT
- INSERT
- KILL [TIDB]
- LOAD STATS
- MODIFY COLUMN
- PREPARE
- RECOVER TABLE
- RENAME INDEX
- RENAME TABLE
- REPLACE
- RESTORE
- REVOKE
- REVOKE
- ROLLBACK
- SELECT
- SET DEFAULT ROLE
- SET [NAMES|CHARACTER SET]
- SET PASSWORD
- SET ROLE
- SET TRANSACTION
- SET [GLOBAL|SESSION]
- SHOW [BACKUPS|RESTORES]
- SHOW ANALYZE STATUS
- SHOW [GLOBAL|SESSION] BINDINGS
- SHOW BUILTINS
- SHOW CHARACTER SET
- SHOW COLLATION
- SHOW [FULL] COLUMNS FROM
- SHOW CONFIG
- SHOW CREATE SEQUENCE
- SHOW CREATE TABLE
- SHOW CREATE USER
- SHOW DATABASES
- SHOW DRAINER STATUS
- SHOW ENGINES
- SHOW ERRORS
- SHOW [FULL] FIELDS FROM
- SHOW GRANTS
- SHOW INDEX [FROM|IN]
- SHOW INDEXES [FROM|IN]
- SHOW KEYS [FROM|IN]
- SHOW MASTER STATUS
- SHOW PLUGINS
- SHOW PRIVILEGES
- SHOW [FULL] PROCESSLIST
- SHOW PROFILES
- SHOW PUMP STATUS
- SHOW SCHEMAS
- SHOW STATS_HEALTHY
- SHOW STATS_HISTOGRAMS
- SHOW STATS_META
- SHOW [GLOBAL|SESSION] STATUS
- SHOW TABLE NEXTROWID
- SHOW TABLE REGIONS
- SHOW TABLE STATUS
- SHOW [FULL] TABLES
- SHOW [GLOBAL|SESSION] VARIABLES
- SHOW WARNINGS
- SHUTDOWN
- Split Region 使用文档
- START TRANSACTION
- TRACE
- TRUNCATE
- UPDATE
- USE
- 数据类型
- 函数与操作符
- 约束
- 生成列
- SQL 模式
- 事务
- 垃圾回收 (GC)
- 视图
- 分区表
- 字符集和排序规则
- 系统表
- TiDB 系统表
- INFORMATION_SCHEMA
- TiDB 简介
- ANALYZE_STATUS
- CHARACTER_SETS
- CLUSTER_CONFIG
- CLUSTER_HARDWARE
- CLUSTER_INFO
- CLUSTER_LOAD
- CLUSTER_LOG
- CLUSTER_SYSTEMINFO
- COLLATIONS
- COLLATIONCHARACTERSET_APPLICABILITY
- COLUMNS
- DDL_JOBS
- ENGINES
- INSPECTION_RESULT
- INSPECTION_RULES
- INSPECTION_SUMMARY
- KEYCOLUMNUSAGE
- METRICS_SUMMARY
- METRICS_TABLES
- PARTITIONS
- PROCESSLIST
- SCHEMATA
- SEQUENCES
- SESSION_VARIABLES
- SLOW_QUERY
- STATISTICS
- TABLES
- TABLE_CONSTRAINTS
- TABLESTORAGESTATS
- TIDBHOTREGIONS
- TIDB_INDEXES
- TIDBSERVERSINFO
- TIFLASH_REPLICA
- TIKVREGIONPEERS
- TIKVREGIONSTATUS
- TIKVSTORESTATUS
- USER_PRIVILEGES
- VIEWS
- Metrics Schema
- SQL 语言结构和语法
- UI
- CLI
- 命令行参数
- 配置文件参数
- 系统变量
- 存储引擎
- TiUP
- 遥测
- 错误码与故障诊断
- TiCDC Open Protocol
- 通过拓扑 label 进行副本调度
- 常见问题解答 (FAQ)
- 术语表
数值类型
TiDB 支持 MySQL 所有的数值类型,按照精度可以分为:
- 整数类型
TiDB 支持 MySQL 所有的整数类型,包括
INTEGER
/INT
、TINYINT
、SMALLINT
、MEDIUMINT
以及BIGINT
,完整信息参考这篇文档。字段说明:
语法元素 说明 M 类型显示宽度,可选 UNSIGNED 无符号数,如果不加这个标识,则为有符号数 ZEROFILL 补零标识,如果有这个标识,TiDB 会自动给类型增加 UNSIGNED 标识,但是没有做补零的操作 类型定义
BIT
类型比特值类型。M 表示比特位的长度,取值范围从1到64,其默认值是1。
BIT[(M)]
BOOLEAN
类型布尔类型,别名为
BOOL
,和TINYINT(1)
等价。零值被认为是False
,非零值认为是True
。在 TiDB 内部,True
存储为1
,False
存储为0
。BOOLEAN
TINYINT
类型TINYINT
类型。有符号数的范围是[-128, 127]
。无符号数的范围是[0, 255]
。TINYINT[(M)] [UNSIGNED] [ZEROFILL]
SMALLINT
类型SMALLINT
类型。有符号数的范围是[-32768, 32767]
。无符号数的范围是[0, 65535]
。SMALLINT[(M)] [UNSIGNED] [ZEROFILL]
MEDIUMINT
类型MEDIUMINT
类型。有符号数的范围是[-8388608, 8388607]
。无符号数的范围是[0, 16777215]
。MEDIUMINT[(M)] [UNSIGNED] [ZEROFILL]
INTEGER
类型INTEGER
类型,别名INT
。有符号数的范围是[-2147483648, 2147483647]
。无符号数的范围是[0, 4294967295]
。INT[(M)] [UNSIGNED] [ZEROFILL]
或者:
INTEGER[(M)] [UNSIGNED] [ZEROFILL]
BIGINT
类型BIGINT
类型。有符号数的范围是[-9223372036854775808, 9223372036854775807]
。无符号数的范围是[0, 18446744073709551615]
。BIGINT[(M)] [UNSIGNED] [ZEROFILL]
存储空间以及取值范围
每种类型对存储空间的需求以及最大/最小值如下表所示:
类型 存储空间 最小值(有符号/无符号) 最大值(有符号/无符号) TINYINT
1 -128 / 0 127 / 255 SMALLINT
2 -32768 / 0 32767 / 65535 MEDIUMINT
3 -8388608 / 0 8388607 / 16777215 INT
4 -2147483648 / 0 2147483647 / 4294967295 BIGINT
8 -9223372036854775808 / 0 9223372036854775807 / 18446744073709551615 浮点类型
TiDB 支持 MySQL 所有的浮点类型,包括
FLOAT
、DOUBLE
,完整信息参考这篇文档。字段说明:
语法元素 说明 M 小数总位数 D 小数点后位数 UNSIGNED 无符号数,如果不加这个标识,则为有符号数 ZEROFILL 补零标识,如果有这个标识,TiDB 会自动给类型增加 UNSIGNED 标识 类型定义
FLOAT
类型单精度浮点数。允许的值范围为 -2^128 ~ +2^128,也即 -3.402823466E+38 到 -1.175494351E-38、0 和 1.175494351E-38 到 3.402823466E+38。这些是基于 IEEE 标准的理论限制。实际的范围根据硬件或操作系统的不同可能稍微小些。
FLOAT(p)
类型中,p
表示精度(以位数表示)。只使用该值来确定是否结果列的数据类型为FLOAT
或DOUBLE
。如果p
为从 0 到 24,数据类型变为没有 M 或 D 值的FLOAT
。如果p
为从 25 到 53,数据类型变为没有 M 或 D 值的DOUBLE
。结果列范围与本节前面描述的单精度FLOAT
或双精度DOUBLE
数据类型相同。FLOAT[(M,D)] [UNSIGNED] [ZEROFILL] FLOAT(p) [UNSIGNED] [ZEROFILL]
警告:
与在 MySQL 中一样,
FLOAT
数据类型存储近似值。对于货币之类的精确值,建议使用DECIMAL
类型。DOUBLE
类型双精度浮点数,别名为
DOUBLE PRECISION
。允许的值范围为:-2^1024 ~ +2^1024,也即是 -1.7976931348623157E+308 到 -2.2250738585072014E-308、0 和 2.2250738585072014E-308 到 1.7976931348623157E+308。这些是基于 IEEE 标准的理论限制。实际的范围根据硬件或操作系统的不同可能稍微小些。DOUBLE[(M,D)] [UNSIGNED] [ZEROFILL] DOUBLE PRECISION [(M,D)] [UNSIGNED] [ZEROFILL], REAL[(M,D)] [UNSIGNED] [ZEROFILL]
警告:
与在 MySQL 中一样,
DOUBLE
数据类型存储近似值。对于货币之类的精确值,建议使用DECIMAL
类型。存储空间
每种类型对存储空间的需求如下表所示:
类型 存储空间 FLOAT
4 FLOAT(p)
如果 0 <= p <= 24 为 4 个字节, 如果 25 <= p <= 53 为 8 个字节 DOUBLE
8 定点类型
TiDB 支持 MySQL 所有的定点类型,包括
DECIMAL
、NUMERIC
,完整信息参考这篇文档。字段说明:
语法元素 说明 M 小数总位数 D 小数点后位数 UNSIGNED 无符号数,如果不加这个标识,则为有符号数 ZEROFILL 补零标识,如果有这个标识,TiDB 会自动给类型增加 UNSIGNED 标识 类型定义
DECIMAL
类型定点数,别名为
NUMERIC
。M 是小数位数(精度)的总数,D 是小数点(标度)后面的位数。小数点和-
(负数)符号不包括在 M 中。如果 D 是 0,则值没有小数点或分数部分。如果 D 被省略,默认是 0。如果 M 被省略,默认是 10。DECIMAL[(M[,D])] [UNSIGNED] [ZEROFILL] NUMERIC[(M[,D])] [UNSIGNED] [ZEROFILL]
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论