mysql 列类型

列类型
整型 tinyint,smallint,mediumint,int,bigint (可选参数unsigned ,(m,zerofill,结合使用才有意义))
浮点型 float(可选参数d,m) decimal(可选参数d,m)
字符串型 char(m) varchar(m) text-文本类型
日期时间类型 date,time,datatime,year

给表追加一个列,列类型为无符号tinyint

alter table [vg] add [id] tinyint unsigned not null default 0;

表中可存入255的id

insert into vg  (sname,id)  values  ('test',255);

#分析M参数

alter table vg add age1 tinyint(1) not null default 0;  insert into vg class (sname,age1) values ('M1',3);  insert into vg (sname,age1) values ('agin M',99);

#这时候M是没有意义的

select * from vg;  +--------+-----+-------+------+------+  | sname | age | socre | test | age1 |  +--------+-----+-------+------+------+  | 刘备 | 28 | 0 | 0 | 0 |  | 张飞 | 0 | -1 | 0 | 0 |  | test | 0 | 0 | 255 | 0 |  | M1 | 0 | 0 | 0 | 3 |  | agin M | 0 | 0 | 0 | 99 |  +--------+-----+-------+------+------+

#M必须和zerofill配合才有意义

增加列

alter table vg add snum smallint(5) zerofill not null default 0;  insert into vg (sname,snum) values ('吕布',1);  insert into vg (sname,snum) values ('廖化',15);
select * from vg;  +--------+-----+-------+------+------+-------+  | sname | age | socre | test | age1 | snum |  +--------+-----+-------+------+------+-------+  | 刘备 | 28 | 0 | 0 | 0 | 00000 |  | 张飞 | 0 | -1 | 0 | 0 | 00000 |  | test | 0 | 0 | 255 | 0 | 00000 |  | M1 | 0 | 0 | 0 | 3 | 00000 |  | agin M | 0 | 0 | 0 | 99 | 00000 |  | 吕布 | 0 | 0 | 0 | 0 | 00001 |  | 廖化 | 0 | 0 | 0 | 0 | 00015 |  +--------+-----+-------+------+------+-------+

#比较上一个显示,能看出M和zerofill结合的意义
#总结:M表示补0的宽度,和zerofill结合使用才有意义

char(M) 定义之后每个列的存储长度是固定的,M个固定编码(utf8,gbk)长度 (查询速度比较快,造成一定资源浪费)
类比于:不管远近,投币一元的公交,对短途造成浪费

varchar(M) 长度可以是(0–类比于:分段收费,需要增加一个售票员记录远近收费

以上就是mysql 列类型的内容,更多相关内容请关注PHP中文网(www.php.cn)!

© 版权声明
THE END
喜欢就支持一下吧
点赞15 分享