mysql笔记3(数据类型)

本文详细介绍了MySQL中的整数类型(如TINYINT、INT等)、字符串类型(包括CHAR、VARCHAR等)、BLOB和TEXT类型、ENUM类型以及日期和时间类型(如DATETIME、TIMESTAMP)。此外,还解释了不同类型的特点及应用场景。

整数类型

TINYINT、SMALLINT、MEDIUMINT、INT、BIGINT

8 16 24 32 64

可选属性:UNSIGNED

对字符宽度的定义,如INT(11),这并不会限制值的范围,只是规定了客户端显示字符的个数,在存储的时候,INT(1)和INT(21)是一样的

可以使用DECIMAL数据类型来存储更大或更加精确的数据

字符串类型

char 或 varchar的存储依赖于不同存储引擎的实现

VARCHAR使用变长字符串,能够节约空间,但由于行的长度可变,可能更新的开销会比较大

char适用于存储较短的字符串,另外对于char类型,尾部空格会被剔除。

BINARY和VARBINARY是以上两个类型的兄弟类型,但存储的是二进制字符串,并且空格使用'/0'存储而不是空格或截断。

BLOB和TEXT类型

BLOB保存的是二进制,没有字符集和排序规则,而TEXT则有字符集和排序规则

ENUM类型

使用ENUM类型的列可以存储65535个不同字符串,MySQL内部把每个值都保存为整数,以标识值在列表中的位置,并且还保留了一份查找表,枚举类型列的排序是按照数字排序而非字符顺序;ENUM的字符串表是固定的,添加/删除字符串只能通过使用alter table

日期和时间类型

DATETIME:1001年-9999年,精度为秒,封装在一个整数中,使用8字节存储空间

TIMESTAMP:保持自1970年1月1日午夜以来的秒数,使用4字节存储空间,只能保存1970-2038年,提供FROM_UNIXTIME(),将时间戳转换为日期,提供函数UNIX_TIMESTAMP(),将日期转换为时间戳。

另外,除非显式的指定时间戳,否则在插入时或更新时,timestamp字段都会被更新成当前时间

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值