mysql学习--列类型的参数问题

夙愿已清 提交于 2020-03-07 21:13:38

一、整型系列

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年

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!