MySQL 数据类型

MySQL中定义数据字段的类型对你数据库的优化是非常重要的。

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 字节

(-128,127)

(0,255)

小整数值

SMALLINT

2 字节

(-32 768,32 767)

(0,65 535)

大整数值

MEDIUMINT

3 字节

(-8 388 608,8 388 607)

(0,16 777 215)

大整数值

INT或INTEGER

4 字节

(-2 147 483 648,2 147 483 647)

(0,4 294 967 295)

大整数值

BIGINT

8 字节

(-9,223,372,036,854,775,808,9 223 372 036 854 775 807)

(0,18 446 744 073 709 551 615)

极大整数值

FLOAT

4 字节

(-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 字节

(-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类型有专有的自动更新特性,将在后面描述。

类型

大小(字节)

范围

格式

用途

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字节

定长字符串

VARCHAR

0-65 535 字节

变长字符串

TINYBLOB

0-255字节

不超过 255 个字符的二进制字符串

TINYTEXT

0-255字节

短文本字符串

BLOB

0-65 535字节

二进制形式的长文本数据

TEXT

0-65 535字节

长文本数据

MEDIUMBLOB

0-16 777 215字节

二进制形式的中等长度文本数据

MEDIUMTEXT

0-16 777 215字节

中等长度文本数据

LONGBLOB

0-4 294 967 295字节

二进制形式的极大文本数据

LONGTEXT

0-4 294 967 295字节

极大文本数据

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

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

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

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

笔记

MySQL 5.0 以上的版本:

1、一个汉字占多少长度与编码有关:

UTF-8:一个汉字=3个字节

GBK:一个汉字=2个字节

2、varchar(n) 表示 n 个字符,无论汉字和英文,Mysql 都能存入 n 个字符,仅是实际字节长度有所区别

3、MySQL 检查长度,可用 SQL 语言来查看:

select LENGTH(fieldname) from tablename

4、关于 char、varchar 与 text

经常变化长度的字段用 varchar

知道固定长度的用 char

尽量用 varchar

超过 255 字符的只能用 varchar 或者 text

能用 varchar 的地方不用 text

r如何查询mysql中的数据类型_MySQL数据类型 - osc_mgt0rm0m的个人空间 - OSCHINA - 中文开源技术交流社区...相关推荐

  1. mysql里面除号写法_MySQL常见函数 - osc_mgt0rm0m的个人空间 - OSCHINA - 中文开源技术交流社区...

    概念:函数类似于java的方法(将实现某个功能的逻辑语句封装到方法中,对外暴露一个公开的名字,就是方法名). 好处: 1.隐藏类具体功能的实现细节 2.提高代码的重用性 调用: SELECT 函数名( ...

  2. mysql 任务调度_Mysql任务调度 - osc_mgt0rm0m的个人空间 - OSCHINA - 中文开源技术交流社区...

    Mysql任务调度 Event调度配置 Mysql任务调度Event不执行 Mysql任务作业Event不执行 我采用的方法就是: 方法一:找到当前使用的 .cnf 文件,在 [mysqld] 的下面 ...

  3. 查询同学选修mysql课程的成绩_mysql-练习题 - osc_wy5qpqnh的个人空间 - OSCHINA - 中文开源技术交流社区...

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/mrbcy/article/detail ...

  4. 给mysql salve从库复制授权_MySQL主从复制 - osc_h8z06jiq的个人空间 - OSCHINA - 中文开源技术交流社区...

    MySQL主从复制 引入 MySQL数据库的主从复制方案,是其自带的功能,并且主从复制并不是复制磁盘上的数据库文件,而是通过binlog日志复制到需要同步的从服务器上. MySQL数据库支持单向.双向 ...

  5. 空间搭建mysql环境_MySQL环境搭建 - osc_mgt0rm0m的个人空间 - OSCHINA - 中文开源技术交流社区...

    一.安装依赖和拓展 1.安装 sudo apt-get install mysql-server sudo apt-get install mysql-client sudo apt-get inst ...

  6. mysql双活存储容量 TB_Mysql双活方案 - osc_fted3syf的个人空间 - OSCHINA - 中文开源技术交流社区...

    #### 说明 Mysql主主互备即为两个mysql的互为备份机 ##### Windows下安装步骤(Linux下步骤类似,基本就是装上mysql,然后修改配置来完成主从的设置) - step1.下 ...

  7. mysql主从切换机制torch_Mysql主从复制 - osc_y0vjyklt的个人空间 - OSCHINA - 中文开源技术交流社区...

    Mysql主从复制原理 1:主库开始二进制日志(binlog): 2:从库执行change master 执行主库,此时主库会创建一个dump线程,用于向从库发送二进制日志: 3.从库执行 start ...

  8. c语言ok未定义标识符,C语言中宏的相关知识 - osc_y7ckpzr9的个人空间 - OSCHINA - 中文开源技术交流社区...

    2019/04/27 16:02 1.宏的定义:宏定义就是预处理命令的一种,它允许用一个标识符来表示一个字符串.格式如下: #define name(宏名) stuff(字符串) 本质就是使用宏名去替 ...

  9. MySQL安装2出现Typical_Mysql安装 - osc_c7lpn2ge的个人空间 - OSCHINA - 中文开源技术交流社区...

    以下内容较长,请仔细阅读: 1.首先进入安装界面,按"Next"继续: 2.选择Custom,有Typical(默认).Complete(全装),一般根据选择安装自己的MySQL, ...

最新文章

  1. spring12:@Component衍生注解
  2. 存在于实数域的微观粒子6-放射性衰变与分类准确率
  3. linux中tcp连接内核参数调优somaxconn
  4. Direct Byte Buffer的操作
  5. (一)使用appium之前为什么要安装nodejs???
  6. 我应该使用32位还是64位JVM?
  7. rabbitmq 消费端代码获取队列名称_C#调用RabbitMQ实现消息队列的示例代码
  8. LeetCode 845. 数组中的最长山脉(中心扩展)
  9. IDEA Terminal替换成Git Bash_05
  10. 手机检测归属地 java_手机号归属地离线查询- Java
  11. 【报告分享】2019-2020广告主KOL营销市场盘点及趋势预测.pdf(附下载链接)
  12. 华为算法精英赛(题1:判断输入天数为当年的第几天)
  13. CodeMeter的功能介绍
  14. IIS6,IIS7,IIS8的脚本自动安装
  15. 百度地图获取数据库点的坐标,并定时刷新到页面上 jsp
  16. 盘点激光雷达技术在智能交通上的应用
  17. 批量添加联系人的方法
  18. 模棱两可的生物学概念问题辨析1
  19. 设计师必备的设计软件
  20. 每日一道 LeetCode (16):求 x 的平方根

热门文章

  1. 乐观锁和悲观锁的底层实现原理
  2. 渗透测试人员应遵守的法律法规
  3. matlab识别液位,温度液位过程控制MATLAB防真
  4. 2021年 ICCV / NeurIPS / AAAI 中Neural Architecture Search (NAS) 神经网络结构搜索相关论文汇总
  5. vscode python 格式化_python格式化代码只懂autopep8?这里有更好的
  6. Discuz论坛 自动加好友留言程序
  7. 60亿个URL,限制1G内存,如何去重?
  8. 苹果iOS源代码泄露始末:竟是底层员工所为
  9. java中set集合如何去除重复元素
  10. linux 脚本授权,Linux授权命令