一、整型系列
int (N) unsigned zero fill
N和zerofill搭配使用,意思是补0的宽度,(身份证/学号)
unsigned表示存储的数据是正数,没有符号
插入snum是12的一行数据
二、浮点/定点型
float和decimal的区别:定点decimal是把一个数的小数部分和整数部分分开存储,比float更加更加精确。像账户这样的敏感数字,建议用decimal存储。
float(A,B)
A:精度,小数的总位数
B:标度,小数点右边的个数
float(6,2):-9999.99~9999.99
mysql默认浮点数有符号,无符号时须定义
浮点数所占字节:如果标度<24,占据4个字节,否则占8个字节
三、字符串型
1、char和varchar
char(M):定长,如果参数是M,即宽度是M,实际存储的字符i<=M,但是就算是存储的字符小于M,字符实际所占据的空间也是M。当不够M个字符时,内部用空格补齐,取出时再把右侧空格删掉,这意味这右侧本身有空格,取出时会丢失。
varchar(M):变长,如果参数是M,则可以存储的字符是M。如果实际存的字符是i,则实际占据的空间是:i字符+(1~2)个字节。多余的字节用来标志字符长度。
char(M)比varchar(M)查询速度更快
char和varchar限制的是字符,不是字节,即char(2) utf8,能存两个utf8字符,比如‘中国’。
2、text
text无默认值,可以存比较大的文本段,但是搜索速度稍慢,因此,如果不是特别大的文本内容,建议用char和varchar代替。
3、blob
blob是二进制类型,用来存储图像、音频等二进制信息
blob在于防止因为字符集的问题导致的信息流失
四、时期&时间型
date :标准格式是YYYY-MM-DD
范围是1000-01-01到9999-12-31
设置是默认值为‘1000-01-01’
create table t4(
name varchar(20) not null default '',
birth date not null default '1000-01-01'
)engine myisam charset utf8;
insert into t4 values ('alyssa','1997-08-01');
time:标准格式是HH:MM:SS
范围是-838:59:59到838:59:59
datetime:标准格式是YYYY-MM-DD HH:MM:SS
范围是1000-01-01 00:00:00到9999-12-31 23:59:59
year:标准格式YYYY
范围是1901~2155,还可以存0000年
来源:CSDN
作者:alyssa_yu
链接:https://blog.csdn.net/alyssa_yu/article/details/104716207