Mysql数据库的字段类型
一、主要分了三大类
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最大可能显示的数字个数,数值的位数小于指定的宽度时会由空格填充
例如:向test1
入id = 999999
的数据还是会成功.
2.3 char和vchar的区别
- char定长,vchar不定长,如同是定义char[10],vchar[10],存储abc这三个字符时,char存了abc后,剩下的7个长度用空格来填充,读取的时候用trim去除添加的空格,而vchar存的时候直接存abc,不补充空格
- char 的读取速度比vchar快,但占的空间较大,是用空间换取时间。
Mysql数据库的字段类型相关推荐
- MySQL数据库中有字段类型是日期,时间的插入语句处理
MySQL数据库中有字段类型是日期,时间的插入语句处理 什么是时间戳? TIMESTAMP是一种类型,具体的值:19990717080000 CURRENT_TIMESTAMP是什么意思? on up ...
- Mysql数据库的字段类型:
数据库的数据类型和字段属性: 1.数值 ①tinyint 十分小的数据 1个字节 ②smallint 较小的数据 2个字节 ③mediumint ...
- linux下查看mysql数据库的字段类型_系统运维|[小白技巧]如何在Linux上检查MySQL数据表的存储引擎类型...
提问: 我想要知道我的MySQL数据库是MyISAM还是Innodb类型.我该如何检查MySQL数据库表的类型? MySQl主要使用两种存储引擎:MyISAM 和 Innodb.MyISAM是非事务的 ...
- mysql数据库之字段类型
一.字符编码和配置文件 1.为了统一编码格式,防止乱码,需要在配置文件中进行编码配置 2.步骤: 1.复制原有的配置文件:my-default.ini 2.粘贴重命名产生新的配置文件:my.ini(必 ...
- MySQL数据库中字段类型与设计原则
字段类型的设计和选择 1.单表字段不宜过多 建议最多30个以内 字段越多,会导致性能下降,并且增加开发难度 2.使用小而简单的合适数据类型 a.字符串类型 固定长度使用char,非定长使用varcha ...
- mysql数据库常用字段类型_快速了解MySQL数据库常用字段类型
数字列类型 int.bigint.smallint.tinyint 数字列类型用于储存各种数字数据,如价格.年龄或者数量.数字列类型主要分为两种:整数型和浮点型.所有的数字列类型都允许有两个选 项:U ...
- 数据库mysql表常见字段大小_常用的数据库的字段类型及大小
Oracle/MSSQL/Mysql 常用数据库的字段类型及大小 ORACLE的数据类型 常用的数据库字段类型如下: 字段类型 中文说明 限制条件 其它说明 CHAR 固定长度字符串 最大长度2000 ...
- Oracle/MSSQL/Mysql 常用数据库的字段类型及大小
Oracle/MSSQL/Mysql 常用数据库的字段类型及大小 ORACLE的数据类型 常用的数据库字段类型如下: 字段类型 中文说明 限制条件 其它说明 CHAR 固定长度字 ...
- mysql java datetime_Java向mysql数据库插入datetime类型数据实例(精)
在Mysql数据库中日期跟时间有两种: 1.date类型,date类型也就是我们常见的储存yyyy-MM-dd类型的日期,它不能储存时间,也就是只能储存日期, 2.dateitme就是可以储存日期同时 ...
最新文章
- jupyter 魔法函数
- uLua中遇到的问题
- java核心api_java核心API
- Codeforces VK Cup 2015 A.And Yet Another Bracket Sequence(后缀数组+平衡树+字符串)
- OceanBase杨传辉:一体化架构的分布式数据库已成为企业级系统首选
- python123-Python123
- 文件读写: 二进制方式和文本方式的区别
- excel锁定行,锁定列,同时锁定行和列
- 卖出平仓是什么意思​?
- 红米k40pro一键root教程
- 技术人员成长路线感悟
- 学报格式和论文格式一样吗_发表学报论文格式有什么要求
- 深度学习网络结构大全
- 省钱兄外卖CPS小程序源码uniapp源码前端模版
- 学习笔记| AS入门(三) 布局篇
- 3.3 将列表[mo,deng,ge]和[1,2,3] 转换成[(mo,1),(deng,2),(ge,3)]
- 途中指定两点的所有简单路径
- 成功解决keil识别不到单片机芯片,下载不了程序
- 记一次 .NET 某工控自动化控制系统 卡死分析
- Macbook Pro 的 Touch Bar 中调节音量的键不能用的解决办法