一、主要分了三大类

1. 数值类型:整数类型浮点数类型定点数类型

2. 日期/时间类型

3. 字符串类型:文本字符串、二进制字符串

类型 存储 对应Java类型 范围(有符号) 无符号
数值 整数 TINYINT 1字节 java类型Integer -128~127 0~255()
SMALLINT 2字节 32768~32767 0~65535
MEDIUMINT 3字节 -8388608~8388607 0~16777215
INT 4字节 -231~231 -1 (-2147483648 ~ 2147483647),可以达到21亿,一般足够用了 0 到4294967295 (40亿)
BIGINT 8字节 -2^63 (-9223372036854775808) 到 2^63-1 (9223372036854775807) 的整型数据(所有数字)
浮点数 FLOAT 4字节 java类型Float
DOUBLE 8字节 java类型Double
定点数 DECIMAL(M,N) M+2字节 java类型BigDecimal
日期/时间类型 YEAR YYYY java类型Year 1901-2155 1字节
TIME HH:MM:SS java类型Time 3字节
DATE YYYY-MM-DD java类型Date 3字节
DATETIME YYYY-MM-DD HH:MM:SS java类型Date 8字节
TIMESTAMP YYYY-MM-DD HH:MM:SS 时间戳, 1970.1.1到现在的毫秒数!也较为常用 4字节
字符串 文本字符串 CHAR 固定大小的字符串,0~255 java类型String
VARCHAR 可变大小的字符串,0~65535
TINYTEXT 0-255 字节
TEXT 0-65535 字节
MEDIUMTEXT 0-16,777,215 字节
LONGTEXT 0-4,294,967,295 or 4GB 字节
ENUM java类型Enum 1或2字节
二进制字符串 TINYBLOB 0-255 字节
BLOB 0-65535 字节
MEDIUMBLOB 0-16,777,215 字节
LONGBLOB 0-4,294,967,295 or 4GB 字节

二、一些注意细节

2.1 数值类型

浮点类型有两种,分别是单精度浮点数(FLOAT)和双精度浮点数(DOUBLE);定点类型只有一种,就是 DECIMAL。

浮点类型和定点类型都可以用(M, D)来表示,其中M称为精度,表示总共的位数;D称为标度,表示小数的位数。

浮点数类型的取值范围为 M(1~255)和 D(1~30,且不能大于 M-2),分别表示显示宽度和小数位数。M 和 D 在 FLOAT 和DOUBLE 中是可选的,FLOAT 和 DOUBLE 类型将被保存为硬件所支持的最大精度。DECIMAL 的默认 D 值为 0、M 值为 10。

下表中列出了 MySQL 中的小数类型和存储需求。

类型名称 说明 存储需求
FLOAT 单精度浮点数 4 个字节
DOUBLE 双精度浮点数 8 个字节
DECIMAL (M, D),DEC 压缩的“严格”定点数 M+2 个字节

DECIMAL 类型不同于 FLOAT 和 DOUBLE。DOUBLE 实际上是以字符串的形式存放的,DECIMAL 可能的最大取值范围与 DOUBLE 相同,但是有效的取值范围由 M 和 D 决定。如果改变 M 而固定 D,则取值范围将随 M 的变大而变大。

从上表中可以看到,DECIMAL 的存储空间并不是固定的,而由精度值 M 决定,占用 M+2 个字节。

不论是定点还是浮点类型,如果用户指定的精度超出精度范围,则会四舍五入进行处理。

FLOAT 和 DOUBLE 在不指定精度时,默认会按照实际的精度(由计算机硬件和操作系统决定),DECIMAL 如果不指定精度,默认为(10,0)。

浮点数相对于定点数的优点是在长度一定的情况下,浮点数能够表示更大的范围;缺点是会引起精度问题。

在 MySQL 中,定点数以字符串形式存储,在对精度要求比较高的时候(如货币、科学数据),使用 DECIMAL 的类型比较好,另外两个浮点数进行减法和比较运算时也容易出问题,所以在使用浮点数时需要注意,并尽量避免做浮点数比较。

2.2 创建表 id INT(3)

注意:

CREATE TABLE test1(id INT(3),`name` VARCHAR(5),age INT(3)
);

id INT(3)括号内的3不是限制存储数据的大小,而是指示显示宽度.显示宽度和数据类型的取值范围是无关的

显示宽度只用于显示,并不能限制取值范围和占用空间。例如:INT(3)会占用4字节的存储空间,并且允许的最大值不会是999,而是INT整型所允许的最大值。显示宽度只是指明MySQL最大可能显示的数字个数,数值的位数小于指定的宽度时会由空格填充

例如:向test1id = 999999的数据还是会成功.

2.3 char和vchar的区别

  • char定长,vchar不定长,如同是定义char[10],vchar[10],存储abc这三个字符时,char存了abc后,剩下的7个长度用空格来填充,读取的时候用trim去除添加的空格,而vchar存的时候直接存abc,不补充空格
  • char 的读取速度比vchar快,但占的空间较大,是用空间换取时间。

Mysql数据库的字段类型相关推荐

  1. MySQL数据库中有字段类型是日期,时间的插入语句处理

    MySQL数据库中有字段类型是日期,时间的插入语句处理 什么是时间戳? TIMESTAMP是一种类型,具体的值:19990717080000 CURRENT_TIMESTAMP是什么意思? on up ...

  2. Mysql数据库的字段类型:

    数据库的数据类型和字段属性: 1.数值 ①tinyint     十分小的数据          1个字节 ②smallint    较小的数据            2个字节 ③mediumint ...

  3. linux下查看mysql数据库的字段类型_系统运维|[小白技巧]如何在Linux上检查MySQL数据表的存储引擎类型...

    提问: 我想要知道我的MySQL数据库是MyISAM还是Innodb类型.我该如何检查MySQL数据库表的类型? MySQl主要使用两种存储引擎:MyISAM 和 Innodb.MyISAM是非事务的 ...

  4. mysql数据库之字段类型

    一.字符编码和配置文件 1.为了统一编码格式,防止乱码,需要在配置文件中进行编码配置 2.步骤: 1.复制原有的配置文件:my-default.ini 2.粘贴重命名产生新的配置文件:my.ini(必 ...

  5. MySQL数据库中字段类型与设计原则

    字段类型的设计和选择 1.单表字段不宜过多 建议最多30个以内 字段越多,会导致性能下降,并且增加开发难度 2.使用小而简单的合适数据类型 a.字符串类型 固定长度使用char,非定长使用varcha ...

  6. mysql数据库常用字段类型_快速了解MySQL数据库常用字段类型

    数字列类型 int.bigint.smallint.tinyint 数字列类型用于储存各种数字数据,如价格.年龄或者数量.数字列类型主要分为两种:整数型和浮点型.所有的数字列类型都允许有两个选 项:U ...

  7. 数据库mysql表常见字段大小_常用的数据库的字段类型及大小

    Oracle/MSSQL/Mysql 常用数据库的字段类型及大小 ORACLE的数据类型 常用的数据库字段类型如下: 字段类型 中文说明 限制条件 其它说明 CHAR 固定长度字符串 最大长度2000 ...

  8. Oracle/MSSQL/Mysql 常用数据库的字段类型及大小

    Oracle/MSSQL/Mysql 常用数据库的字段类型及大小 ORACLE的数据类型 常用的数据库字段类型如下:   字段类型   中文说明   限制条件   其它说明   CHAR  固定长度字 ...

  9. mysql java datetime_Java向mysql数据库插入datetime类型数据实例(精)

    在Mysql数据库中日期跟时间有两种: 1.date类型,date类型也就是我们常见的储存yyyy-MM-dd类型的日期,它不能储存时间,也就是只能储存日期, 2.dateitme就是可以储存日期同时 ...

最新文章

  1. jupyter 魔法函数
  2. uLua中遇到的问题
  3. java核心api_java核心API
  4. Codeforces VK Cup 2015 A.And Yet Another Bracket Sequence(后缀数组+平衡树+字符串)
  5. OceanBase杨传辉:一体化架构的分布式数据库已成为企业级系统首选
  6. python123-Python123
  7. 文件读写: 二进制方式和文本方式的区别
  8. excel锁定行,锁定列,同时锁定行和列
  9. 卖出平仓是什么意思​?
  10. 红米k40pro一键root教程
  11. 技术人员成长路线感悟
  12. 学报格式和论文格式一样吗_发表学报论文格式有什么要求
  13. 深度学习网络结构大全
  14. 省钱兄外卖CPS小程序源码uniapp源码前端模版
  15. 学习笔记| AS入门(三) 布局篇
  16. 3.3 将列表[mo,deng,ge]和[1,2,3] 转换成[(mo,1),(deng,2),(ge,3)]
  17. 途中指定两点的所有简单路径
  18. 成功解决keil识别不到单片机芯片,下载不了程序
  19. 记一次 .NET 某工控自动化控制系统 卡死分析
  20. Macbook Pro 的 Touch Bar 中调节音量的键不能用的解决办法

热门文章

  1. [转贴]金庸的九家著名公司
  2. 大数据主要所学技术(简介)
  3. allennlp与pytorch版本匹配
  4. LDK3读书笔记(第三章:进程管理)
  5. 图书管理系统Java
  6. c语言将两幅bmp格式图片拼接图片
  7. YOLOv7默默更新了Anchor-Free | 无痛再涨1.4mAP
  8. pga是啥oracle,[讨论话题]我的PGA我作主----搞清楚什么是真正的PGA
  9. matlab 功率谱密度 汉宁窗_【转】功率谱密度相关方法的MATLAB实现
  10. 牛客网暑期ACM多校训练营(第八场)