1、mysql中修改字段長度:
創(chuàng)新互聯(lián)建站主營萊山網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營網(wǎng)站建設(shè)方案,App定制開發(fā),萊山h5小程序制作搭建,萊山網(wǎng)站營銷推廣歡迎萊山等地區(qū)企業(yè)咨詢
ALTER?TABLE?tb_article?MODIFY?COLUMN?NAME?VARCHAR(50);??
這里的tb_article為表名,NAME為字段名,50為修改后的長度
2、mysql修改字段類型:
ALTER?TABLE?tb_article?MODIFY?COLUMN?NAME?CHAR(50);??
修改后,name字段類型由varchar變?yōu)閏har
3、mysql中增加列:
ALTER?TABLE?tb_article?ADD?COLUMN?name1?VARCHAR(30);??
4、mysql中修改列 :
ALTER?TABLE?tb_article?CHANGE?name1?name2?VARCHAR(30);?
5、mysql中刪除列 :
ALTER?TABLE?tb_article?DROP?COLUMN?name2;??
1,長度的區(qū)別,char范圍是0~255,varchar最長是64k,如果遇到了大文本,考慮使用text,最大能到4G。
2,效率來說基本是charvarchartext。
3,char和varchar可以有默認值,text不能指定默認值。
直接寫alter table語句修改字段類型及長度,或者在數(shù)據(jù)庫連接客戶端右鍵修改表來設(shè)置字段長度。
mysql varchar(50) 不管中文 還是英文 都是存50個的
MySQL5的文檔,其中對varchar字段類型這樣描述:varchar(m) 變長字符串。M 表示最大列長度。M的范圍是0到65,535。(VARCHAR的最大實際長度由最長的行的大小和使用的字符集確定,最大有效長度是65,532字節(jié))。
為何會這般變換?真是感覺MySQL的手冊做的太不友好了,因為你要仔細的繼續(xù)往下讀才會發(fā)現(xiàn)這段描述:MySQL 5.1遵從標準SQL規(guī)范,并且不刪除VARCHAR值的尾部空格。VARCHAR保存時用一個字節(jié)或兩個字節(jié)長的前綴+數(shù)據(jù)。如果VARCHAR列聲明的長度大于255,長度前綴是兩個字節(jié)。
好了,貌似懂了一點。但具體他說的長度大于255時使用2個字節(jié)長度前綴,小學減法題:65535 - 2 = 65533啊。不知道這些大牛如何計算的,暫且保留疑問吧?
注:我測試了一下使用UTF8編碼,varchar的最大長度為21854字節(jié)。
在mysql 5.0.45版本,數(shù)據(jù)庫編碼utf8下進行測試:varchar最長定義為21785。也就是說不論字母、數(shù)字、漢字,只能放21785個。
推想:varchar字節(jié)最大65535,utf8編碼一個字符3個字節(jié)65535/3=21785。
可以設(shè)置的.
MySQL有幾種數(shù)據(jù)類型可以限制類型的"長度",有CHAR(Length)、VARCHAR(Length)、TINYINT(Length)、SMALLINT(Length)、MEDIUMINT(Length)、INT(Length)、BIGINT(Length)、FLOAT(Length, Decimals)、DOUBLE(Length, Decimals)和DECIMAL(Length, Decimals)。
然而,這些數(shù)據(jù)類型的長度,并不是都指數(shù)據(jù)的大小。具體說就是:
(1)CHAR、VARCAHR的長度是指字符的長度,例如CHAR[3]則只能放字符串"123",如果插入數(shù)據(jù)"1234",則從高位截取,變?yōu)?123"。 VARCAHR同理。
(2)TINYINT、SMALLINT、MEDIUMINT、INT和BIGINT的長度,其實和數(shù)據(jù)的大小無關(guān)!Length指的是顯示寬度,舉個例子: