mysql字符集編碼和數(shù)據(jù)類型

字符集編碼

字符集是一套符號和編碼。mysql景鼠、database、table痹扇、column都可以設(shè)置編碼铛漓。

--查看所有字符集編碼項命令
show variables like 'character_set_%';
選項名 備注
character_set_client 客戶端向服務(wù)器發(fā)送數(shù)據(jù)時使用的編碼
character_set_results 服務(wù)器端返回給客戶端的結(jié)果所使用的編碼
character_set_connection 數(shù)據(jù)庫連接編碼
character_set_database 數(shù)據(jù)庫編碼
character_set_filesystem 文件系統(tǒng)編碼
character_set_server 服務(wù)端編碼
character_set_system 系統(tǒng)編碼
character_set_dir 指定字符編碼文件路徑
  • 更改字符編碼
    命令格式:set 變量名 = 字符編碼;
    ex:
set character_set_client = utf8;
set character_set_results = utf8;
set character_set_connection = utf8;

ps:可以通過格式: set names 字符編碼 來同時設(shè)置character_set_client鲫构、character_set_connection浓恶、character_set_result的編碼

校對集

校對集是數(shù)據(jù)比較的方式,共有三種格式:_bin:binary, 二進(jìn)制比較, 區(qū)分大小寫;_cs: case sensitive, 大小寫敏感;_ci: case insensitice, 大小寫不敏感;校對集必須在沒有數(shù)據(jù)之前設(shè)置才有效芬迄,如果在已有數(shù)據(jù)的情況下進(jìn)行修改问顷,那么修改無效。

--顯示所有字符集
show character set;
show charset;
--顯示符合匹配規(guī)則的字符集
show character set like '%d%';
show charset like '%d%';
--顯示所有校對集
show collation;
--顯示符合匹配規(guī)則的校對集
show collation like '%d%';
--設(shè)置字符集編碼為utf8
charset utf8;
--設(shè)置校對集編碼
collate utf8_general_ci;

數(shù)據(jù)類型

  • 數(shù)值類型
    整型
類型 字節(jié)
tinyint 1字節(jié)
smallint 2字節(jié)
mediumint 3字節(jié)
int 4字節(jié)
bigint 8字節(jié)

int(M) M表示總位數(shù)禀梳。默認(rèn)存在符號位杜窄,unsigned 屬性修改顯示寬度,如果某個數(shù)不夠定義字段時設(shè)置的位數(shù)算途,則前面以0補填塞耕,zerofill 屬性修改
ps:MySQL沒有布爾類型,通過整型0和1表示嘴瓤。常用tinyint(1)表示布爾型扫外。

浮點型

類型 字節(jié)
float(單精度) 4字節(jié)
double(雙精度) 8字節(jié)

浮點型既支持符號位 unsigned 屬性,也支持顯示寬度 zerofill 屬性廓脆。不同于整型筛谚,前后均會補填0.定義浮點型時,需指定總位數(shù)和小數(shù)位數(shù)停忿。float(M, D) double(M, D)M表示總位數(shù)驾讲,D表示小數(shù)位數(shù)。M和D的大小會決定浮點數(shù)的范圍。不同于整型的固定范圍吮铭。M既表示總位數(shù)(不包括小數(shù)點和正負(fù)號)时迫,也表示顯示寬度(所有顯示符號均包括)。支持科學(xué)計數(shù)法表示谓晌。浮點數(shù)表示近似值掠拳。

定點數(shù)
decimal是可變長度。decimal(M, D) M也表示總位數(shù)纸肉,D表示小數(shù)位數(shù)溺欧。保存一個精確的數(shù)值,不會發(fā)生數(shù)據(jù)的改變毁靶,不同于浮點數(shù)的四舍五入胧奔。將浮點數(shù)轉(zhuǎn)換為字符串來保存,每9位數(shù)字保存為4個字節(jié)预吆。

  • 字符串類型
    char, varchar
    char 定長字符串龙填,速度快,但浪費空間拐叉。varchar 變長字符串岩遗,速度慢,但節(jié)省空間凤瘦。char(M)宿礁、varchar(M)M表示能存儲的最大長度,此長度是字符數(shù)蔬芥,非字節(jié)數(shù)梆靖。不同的編碼,所占用的空間不同笔诵。char,最多255個字符返吻,與編碼無關(guān)。varchar,最多65535字符乎婿,與編碼有關(guān)测僵。一條有效記錄最大不能超過65535個字節(jié)。utf8 最大為21844個字符谢翎,gbk 最大為32766個字符捍靠,latin1 最大為65532個字符。varchar 是變長的森逮,需要利用存儲空間保存 varchar 的長度榨婆,如果數(shù)據(jù)小于255個字節(jié),則采用一個字節(jié)來保存長度褒侧,反之需要兩個字節(jié)來保存良风。varchar 的最大有效長度由最大行大小和使用的字符集確定颜武。最大有效長度是65532字節(jié),因為在varchar存字符串時拖吼,第一個字節(jié)是空的,不存在任何數(shù)據(jù)这吻,然后還需兩個字節(jié)來存放字符串的長度吊档,所以有效長度是64432-1-2=65532字節(jié)。
    blob, text
    blob 二進(jìn)制字符串(字節(jié)字符串)
    tinyblob, blob, mediumblob, longblob
    text 非二進(jìn)制字符串(字符字符串)
    tinytext, text, mediumtext, longtext
    text 在定義時唾糯,不需要定義長度怠硼,也不會計算總長度。
    text 類型在定義時移怯,不可給default值香璃。
    binary, varbinary
    類似于char和varchar,用于保存二進(jìn)制字符串舟误,也就是保存字節(jié)字符串而非字符字符串葡秒。char, varchar, text 對應(yīng) binary, varbinary, blob。
    日期時間類型
    datetime 8字節(jié) 日期及時間 1000-01-01 00:00:00 到 9999-12-31 23:59:59
    date 3字節(jié) 日期 1000-01-01 到 9999-12-31
    timestamp 4字節(jié) 時間戳 19700101000000 到 2038-01-19 03:14:07
    time 3字節(jié) 時間 -838:59:59 到 838:59:59
    year 1字節(jié) 年份 1901 - 2155
    枚舉和集合
    枚舉(enum)
    enum(val1, val2, val3...)
    在已知的值中進(jìn)行單選嵌溢。最大數(shù)量為65535.
    枚舉值在保存時眯牧,以2個字節(jié)的整型(smallint)保存。每個枚舉值赖草,按保存的位置順序学少,從1開始逐一遞增。
    表現(xiàn)為字符串類型秧骑,存儲卻是整型版确。
    NULL值的索引是NULL。
    空字符串錯誤值的索引值是0乎折。
    集合(set)
    set(val1, val2, val3...)
    create table tab ( gender set('男', '女') );
    insert into tab values ('男, 女');
    最多可以有64個不同的成員绒疗。以bigint存儲,共8個字節(jié)笆檀。采取位運算的形式忌堂。當(dāng)創(chuàng)建表時,SET成員值的尾部空格將自動被刪除酗洒。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末士修,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子樱衷,更是在濱河造成了極大的恐慌棋嘲,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,968評論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件矩桂,死亡現(xiàn)場離奇詭異沸移,居然都是意外死亡,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,601評論 2 382
  • 文/潘曉璐 我一進(jìn)店門雹锣,熙熙樓的掌柜王于貴愁眉苦臉地迎上來网沾,“玉大人,你說我怎么就攤上這事蕊爵』愿纾” “怎么了?”我有些...
    開封第一講書人閱讀 153,220評論 0 344
  • 文/不壞的土叔 我叫張陵攒射,是天一觀的道長醋旦。 經(jīng)常有香客問我,道長会放,這世上最難降的妖魔是什么饲齐? 我笑而不...
    開封第一講書人閱讀 55,416評論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮咧最,結(jié)果婚禮上捂人,老公的妹妹穿的比我還像新娘。我一直安慰自己矢沿,他們只是感情好先慷,可當(dāng)我...
    茶點故事閱讀 64,425評論 5 374
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著咨察,像睡著了一般论熙。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上摄狱,一...
    開封第一講書人閱讀 49,144評論 1 285
  • 那天脓诡,我揣著相機與錄音,去河邊找鬼媒役。 笑死祝谚,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的酣衷。 我是一名探鬼主播交惯,決...
    沈念sama閱讀 38,432評論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼穿仪!你這毒婦竟也來了席爽?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,088評論 0 261
  • 序言:老撾萬榮一對情侶失蹤啊片,失蹤者是張志新(化名)和其女友劉穎只锻,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體紫谷,經(jīng)...
    沈念sama閱讀 43,586評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡齐饮,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,028評論 2 325
  • 正文 我和宋清朗相戀三年捐寥,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片祖驱。...
    茶點故事閱讀 38,137評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡握恳,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出捺僻,到底是詐尸還是另有隱情睡互,我是刑警寧澤,帶...
    沈念sama閱讀 33,783評論 4 324
  • 正文 年R本政府宣布陵像,位于F島的核電站,受9級特大地震影響寇壳,放射性物質(zhì)發(fā)生泄漏醒颖。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,343評論 3 307
  • 文/蒙蒙 一壳炎、第九天 我趴在偏房一處隱蔽的房頂上張望泞歉。 院中可真熱鬧,春花似錦匿辩、人聲如沸腰耙。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,333評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽挺庞。三九已至,卻和暖如春稼病,著一層夾襖步出監(jiān)牢的瞬間选侨,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,559評論 1 262
  • 我被黑心中介騙來泰國打工然走, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留援制,地道東北人。 一個月前我還...
    沈念sama閱讀 45,595評論 2 355
  • 正文 我出身青樓芍瑞,卻偏偏與公主長得像晨仑,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子拆檬,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,901評論 2 345

推薦閱讀更多精彩內(nèi)容

  • 本文基于MySQL5.6版本進(jìn)行描述從大的方面來講洪己,MySQL的數(shù)據(jù)類型分為4種 數(shù)值類型 日期和時間 字符串類型...
    黑哥兒666閱讀 743評論 0 0
  • MySQL數(shù)據(jù)庫對象與應(yīng)用 2.1-MySQL數(shù)據(jù)類型 庫建立好之后基本不動,和我們接觸最頻繁的是表. 建表就是聲...
    極客圈閱讀 2,129評論 0 8
  • 1、運用消費者決策規(guī)律竟贯,分析你的產(chǎn)品涉及的顧客心理并給出營銷建議码泛。 公司/團(tuán)隊/項目名稱:歐美商務(wù)考察 產(chǎn)品名稱:...
    劉矛盾閱讀 171評論 3 0
  • 【讀經(jīng)】 詩篇134-135 【金句】 你們要贊美耶和華!耶和華本為善澄耍;要歌頌他的名噪珊,因為這是美好的晌缘。(詩篇 13...
    chanor閱讀 94評論 0 0
  • 【經(jīng)文】「看哪磷箕,我差遣使者在你前面,在路上保護(hù)你阵难,領(lǐng)你到我所預(yù)備的地方去岳枷。(出埃及記 23:20) 神除了幫助我們...
    斐斐feifei閱讀 1,191評論 0 0