mysql 数据类型
数值类型
(整型/小数都包含正负符号这个概念,signed (默认)/ unsigned )
整型:
bit(m), tinyin, smalint, mediumint, int, bigint
bit(m): 位进制数据,用的少
tinyin: 微型, signed: -128/127 unsigned:0-255
smalint: 小型,signed:-265/265 unsigned:0-2^16
mediumint: 中型, signed:-2^23/2^23 unsigned:0-2^24
int: 整型, signed:-2^31/2^31 unsigned 0-2^31
bigint: 大型, signed:-2^63/2^63 unsigned:0-2^64
小数型:
float, double, decimal[M, D]
float[M, D] :会自动截取小数点后4位; M 总长度,D小数位数
decimal[M, D],支持更加精确的小数位,M是小数位的总数,D是小数点(标度)后面的位数
2.1. M 最大为65,默认: 10
2.2. D最大为30,默认:0
这三种表示的数据量很大,得用到科学计数法
文本类型
char, varchar, text, longtext
char : char(size) size 表示 253 个字符,
varchar:varchar(size) size表示 2^16-1 个字节
text: 2^16-1字节
mediumtext: 2^24 字节
longtext: 2^32-1字节
注意区分字符和字节的概念
char (size) varchar (size): 它们的size表示的字符,是会编码格式变化的,且必须指定长度 比如:
char 是定长,size多大,分配的空间就多大,会造成空间浪费
varchar 是变长,size多大,分配的空间按实际占用的空间来分配 ,占用的空间还需加上(1-3)个字节,用于存放自身内容长度(varchar 的特性)
utf8 1字符 == 3字节
gbk 1字符 == 2字节
字符 | 字节 |
---|---|
一个数字,字母,或者汉字 | byte |
二进制类型
bolb, longbolb
日期类型
year, date, time, datetime, timestamp
year: YYYY
date: YYYY-MM-DD
time: HH:mm:ss
datetime: YYYY-MM-DD HH:mm:ss
timestamp:时间戳
不能够满足需求的情况下,尽量选择占用空间小的类型
评论区