如果用戶想改變表的默認(rèn)字符集和所有的字符列的字符集到一個(gè)新的字符集,使用下面的語(yǔ)句:
讓客戶滿意是我們工作的目標(biāo),不斷超越客戶的期望值來自于我們對(duì)這個(gè)行業(yè)的熱愛。我們立志把好的技術(shù)通過有效、簡(jiǎn)單的方式提供給客戶,將通過不懈努力成為客戶在信息化領(lǐng)域值得信任、有價(jià)值的長(zhǎng)期合作伙伴,公司提供的服務(wù)項(xiàng)目有:域名注冊(cè)、虛擬主機(jī)、營(yíng)銷軟件、網(wǎng)站建設(shè)、贛縣網(wǎng)站維護(hù)、網(wǎng)站推廣。
ALTER
TABLE
tbl_name
CONVERT
TO
CHARACTER
SET
charset_name;警告:上述操作是在字符集中轉(zhuǎn)換列值。如果用戶在字符集(如
gb2312)中有一個(gè)列,但存儲(chǔ)的值使用的是其它的一些不兼容的字符集(如
utf8),那么該操作將不會(huì)得到用戶期望的結(jié)果。在這種情況下,用戶必須對(duì)每一列做如下操作:
ALTER
TABLE
t1
CHANGE
c1
c1
BLOB;
ALTER
TABLE
t1
CHANGE
c1
c1
TEXT
CHARACTER
SET
utf8;
這樣做的原因是:從
BLOB
列轉(zhuǎn)換或轉(zhuǎn)換到
BLOB
列沒有轉(zhuǎn)換發(fā)生。
如果用戶指定以二進(jìn)制進(jìn)行
CONVERT
TO
CHARACTER
SET,則
CHAR、VARCHAR
和
TEXT
列將轉(zhuǎn)換為它們對(duì)應(yīng)的二進(jìn)制字符串類型(BINARY,VARBINARY,BLOB)。這意味著這些列將不再有字符集,隨后的
CONVERT
TO
操作也將不會(huì)作用到它們上。
如果僅僅改變一個(gè)表的缺省字符集,可使用下面的語(yǔ)句:
ALTER
TABLE
tbl_name
DEFAULT
CHARACTER
SET
charset_name;
DEFAULT是可選的。當(dāng)向一個(gè)表里添加一個(gè)新的列時(shí),如果沒有指定字符集,則就采用缺省的字符集(例如當(dāng)ALTER
TABLE
...
ADD
column)。
ALTER
TABLE
...
DEFAULT
CHARACTER
SET
和
ALTER
TABLE
...
CHARACTER
SET
是等價(jià)的,修改的僅僅是缺省的表字符集。
1) 最簡(jiǎn)單的修改方法,就是修改mysql的my.ini文件中的字符集鍵值,
如 default-character-set = utf8
character_set_server = utf8
修改完后,重啟mysql的服務(wù),service mysql restart
(2) 還有一種修改mysql默認(rèn)字符集的方法,就是使用mysql的命令
SET?NAMES?'utf8';
ALTER TABLE `test`
DEFAULT CHARACTER SET=utf8;
小的字符集可以向大的修改,大的不能修改到小的字符集,gbk可以修改到utf8,但是utf8修改到gbk會(huì)出現(xiàn)亂碼,自己斟酌一下