MySQL的字段類型
我們擁有10余年網(wǎng)頁設(shè)計(jì)和網(wǎng)站建設(shè)經(jīng)驗(yàn),從網(wǎng)站策劃到網(wǎng)站制作,我們的網(wǎng)頁設(shè)計(jì)師為您提供的解決方案。為企業(yè)提供成都做網(wǎng)站、成都網(wǎng)站建設(shè)、微信開發(fā)、小程序設(shè)計(jì)、手機(jī)網(wǎng)站制作設(shè)計(jì)、HTML5、等業(yè)務(wù)。無論您有什么樣的網(wǎng)站設(shè)計(jì)或者設(shè)計(jì)方案要求,我們都將富于創(chuàng)造性的提供專業(yè)設(shè)計(jì)服務(wù)并滿足您的需求。
char(length)
char類型最大長度是255個(gè)字符。當(dāng)插入到表中的字符串的長度小于length時(shí)候,將給字段右邊不夠的部分用空格填補(bǔ)。
varchar(length)
varchar的最大長度是255個(gè)字符。varchar和char幾乎一樣,區(qū)別在于varchar是變長的類型,不會(huì)填補(bǔ)空格。
tinytext
tinytext最大長度是255字符。
text
text最大長度是65535(2的17次方)字符。
mediumtext
mediumtext最大長度是16777215個(gè)字符。
longtext
longtext最大長度是4294976259個(gè)字符。
(tinytext,text,mediumtext,longtext這四種類型,都是可邊長字段類型,與varchar一樣,只是最大長度不同而已)
VARCHAR,BLOB和TEXT類型是變長類型,對(duì)于其存儲(chǔ)需求取決于列值的實(shí)際長度,而不是取決于類型的最大可能尺寸。
例如,一個(gè)VARCHAR(10)列能保存最大長度為10個(gè)字符的一個(gè)字符串,實(shí)際的存儲(chǔ)需要是字符串的長度,加上1個(gè)字節(jié)以記錄字符串的長度。對(duì)于字符串’abcd’,長度是4而存儲(chǔ)要求是5個(gè)字節(jié)。
BLOB和TEXT類型需要1,2,3或4個(gè)字節(jié)來記錄列值的長度,這取決于類型的最大可能長度。
VARCHAR需要定義大小,有255的最大限制;TEXT則不需要。如果你把一個(gè)超過列類型最大長度的值賦給一個(gè)BLOB或TEXT列,值被截?cái)嘁赃m合它。
您如果想要判斷類型的話,可以進(jìn)行轉(zhuǎn)換 比如
select to_char(name) from table_name; ---這樣就把您想要的數(shù)據(jù)NAME列轉(zhuǎn)換為字符型;
select to_num(name) from table_name; ---這樣就把您想要的數(shù)據(jù)NAME列轉(zhuǎn)換為數(shù)字型;
您所說的自動(dòng)判斷 貌似沒有
MySQL? SHOW COLUMNS FROM 表名稱
舉個(gè)栗子:
SHOW COLUMNS FROM ldcode ;
結(jié)果輸出如圖
pg? SELECT * FROM INFORMATION_SCHEMA.COLUMNS T WHERE T.TABLE_CATALOG='用戶角色名' AND TABLE_NAME='表名稱'
舉個(gè)栗子:
SELECT table_schema,table_name,column_name,udt_name,character_maximum_length,data_type,ordinal_position
FROM information_schema.columns t
WHERE t.table_catalog='actuarial'
AND table_name ='ldcode'
order by ordinal_position ;
結(jié)果輸出如圖
執(zhí)行 sql語句 “show columns from tbname”?tbname 是要獲取的表的表名
會(huì)得到 一個(gè)結(jié)果集 包含了字段名 ?數(shù)據(jù)類型 ?是否可以為空 ?是否主鍵 默認(rèn)值 是否自增 等信息 要改足夠使用了
text字段類型是允許存放65535字節(jié)內(nèi)的文字字符串字段類型。
longtext字段類型是允許存放2147483647字節(jié)內(nèi)的文字字符串字段類型。
mediumtext字段類型是允許存放16777215字節(jié)內(nèi)的文字字符串字段類型。
mysql中text,longtext,mediumtext字段類型區(qū)別為:字節(jié)限制不同、I/O不同、行遷移不同。
一、字節(jié)限制不同
1、text字段類型:text字段類型的字節(jié)限制為65535字節(jié)。
2、longtext字段類型:longtext字段類型的字節(jié)限制為2147483647字節(jié)。
3、mediumtext字段類型:mediumtext字段類型的字節(jié)限制為16777215字節(jié)。
二、I/O不同
1、text字段類型:text字段類型比longtext、mediumtext字段類型更不容易造成多余的I/O。
2、longtext字段類型:longtext字段類型比text、mediumtext字段類型更容易造成多余的I/O。
3、mediumtext字段類型:mediumtext字段類型比text字段類型更容易造成多余的I/O,比longtext字段類型更不容易造成多余的I/O。
三、行遷移不同
1、text字段類型:text字段類型比longtext、mediumtext字段類型更容易進(jìn)行行遷移。
2、longtext字段類型:longtext字段類型比text、mediumtext字段類型更不容易進(jìn)行行遷移。
3、mediumtext字段類型:mediumtext字段類型比text字段類型更不容易進(jìn)行行遷移,比longtext字段類型更容易進(jìn)行行遷移。
elect a.name as [column],b.name as type
from syscolumns a,systypes b
where a.id=object_id('表名') and a.xtype=b.xtype
把“表名”替換成你要查看字段類型的表名,比如你要查看sysobjects表的各字段類型那么就是
select a.name as [column],b.name as type
from syscolumns a,systypes b
where a.id=object_id('sysobjects') and a.xtype=b.xtype
另外可以通過存儲(chǔ)過程
exec sp_help 表名