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 分享