tinyint(小整型):一个字节数据库
int(整型): 四个字节。注意:int的 宽度指的是显示的宽度,与存储无关spa
有符号: -2147483648 ~ 2147483647 无符号:0~ 4294967295
bigint(大整形):八个字节code
有符号:-9223372036854775808 ~ 9223372036854775807 无符号: 0~ 18446744073709551615
float:在位数比较短的状况下不精准(**** 数值越大,越不许确 ****)blog
double:在位数比较长的状况下不精准(**** 数值越大,越不许确 ****)ci
decimal:若是是小数,则推荐使用decimalrem
由于精准,内部原理是以字符串的形式去存字符串
最后: 整形类型,其实没有必要指定显示宽度,使用默认的就oktable
char:
固定长度,不够就用空格凑够固定长度存放起来,
浪费空间,可是存储速度快
varchar:
不固定长度,计算出待存放数据的长度,
精准,节省空间,存取速度慢
datetime:class
2017-09-06 10:30:22原理
date:
2017-09-06
time:
10:30:22
year:
2017
timeatamp:
和datatime是同样的,就是支持的范围datatime的大
使用场景:
单选框,多选框
enum枚举:
规定一个范围:这个范围能够有多个,可是为该字段传值时,只能取规定范围内的其中一个
enum若是你不传值,默认是第一个值,或者为NUll
set集合:
规定一个范围:这个范围能够有多个,可是为该字段传值时,能够取规定范围内的一个或多个
----------枚举和集合----------- create table stu1( id int primary key auto_increment, name char(5),
sex enum('male','female'), #enum 表明枚举类型 hobbies set('eat','play','study','coding') #set 表明集合类型 );
insert into stu1(name,sex,hobbies) values('haiyan','none','dsfdg');
select * from stu1; #若是设置了sex是枚举类型,就的从设定的里面选其中的一个存 insert into stu1(name,sex,hobbies) values('haiyan','female','play,study'); select * from stu1; #若是设置了hobbies是集合类型,就得从设定的里面选其中一个或者多个值来存