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

1.整數(shù)

類型 范圍 存儲(chǔ)大小
tinyint -128 ~ 127 1字節(jié)
tinyint unsigned 0 ~ 255 1字節(jié)
smallint -32768 ~ 32767 2字節(jié)
smallint unsigned 0 ~ 65535 2字節(jié)
int -2147483648 ~ 2147483647 4字節(jié)
int unsigned 0 ~ 4294967295 4字節(jié)
bigint -9223372036854775808 ~ 9223372036854775807 8字節(jié)
bigint unsigned 0 ~ 18446744073709551615 8字節(jié)
  • 整數(shù)類型后接數(shù)字僅代表顯示寬度前塔,不代表存儲(chǔ)長(zhǎng)度。如 int(4) 與 int(10) 一致寂屏,固定存儲(chǔ)為4字節(jié)欧引,故建表語(yǔ)句中不必填寫
  • 用作表主鍵時(shí)應(yīng)該選用 int unsigned 或者 bigint unsigned
create table `example1` (
    `id` int unsigned NOT NULL AUTO_INCREMENT COMMENT '自增id',
    PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='示例1';
--
create table `example2` (
    `id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT '自增id',
    PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='示例2';
  • 使用整數(shù)代替枚舉類enum能獲取更高的效率憋肖,建議選用 tinyint 或者 tinyint unsigned
create table `example3` (
    `id` int unsigned NOT NULL AUTO_INCREMENT COMMENT '自增id',
    `sex` tinyint unsigned NOT NULL DEFAULT 0 COMMENT '性別:0-女 1-男',
    PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='示例3';
  • 計(jì)算機(jī)處理整數(shù)類型比字符串類型快,故存儲(chǔ)IPV4地址時(shí)候可使用 int unsigned婚苹,通過(guò)inet_ntoa和inet_aton進(jìn)行轉(zhuǎn)化
create table `example4` (
    `id` int unsigned NOT NULL AUTO_INCREMENT COMMENT '自增id',
    `ip_addr` tinyint unsigned NOT NULL DEFAULT 0 COMMENT 'ipv4地址',
    PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='示例4';

select inet_aton('209.207.224.40');   --3520061480
select inet_ntoa('3520061480');       --209.207.224.40

2.小數(shù)

類型 范圍 存儲(chǔ) 特點(diǎn)
float(M, D) M表示位寬岸更,D是小數(shù)點(diǎn)后位數(shù) 4字節(jié) 浮點(diǎn)數(shù)-保存近似值
double(M, D) M表示位寬,D是小數(shù)點(diǎn)后位數(shù) 8字節(jié) 浮點(diǎn)數(shù)-保存近似值
decimal(M, D) M表示總位數(shù)膊升,D是小數(shù)點(diǎn)后位數(shù) M+2字節(jié) 定點(diǎn)數(shù)-以字符串型式保存數(shù)值
  • 建議小數(shù)統(tǒng)一使用 decimal 怎炊,尤其是與貨幣、金融相關(guān)的數(shù)據(jù)
create table `example5` (
    `id` int unsigned NOT NULL AUTO_INCREMENT COMMENT '自增id',
    `price` decimal(10,2) NOT NULL DEFAULT 0 COMMENT '價(jià)格',
    PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='示例5';

3.字符串

類型 范圍 存儲(chǔ)
char(n) n個(gè)字符(非字節(jié)) 固定存儲(chǔ)長(zhǎng)度
varchar(n) n個(gè)字符(非字節(jié)) 字符串實(shí)際長(zhǎng)度加上用于記錄長(zhǎng)度的字節(jié)
  • 實(shí)際取值為定長(zhǎng)時(shí)應(yīng)選用char(n)
  • 變長(zhǎng)字符串varchar(n) 存在用于記錄長(zhǎng)度的字節(jié)廓译,故字符串長(zhǎng)度<=255時(shí)僅需1字節(jié)記錄長(zhǎng)度 varchar(255)
  • 不要對(duì)過(guò)長(zhǎng)的 varchar 建立索引
  • **重要: varchar 字段為 null 時(shí)無(wú)法使用索引评肆,應(yīng)使用 not null 定義并將默認(rèn)值設(shè)為空串 **
create table `example6` (
    `id` int unsigned NOT NULL AUTO_INCREMENT COMMENT '自增id',
    `remark` varchar(255) NOT NULL DEFAULT '' COMMENT '備注',
    PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='示例6';

4.日期時(shí)間

類型 范圍 存儲(chǔ)大小 說(shuō)明
year 1901 ~ 2155 1字節(jié) 年份
date 1000-01-01 ~ 9999-12-31 3字節(jié) 日期
time -838:59:59 ~ 838:59:59 3字節(jié) 時(shí)間
timestamp 1970-01-01 00:00:00~ 2037年 4字節(jié) 日期時(shí)間
datetime 1000-01-01 00:00:00 ~ 9999-12-31 23:59:59 8字節(jié) 日期時(shí)間
  • 使用 timestamp 時(shí)可設(shè)置自動(dòng)初始化和自動(dòng)更新
create table `example7` (
    `id` int unsigned NOT NULL AUTO_INCREMENT COMMENT '自增id',
    `create_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '創(chuàng)建時(shí)間'
    `update_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新時(shí)間',
    PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='示例7';
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市非区,隨后出現(xiàn)的幾起案子瓜挽,更是在濱河造成了極大的恐慌,老刑警劉巖征绸,帶你破解...
    沈念sama閱讀 207,113評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件久橙,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡管怠,警方通過(guò)查閱死者的電腦和手機(jī)淆衷,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,644評(píng)論 2 381
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)渤弛,“玉大人祝拯,你說(shuō)我怎么就攤上這事∷希” “怎么了佳头?”我有些...
    開封第一講書人閱讀 153,340評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)辕宏。 經(jīng)常有香客問(wèn)我畜晰,道長(zhǎng)砾莱,這世上最難降的妖魔是什么瑞筐? 我笑而不...
    開封第一講書人閱讀 55,449評(píng)論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮腊瑟,結(jié)果婚禮上聚假,老公的妹妹穿的比我還像新娘。我一直安慰自己闰非,他們只是感情好膘格,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,445評(píng)論 5 374
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著财松,像睡著了一般瘪贱。 火紅的嫁衣襯著肌膚如雪纱控。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,166評(píng)論 1 284
  • 那天菜秦,我揣著相機(jī)與錄音甜害,去河邊找鬼。 笑死球昨,一個(gè)胖子當(dāng)著我的面吹牛尔店,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播主慰,決...
    沈念sama閱讀 38,442評(píng)論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼嚣州,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了共螺?” 一聲冷哼從身側(cè)響起该肴,我...
    開封第一講書人閱讀 37,105評(píng)論 0 261
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎璃谨,沒想到半個(gè)月后沙庐,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,601評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡佳吞,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,066評(píng)論 2 325
  • 正文 我和宋清朗相戀三年拱雏,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片底扳。...
    茶點(diǎn)故事閱讀 38,161評(píng)論 1 334
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡铸抑,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出衷模,到底是詐尸還是另有隱情鹊汛,我是刑警寧澤,帶...
    沈念sama閱讀 33,792評(píng)論 4 323
  • 正文 年R本政府宣布阱冶,位于F島的核電站刁憋,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏木蹬。R本人自食惡果不足惜至耻,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,351評(píng)論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望镊叁。 院中可真熱鬧尘颓,春花似錦、人聲如沸晦譬。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,352評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)敛腌。三九已至卧土,卻和暖如春惫皱,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背尤莺。 一陣腳步聲響...
    開封第一講書人閱讀 31,584評(píng)論 1 261
  • 我被黑心中介騙來(lái)泰國(guó)打工逸吵, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人缝裁。 一個(gè)月前我還...
    沈念sama閱讀 45,618評(píng)論 2 355
  • 正文 我出身青樓扫皱,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親捷绑。 傳聞我的和親對(duì)象是個(gè)殘疾皇子韩脑,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,916評(píng)論 2 344

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