【MySQL】近2万字,138张图解,我终于把mysql总结完整了,建议收藏(11)
下面是所有数据类型的汇总
整数在整数类型中 , 按照取值范围和存储方式的不同 , 分为
- TINYINT, 占用 1 字节
- SMALLINT , 占用 2 字节
- MEDIUMINT , 占用 3 字节
- INT、INTEGER , 占用 4 字节
- BIGINT , 占用 8 字节
还记得我们上面的建表语句么
我们一般会在 SQL 语句的数据类型后面加上指定长度来表示数据类型许可的范围 , 例如
int(7)
表示 int 类型的数据最大长度为 7 , 如果填充不满的话会自动填满 , 如果不指定 int 数据类型的长度的话 , 默认是 int(11) 。
我们创建一张表来演示一下
create table test1(aId int bId int(5));
/* 然后我们查看一下表结构 */
desc test1;
整数类型一般配合 zerofill 来使用 , 顾名思义 , 就是用 0 进行填充 , 也就是数字位数不够的空间使用 0 进行填充 。
分别修改 test1 表中的两个字段
alter table test1 modify aId int zerofill;
alter table test1 modify bId int(5) zerofill;
然后插入两条数据 , 执行查询操作
如上图所示 , 使用zerofill 可以在数字前面使用 0 来进行填充 , 那么如果宽度超过指定长度后会如何显示?我们来试验一下 , 向 aId 和 bId 分别插入超过字符限制的数字
会发现 aId 已经超出了指定范围 , 那么我们对 aId 插入一个在其允许范围之内的数据
会发现 , aId 已经插进去了 , bId 也插进去了 , 为什么 bId 显示的是 int(5) 却能够插入 7 位长度的数值呢?
所有的整数都有一个可选属性 UNSIGNED(无符号) , 如果需要在字段里面保存非负数或者是需要较大上限值时 , 可以使用此选项 , 它的取值范围是正常值的下限取 0, 上限取原值的 2 倍 。 如果一个列为 zerofill, 会自动为该列添加 UNSIGNED 属性 。
除此之外 , 整数还有一个类型就是 AUTO_INCREMENT , 在需要产生唯一标识符或者顺序值时 , 可利用此属性 , 这个属性只用于整数字符 。 一个表中最多只有一个 AUTO_INCREMENT 属性 , 一般用于自增主键 , 而且 NOT NULL , 并且是 PRIMARY KEY 和 UNIQUE 的 , 主键必须保证唯一性而且不为空 。
小数小数说的是啥?它其实有两种类型;一种是浮点数类型 , 一种是定点数类型;
浮点数有两种
- 单精度浮点型 - float 型
- 双精度浮点型 - double 型
浮点数和定点数都可以使用 (MD) 的方式来表示 , M 表示的就是 「整数位 + 小数位」 的数字 , D 表示位于 . 后面的小数 。 M 也被称为精度, D 被称为标度 。
下面通过示例来演示一下
首先建立一个 test2 表
CREATE TABLE test2 (aId float(62) default NULL bId double(62) default NULLcId decimal(62) default NULL)
然后向表中插入几条数据
insert into test2 values(1234.121234.121234.12);
这个时候显示的数据就是
然后再向表中插入一些约束之外的数据
insert into test2 values(1234.1231234.1231234.123);
发现插入完成后还显示的是 1234.12 , 小数位第三位的值被舍去了 。
- 产业气象站|“不敢自诩为MySql专家,岂能错过这本神书”,MySql领域经典之作
- 「MySQL」很多人在安装数据库时,都遇到过这个问题
- Java架构师Saber|90%MySQL问题全解,技术老兵十年专攻MySQL:编写了763页核心总结
- 中国IDC圈|具备自动扩容等超高性能,华为云MySQL混合SSD盘实例发布
- MySQL@中国首富又换人! 新首富比马云多283亿, 拼多多创始人成第三
- #MySQL#RabbitMQ 的使用场景,安装,爬坑必备。