Mysql数据类型详解

article/2025/9/27 8:09:55

在这里插入图片描述
在这里插入图片描述

1、整数类型,包括TINYINT、SMALLINT、MEDIUMINT、INT、BIGINT,分别表示1字节、2字节、3字节、4字节、8字节整数。

任何整数类型都可以加上UNSIGNED属性,表示数据是无符号的,即非负整数。

长度:整数类型可以被指定长度,例如:INT(11)表示长度为11的INT类型。长度在大多数场景是没有意义的,它不会限制值的合法范围,只会影响显示字符的个数,而且需要和UNSIGNED ZEROFILL属性配合使用才有意义。

例子,假定类型设定为INT(5),属性为UNSIGNED ZEROFILL,如果用户插入的数据为12的话,那么数据库实际存储数据为00012

2、实数类型,包括FLOAT、DOUBLE、DECIMAL。

DECIMAL可以用于存储比BIGINT还大的整型,能存储精确的小数。
而FLOAT和DOUBLE是有取值范围的,并支持使用标准的浮点进行近似计算。

计算时FLOAT和DOUBLE相比DECIMAL效率更高一些,DECIMAL你可以理解成是用字符串进行处理。

3、字符串类型,包括VARCHAR、CHAR、TEXT、BLOB

VARCHAR用于存储可变长字符串,它比定长类型更节省空间。
VARCHAR使用额外1或2个字节存储字符串长度。列长度小于255字节时,使用1字节表示,否则使用2字节表示。
VARCHAR存储的内容超出设置的长度时,内容会被截断。

CHAR是定长的,根据定义的字符串长度分配足够的空间。
CHAR会根据需要使用空格进行填充方便比较。
CHAR适合存储很短的字符串,或者所有值都接近同一个长度。
CHAR存储的内容超出设置的长度时,内容同样会被截断。

使用策略:
对于经常变更的数据来说,CHAR比VARCHAR更好,因为CHAR不容易产生碎片。
对于非常短的列,CHAR比VARCHAR在存储空间上更有效率。
使用时要注意只分配需要的空间,更长的列排序时会消耗更多内存。
尽量避免使用TEXT/BLOB类型,查询时会使用临时表,导致严重的性能开销。

4、枚举类型(ENUM),把不重复的数据存储为一个预定义的集合。
有时可以使用ENUM代替常用的字符串类型。
ENUM存储非常紧凑,会把列表值压缩到一个或两个字节。
ENUM在内部存储时,其实存的是整数。
尽量避免使用数字作为ENUM枚举的常量,因为容易混乱。
排序是按照内部存储的整数

5、日期和时间类型,尽量使用timestamp,空间效率高于datetime,
用整数保存时间戳通常不方便处理。

本文转载自thinkwon


http://chatgpt.dhexx.cn/article/YEIWFmNa.shtml

相关文章

mysql成绩是什么数据类型_mysql数据类型

1、整型 取值范围如果加了unsigned,则最大值翻倍,如tinyint unsigned的取值范围为(0~256)。 int(m)里的m是表示SELECT查询结果集中的显示宽度,并不影响实际的取值范围,没有影响到显示的宽度,不知道这个m有什么用。 2、…

最全MySQL数据类型详解

一、概述 1、MySQL中的数据类型 2、常见数据类型的属性 二、各种数据类型精讲 1、整数类型 1.1 整数类型介绍 整数类型一共有 5 种,包括 TINYINT、SMALLINT、MEDIUMINT、INT(INTEGER)和 BIGINT。它们的区别如下表所示: 1.2…

mysql住址数据类型_MySql数据类型

MySQL中定义数据字段的类型对你数据库的优化是非常重要的。 MySQL支持多种类型,大致可以分为三类:数值、日期/时间和字符串(字符)类型。 数值类型 MySQL支持所有标准SQL数值数据类型。 这些类型包括严格数值数据类型(INTEGER、SMALLINT、DECIMAL和NUMERI…

不全?MySQL数据类型精讲,定点日期枚举文本字符串,json二进制,空间,选择建议,完整详细可收藏

文章目录 1. MySQL中的数据类型2. 整数类型3. 浮点数类型4. 定点数类型5. 位类型:BIT6. 日期与时间类型7. 文本字符串类型8. ENUM类型9. SET类型10. 二进制字符串类型11. JSON 类型12. 空间类型13. 选择建议 1. MySQL中的数据类型 常见数据类型的属性,如…

MySQL的10种常用数据类型

MySQL的数据类型 常用的数据类型有: 整型(xxxint)位类型(bit)浮点型(float和double、real)定点数(decimal,numeric)日期时间类型(date,time,datetime,year)字符串&…

定点数除法

定点数除法 一,手工除法运算方法二,原码除法运算方法三,原码加/减交替除法运算方法(不恢复余数法)四,原码加/减交替除法实现逻辑五,阵列除法 一,手工除法运算方法 图 1 图1 图1 二&…

浮点数与定点数理解、定点数转浮点数相互转换

1、浮点数理解 在平常的代码编写中大家经常用到float 32、double 64等,但是否有深入的去了解一下这类数据是怎么表示的呢?今天我们就去学习浮点数的表示方法,以及其优缺点。 首先浮点数为什么叫浮点数呢?因为浮点数的小数点的位…

定点数的几种表示形式

第二章 数制与编码 2.1 进制之间的转换 掌握:二进制、八进制、十六进制(末位加H表示)、十进制及彼此之间的转换; 问:小数怎么转换? 十进制转二进制:乘以权值再累加,如小数点后第一位的权值是2^(-1) 二进…

计算机中定点数表示方法练习

1【单选题】针对8位二进制数,下列说法中正确的是 。(5.0分) A、-127的补码为10000000 B、-127的反码等于0的移码 C、1的移码等于-127的反码 D、0的补码等于-1的反码 正确答案: B 2【单选题】若某数x的真值为-0.1010,在计算机中该数表示为1.0…

定点数的表示和运算

本文主要介绍以下几方面知识: 定点数的表示(无符号数、有符号数)移位运算(原码、反码、补码)加减运算(原码加减、补码加减)乘法运算(原码乘法、补码乘法)除法运算&#x…

进制以及浮点数和定点数

文章目录 一,进制(1)全国各地最熟悉也最习惯的进制--十进制数1.十进制2.基数3.十进制数的权位展开式4.十进制权位展开式的理解5.十进制对于计算机的局限 (2)计算机所能理解的进制--二进制数1.二进制2.数据存储3.常见信…

定点数的乘除运算

定点数的乘除运算 定点数的乘法运算原码一位乘法手算模拟补码一位乘法(Booth算法) 定点数的除法法运算原码除法运算恢复余数法不恢复余数法 补码除法运算(加减交替法)总结 定点数的乘法运算 在计算机中,乘法运算由累加…

定点数的加减法

文章目录 1.补码加法1.1 补码加法公式1.2 补码加法公式证明 2.补码减法3.溢出概念与检测方法3.1 溢出的概念3.2 溢出的检测方法 参考文献 数值运算的核心是指加、减、乘、除四则算术。由于计算机中的数有定点和浮点两种表示形式,因此相应有定点数的运算和浮点数的运…

定点数类型

正因为用浮点数表示小数可能会有不精确的情况,在一些情况下我们必须保证小数是精确的,所以设计MySQL的大叔们提出一种称之为定点数的数据类型,它也是存储小数的一种方式: 其中: M表示该小数最多需要的十进制有效数字个…

定点数的表示

计算机中常用的数据表示格式有两种,一是定点格式,二是浮点格式。所谓定点数和浮点数,是指在计算机中一个数的小数点的位置是固定的还是浮动的:如果一个数中小数点的位置是固定的,则为定点数;如果一个数中小…

定点数运算

reference: http://wenku.baidu.com/link?urlnUzHmqrtKkQ4fOfUb2SW7hBEGS47wlJEw1DS6uW3U3onryAWk-XWlkLHwd3tKbxhoFYDzeDEd3cjYr5ww-MKgpTP_lNYLkjwpXuatw11ply 原补码关系,参考:http://blog.csdn.net/limanjihe/article/details/52440638 补码的设计目的:   …

定点数的表示方法

文章目录 1.定点数的表示形式2.定点数的原码、反码与补码3.定点小数注意事项参考文献 计算机中数值的表示有两种形式,一是定点数(Fixed-point Number),二是浮点数(Floating-point Number)。 1.定点数的表示…

定点数(fixed-point number)的运算

定点数的运算 1. 定点数2. 定点数加减运算3. 定点数加减运算的溢出判断3.1 用一位符号位判断溢出3.2 用两位符号位判断溢出3.3 最高位和次高位判断溢出 4. 乘法运算4.1 分析笔算乘法4.2 笔算乘法的改进4.3 图示4.4 硬件配置4.5 表格示意图 5. 除法运算5.1 分析笔算除法5.2 笔算…

[计算机组成原理]2-4、定点数详解

定点数详解 看笔记一定要心静,慢慢来不急。 定点数解释为小数点固定的数。 我们平常使用的数字大部分都属于定点数。比如1.0;110;192.168等等。这么说可能我们对定点数还是没有什么概念,毕竟没有参照物,那么与定点数…

Java枚举类实现

一、枚举类的特点 1.类的对象只有有限个,且为静态常量 2.当需要定义一组常量时,强烈建议使用枚举类 二、如何定义枚举类 jdk1.5之前:自定义枚举类 jdk1.5 :可以使用enum关键字来定义枚举类 2.1自定义枚举类实现: package enumte…