MySQL中的基本数据类型

目录

一、数值类型

二、字符串类型

三、时间类型


一、数值类型

1、float、double、decimal?

float、double、decimal都是用来表示小数的。

大家都看到了,这三个数据类型很特别,后面都跟着M,D

此MD,非彼MD。

M的意思是精度

D的意思是标度


2、M和D什么意思?

举个例子(定义一列数据):

test 是数据的名字,具体语法先不管。

3对应的就是M

1对应的就是D

此时定义的这种数据只能够存储:

12.3、11.1、23.1这类数据。

也就是说:

D是小数点后有几位;

M是数字的总位数


3、M和D有什么用?

因为规定了精度,所以可以大致测算数据的最大容量是多少,这个开企业开发中是尤为重要的数据。

其次,在设置精度后,MySQL会“勤俭持家”,只会分配给定大小的内存给到数据。

比如:

12.1就只会分配12.1存储的最大占用内存给到数据;

1112223333.1212 也会分配其存储的最大占用内存给到数据;

可以起到节省内存的作用。

上述数据类型的大小范围:

大小范围都是根据最大占用内存用二进制换算出来的。

比如tinyint占用内存1个字节,也就8个比特位,那么最多可以表示2^8-1个数字。


上述数据类型都是含有符号的数据类型,也就是含有正负号。

MySQL中也有其对应的无符号类型。(unsign,和C语言中的那个概念一样的)

但是强烈不推荐用!

原因是:

在由于无符号类型的存储逻辑,在对无符号类型进行计算的时候,可能会出现溢出,导致程序后序运行逻辑出错,造成不可估量的后果。

就连MySQL官方文档中也说过,不建议使用无符号类型,甚至会在今后的版本中不在支持无符号数据。

二、字符串类型

注:

1) MySQL中没有字符类型,只有字符串类型。

也因此在表示字符串时,可以用单引号,也可以用双引号。

但,这在含有字符类型的编程语言中是不允许的。例如java

2)varchar和char括号中的SIZE代表可以填入的最大字符串长度。

但SIZE也不能超过两种数据类型可以表示的范围。

1、可变长

可变长(varchar)就类似于JAVA中的可变长二维数组。

意思是,可以根据输入的数据长度,分配给数据相应大小的内存,这样可以节省空间。

但是定长(char)不行,即使储存一个字符,‘s’,它分配的内存也是255个字节。


2、blob

带blob的都是二进制数据,很少用,因为效率不高且不方便管理。
对于二进制数据,
一般会采用专门的文件服务器进行存储

三、时间类型

data、time、datatime用的相对较多一些。

注意少用timestamp,因为它会在2038年失效。

  • 19
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MySQL数据类型用于定义数据的存储格式和范围。了解MySQL数据类型数据库设计和数据操作的基础。下面是MySQL常见的数据类型及其基本概念: 1. 数值型(Numeric Types): - 整数类型(INT、BIGINT、TINYINT等):用于存储整数值,可以指定有符号或无符号。 - 小数类型(DECIMAL、FLOAT、DOUBLE等):用于存储带有小数部分的数字。 2. 字符型(Character Types): - 字符串类型(CHAR、VARCHAR、TEXT等):用于存储字符序列,具有不同的长度限制和存储方式。 - 二进制类型(BINARY、VARBINARY、BLOB等):用于存储二进制数据(如图像、音频等)。 3. 日期与时间型(Date and Time Types): - 日期类型(DATE):用于存储年月日,格式为'YYYY-MM-DD'。 - 时间类型(TIME):用于存储时分秒,格式为'HH:MM:SS'。 - 日期时间类型(DATETIME、TIMESTAMP):用于存储年月日时分秒。 4. 布尔型(Boolean Type): - 布尔类型(BOOL、BOOLEAN):用于存储逻辑值,包括TRUE和FALSE。 5. 枚举型与集合型(Enumeration and Set Types): - 枚举类型(ENUM):用于存储一组预定义的值之一。 - 集合类型(SET):用于存储一组预定义的值之多个组合。 6. 其他特殊类型: - 自动增长类型(AUTO_INCREMENT):用于在插入数据时自动生成唯一的递增值。 - JSON类型:用于存储和操作JSON格式的数据。 这些数据类型具有不同的存储需求和数据范围,选择合适的数据类型对于数据库设计和性能优化非常重要。在创建表时,需要仔细选择适当的数据类型以确保数据的准确性和高效性。 此外,MySQL还支持用户自定义数据类型(User-defined Types)和空间数据类型(Spatial Data Types),用于满足特定需求,如存储地理位置信息等。 注意,在实际使用,还应考虑存储需求、数据完整性、查询效率等因素来选择适当的数据类型。详细的数据类型列表和使用说明可以参考MySQL官方文档。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值