MySQL 数据类型

2023-11-08

MySQL支持多种类型,大致可以分为三类:数值、日期/时间和字符串(字符)类型。


数值类型

MySQL支持所有标准SQL数值数据类型。

这些类型包括严格数值数据类型(INTEGER、SMALLINT、DECIMAL和NUMERIC),以及近似数值数据类型(FLOAT、REAL和DOUBLE PRECISION)。

关键字INT是INTEGER的同义词,关键字DEC是DECIMAL的同义词。

BIT数据类型保存位字段值,并且支持MyISAM、MEMORY、InnoDB和BDB表。

作为SQL标准的扩展,MySQL也支持整数类型TINYINT、MEDIUMINT和BIGINT。下面的表显示了需要的每个整数类型的存储和范围。

类型 大小 范围(有符号) 范围(无符号) 用途
TINYINT 1 byte (-128,127) (0,255) 小整数值
SMALLINT 2 bytes (-32 768,32 767) (0,65 535) 大整数值
MEDIUMINT 3 bytes (-8 388 608,8 388 607) (0,16 777 215) 大整数值
INT或INTEGER 4 bytes (-2 147 483 648,2 147 483 647) (0,4 294 967 295) 大整数值
BIGINT 8 bytes (-9,223,372,036,854,775,808,9 223 372 036 854 775 807) (0,18 446 744 073 709 551 615) 极大整数值
FLOAT 4 bytes (-3.402 823 466 E+38,-1.175 494 351 E-38),0,(1.175 494 351 E-38,3.402 823 466 351 E+38) 0,(1.175 494 351 E-38,3.402 823 466 E+38) 单精度
浮点数值
DOUBLE 8 bytes (-1.797 693 134 862 315 7 E+308,-2.225 073 858 507 201 4 E-308),0,(2.225 073 858 507 201 4 E-308,1.797 693 134 862 315 7 E+308) 0,(2.225 073 858 507 201 4 E-308,1.797 693 134 862 315 7 E+308) 双精度
浮点数值
DECIMAL 对DECIMAL(M,D) ,如果M>D,为M+2否则为D+2 依赖于M和D的值 依赖于M和D的值 小数值

日期和时间类型

表示时间值的日期和时间类型为DATETIME、DATE、TIMESTAMP、TIME和YEAR。

每个时间类型有一个有效值范围和一个"零"值,当指定不合法的MySQL不能表示的值时使用"零"值。

TIMESTAMP类型有专有的自动更新特性,将在后面描述。

类型 大小
( bytes)
范围 格式 用途
DATE 3 1000-01-01/9999-12-31 YYYY-MM-DD 日期值
TIME 3 '-838:59:59'/'838:59:59' HH:MM:SS 时间值或持续时间
YEAR 1 1901/2155 YYYY 年份值
DATETIME 8 1000-01-01 00:00:00/9999-12-31 23:59:59 YYYY-MM-DD HH:MM:SS 混合日期和时间值
TIMESTAMP 4

1970-01-01 00:00:00/2038

结束时间是第 2147483647 秒,北京时间 2038-1-19 11:14:07,格林尼治时间 2038年1月19日 凌晨 03:14:07

YYYYMMDD HHMMSS 混合日期和时间值,时间戳

字符串类型

字符串类型指CHAR、VARCHAR、BINARY、VARBINARY、BLOB、TEXT、ENUM和SET。该节描述了这些类型如何工作以及如何在查询中使用这些类型。

类型 大小 用途
CHAR 0-255 bytes 定长字符串
VARCHAR 0-65535 bytes 变长字符串
TINYBLOB 0-255 bytes 不超过 255 个字符的二进制字符串
TINYTEXT 0-255 bytes 短文本字符串
BLOB 0-65 535 bytes 二进制形式的长文本数据
TEXT 0-65 535 bytes 长文本数据
MEDIUMBLOB 0-16 777 215 bytes 二进制形式的中等长度文本数据
MEDIUMTEXT 0-16 777 215 bytes 中等长度文本数据
LONGBLOB 0-4 294 967 295 bytes 二进制形式的极大文本数据
LONGTEXT 0-4 294 967 295 bytes 极大文本数据

注意:char(n) 和 varchar(n) 中括号中 n 代表字符的个数,并不代表字节个数,比如 CHAR(30) 就可以存储 30 个字符。

CHAR 和 VARCHAR 类型类似,但它们保存和检索的方式不同。它们的最大长度和是否尾部空格被保留等方面也不同。在存储或检索过程中不进行大小写转换。

BINARY 和 VARBINARY 类似于 CHAR 和 VARCHAR,不同的是它们包含二进制字符串而不要非二进制字符串。也就是说,它们包含字节字符串而不是字符字符串。这说明它们没有字符集,并且排序和比较基于列值字节的数值值。

BLOB 是一个二进制大对象,可以容纳可变数量的数据。有 4 种 BLOB 类型:TINYBLOB、BLOB、MEDIUMBLOB 和 LONGBLOB。它们区别在于可容纳存储范围不同。

有 4 种 TEXT 类型:TINYTEXT、TEXT、MEDIUMTEXT 和 LONGTEXT。对应的这 4 种 BLOB 类型,可存储的最大长度不同,可根据实际情况选择。

转自:https://www.runoob.com/mysql/mysql-data-types.html

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

MySQL 数据类型 的相关文章

  • 通过货币换算获取每种产品类型的最低价格

    我想选择每种产品类型中最便宜的 包括运费 价格转换为当地货币 最便宜 产品 价格 产品 运费 seller to aud 我的数据库有如下表 PRODUCTS SELLERS id type id seller id price shipp
  • 无法使用 Django 应用程序从容器连接到 MySQL docker 容器

    当我尝试从运行 Django 应用程序的 docker 容器连接到运行 MySQL 的容器时 出现以下错误 django db utils OperationalError 2003 Can t connect to MySQL serve
  • mySQL MATCH 跨多个表

    我有一组 4 个表 我想对其进行搜索 每个都有全文索引 查询可以使用每个索引吗 CREATE TABLE categories id int 5 unsigned NOT NULL auto increment display order
  • PHP 选择后立即删除

    我有一个 PHP 服务器脚本 它从 MySQL 数据库中选择一些数据 一旦我将 mysql query 和 mysql fetch assoc 的结果存储在我自己的局部变量中 我就想删除我刚刚选择的行 这种方法的问题在于 PHP 似乎对我的
  • MySQL 存储过程将值分配给 select 语句中的多个变量

    这是我的存储过程 我在为声明的变量赋值时遇到问题 当我执行它时 插入和更新命令工作正常 但声明变量的值保持为 0 但我在数据库中有一些价值 我怎样才能正确地做到这一点 BEGIN DECLARE PaidFee INT DEFAULT 0
  • 当“修复表”查询在 mysql 中不起作用时该怎么办?

    我收到此错误 表的存储引擎不支持修复 当我尝试使用查询修复表时repair table tbl college master 表是 innodb 类型 但我不知道我收到此错误 See 手册 http dev mysql com doc re
  • MySql 最后插入 ID,连接器 .net

    我正在使用 MySql Connector net 我需要获取最后一个查询生成的插入 id 现在 我假设返回值是MySqlHelper ExecuteNonQuery应该是最后一个插入id 但它只返回1 我正在使用的代码是 int inse
  • 如何在 phpmyadmin 中创建 MySQL 触发器

    我想在 MySQL 中创建一个触发器 我运行以下命令 mysql gt delimiter mysql gt CREATE TRIGGER before insert money BEFORE INSERT ON money gt FOR
  • 显示表 FULLTEXT 索引列

    我希望运行一个查询 该查询将返回表中全文索引的列列表 该表采用 MyISAM 格式 我将使用 php 来构建查询 理想情况下 我会运行查询 它会返回信息 以便我可以构造一个以逗号分隔的列字符串 例如 名 姓 电子邮箱 这在 MySQL 中可
  • MySQL PHP邮政编码比较具体距离

    我试图找出比较一个邮政编码 用户提供的 和一大堆其他邮政编码 现在大约有 200 个邮政编码 之间的距离的最有效方法 相对于加载时间 但它会随着时间的推移而增加 我不需要任何精确的东西 只是在球场上 我下载了整个美国的邮政编码 csv 文件
  • Apache、PHP 和 MySQL 可移植吗?

    我可以在外部硬盘上运行 Apache PHP 和 MySQL 吗 我需要这个 因为我在不同的地方工作 计算机 有时我没有安装和配置所有使用的应用程序 当然可以 XAMPP http www apachefriends org en xamp
  • 将古吉拉特语文本插入 MySQL 表会产生垃圾字符和不可读的文本

    我有三个 MySQL 表 我正在向其中插入古吉拉特语内容 当我插入两个表时 它们插入得很好并且可读 但在一个表中 它显示垃圾字符 不可读的文本 我怎样才能解决这个问题 MySQL 有每个表的字符集设置 http dev mysql com
  • 将第三个表链接到多对多关联中的桥接表

    设计这个数据库的正确方法是什么 这是我设置表格的方式 我在名为 教师 的表和名为 仪器 的表之间存在多对多关系 然后我有一个连接两者的桥接表 我想将另一个表与 BRIDGE 表关联起来 意思是乐器 老师的组合 该表有 3 行 指定老师可以教
  • 如何使用 vitess 仅对特定表进行分片

    我创建了一个包含三个表的未分片键空间 现在我想对前两个表的键空间进行分片 但不想对第三个表进行分片 如何才能做到这一点 Vitess 文档不包含任何与此相关的信息或示例 请帮忙 Thanks vitess 中的垂直分片与水平分片类似 您应该
  • 在服务器上找不到本地主机或 phpMyAdmin:如何修复?

    我按照安装说明进行操作PHP MySQL and PHPMyAdmin 但是当我尝试访问时http localhost phpmyadmin 我收到此错误 未找到 在此找不到请求的 URL phpmyadmin 服务器 然后我尝试访问loc
  • gem install mysql:无法构建 gem 本机扩展 (Mac Lion)

    我为 Mac OS X Lion 安装了 MySQL 5 5 27 来自 dmg 现在我尝试安装 mysql gem gem install mysql Building native extensions This could take
  • Bugzilla 中分离客户端的基本权限

    我正在尝试配置一个 Bugzilla 实例 这将允许我的客户登录并为其正在开发 维护的网站提交错误 例如 我创建了 2 个名为 TestProject TestProject2 的产品和一个名为 TestClient 的用户 我想要实现的是
  • 如何在 Play java 中创建数据库线程池并使用该池进行数据库查询

    我目前正在使用 play java 并使用默认线程池进行数据库查询 但了解使用数据库线程池进行数据库查询可以使我的系统更加高效 目前我的代码是 import play libs Akka import scala concurrent Ex
  • 如何从shell脚本自动登录MySQL?

    我有一个 MySQL 服务器 其中有一个用户和密码 我想在 shell 脚本中执行一些 SQL 查询而不指定密码 如下所示 config sh MYSQL ROOT root MYSQL PASS password mysql sh sou
  • 如何修改现有表以添加时区

    我有一个包含 500 多个表的大型应用程序 我必须将应用程序转换为时区感知 当前应用程序使用new java util Date GETDATE 与服务器的时区 即没有任何时区支持 我已将这项任务分为几个步骤 以便于开发 我确定的第一个步骤

随机推荐

  • dos命令之远程桌面

    echo off 开启服务 net start SessionEnv net start TermService 开机手动启动 sc config SessionEnv start demand sc config TermService
  • Qt的getOpenFileName()函数使用

    Qt的getOpenFileName 函数使用 为了说明QFileDialog getOpenFileName 函数的用法 首先要清楚函数的完整定义 QString QFileDialog getOpenFileName QWidget p
  • 2012淘宝校园招聘笔试

    川大站笔试 本人亲手经历 1个小时的笔试时间 人还是非常多 快没有位置了 选择题考察的面非常广 我记得住的只有下面几道题 1 进程死锁 2 双链表插入节点 3 插座问题 用树的知识解决 4 平衡树的概念 红黑树 B数 AVL树 5 ICMP
  • (转)快速安全的往mysql里插入千万条数据

    来源 ksfzhaohui juejin im post 5da5b568f265da5b6c4bc13d 概述 有个需求解析一个订单文件了 并且说明文件可达到千万条数据 每条数据大概在20哥字段左右 每个字段使用逗号分隔 需要尽量在半小时
  • 安装和建立Oracle18c数据库过程中的一些实践问题

    最近遇到了一个从Visual Studio 2017 中建立tabular project调取Oracle数据库的问题 一 下载并安装Oracle18c 我们可以从Oracle的官网上下载最新的Oracle Database 18c htt
  • 手把手教你hadoop集群配置(详细)

    本博客用到的虚拟机客户机已将前五步完成 从6 开始 现有三台客户机 hadoop112 hadoop113 hadoop114 其中hadoop112已完成JDK Hadoop的安装以及环境变量的配置 所以需要将112上的两者复制到113和
  • vs code因系统更新重启被关闭,找回未保存代码文件

    版权声明 转载请注明作者 独孤尚良dugushangliang 出处 https blog csdn net dugushangliang article details 123527489 win10系统 晚上没关机 点了睡眠 想着后面再
  • 嵌入式数据库sqlite3【基础篇】-基本命令操作,小白一看就懂

    前言 数据在实际工作中应用非常广泛 数据库的产品也比较多 oracle DB2 SQL2000 mySQL 基于嵌入式linux的数据库主要有SQLite Firebird Berkeley DB eXtremeDB 本文主要讲解数据库SQ
  • Python画图常用代码总结,这20个画图代码现拿现用

    目录 前言 1 散点图 2 带边界的气泡图 3 带线性回归最佳拟合线的散点图 4 抖动图 5 计数图 6 边缘直方图 7 边缘箱形图 9 矩阵图 10 发散型条形图 11 发散型文本 12 发散型包点图 13 带标记的发散型棒棒糖图 14
  • 聚焦功能安全,Imagination如何助力更安全的汽车芯片

    8 月29 日 由 OFweek 维科网主办 OFweek 电子工程网承办的 OFweek 2023中国国际汽车产业大会 在深圳圆满收官 本次大会以 芯动 行动 驾驭未来 为主题 邀请了业内众多专家学者 围绕车载芯片 MCU 传感器 车联网
  • 安装tomcat的步骤与部署服务详解

    目录 一安装tomcat步骤 1 首先关闭防火墙跟安全机制 2 安装jdk把jdk包与tomcat的包下载到 opt目录 3 然后用命令查看安装好的版本号 4 安装好jdk后需要把他设置到环境变量中去以免系统找不到 5 下来装tomcat
  • UnboundLocalError: local variable ‘loss’ referenced before assignment解决方法

    Traceback most recent call last File src main py line 442 in
  • c++之构造函数详解

    C 构造函数的理解 相对于C语言来说 C 有一个比较好的特性就是构造函数 即类通过一个或者几个特殊的成员函数来控制其对象的初始化过程 构造函数的任务 就是初始化对象的数据成员 无论何时只要类的对象被创建 就会执行构造函数 构造函数的语法 构
  • SCI投稿中的状态解读

    转载 SCI投稿中的简写 ADM AE EIC等 与状态解读https blog csdn net Strive For Future article details 113932172
  • 运输层---UDP协议

    目录 一 无连接运输 UDP 1 1 定义 1 2 特点 1 3 应用 二 UDP报文段结构 三 UDP检验和 3 1 定义 3 2 检验和计算实例 3 3 UDP检验和的局限 一 无连接运输 UDP 1 1 定义 UDP User Dat
  • 高光谱图像选择波段的研究

    免责声明 本文仅代表个人观点 如有错误 请读者自己鉴别 如果本文不小心含有别人的原创内容 请联系我删除 本人心血制作 若转载请注明出处 本文是根据 魏芳洁 所著的 高光谱图像波段选择方法的研究 一文而写 基本细节皆引自此文 高光谱主要问题是
  • svn 错误 以及 中文翻译

    比较长 如何查找不方便的话 用查找 CTRL F 吧 Simplified Chinese translation for subversion package This file is distributed under the same
  • GraphPad Prism 9 for Mac 的使用教程

    一 图形类型怎么选择 1 XY 折线图 散点图 适用于线性回归 非线性回归 相关性分析 2 Column 柱状图 适用于单因素的统计分析 如单个样本的t检验 3 Grouped 适用于两个因素或者多因素的方差分析 4 Contingency
  • 多线程案例

    目录 一 单例模式 二 阻塞式队列 三 定时器 四 线程池 一 单例模式 单例模式其实是一种设计模式 而设计模式简单来说其实就是针对一些常见场景给出的一些经典解决方案 让程序员可以更好的解决问题 我们到目前为止一般涉及到的设计模式有两种 单
  • MySQL 数据类型

    MySQL支持多种类型 大致可以分为三类 数值 日期 时间和字符串 字符 类型 数值类型 MySQL支持所有标准SQL数值数据类型 这些类型包括严格数值数据类型 INTEGER SMALLINT DECIMAL和NUMERIC 以及近似数值