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

sql 將數(shù)據(jù)類型分為三大類:數(shù)值類型层宫,字符串,日期時(shí)間型

數(shù)據(jù)庫(kù)數(shù)據(jù)類型.jpeg

一、數(shù)值型:

數(shù)值大類:整數(shù)型和小數(shù)型

整數(shù)型

整數(shù)型又分類五大類:

  • tinyint :迷你整型措嵌,使用一個(gè)字節(jié)存儲(chǔ)。表示的狀態(tài)最多為256
  • smallint:小整型芦缰,使用兩個(gè)字節(jié)企巢。表示的狀態(tài)最多為65536
  • mediumint:中整型,使用3個(gè)字節(jié)让蕾。
  • int:標(biāo)準(zhǔn)整形浪规,使用4個(gè)字節(jié)存儲(chǔ)
  • bigint:大整型,使用8個(gè)字節(jié)存儲(chǔ)


    WechatIMG22.jpeg

    SQL中所有的數(shù)值類型都默認(rèn)有符號(hào)探孝,分正負(fù)笋婿。
    有時(shí)候需要使用無(wú)符號(hào)數(shù)據(jù),需要給數(shù)據(jù)類型限定:int unsigned
    顯示寬度:


    WechatIMG3.jpeg

    設(shè)置顯示寬度并不能真正影響數(shù)據(jù)存儲(chǔ)的大小顿颅,顯示寬度的意義在于數(shù)據(jù)不夠顯示寬度的時(shí)候缸濒,會(huì)自動(dòng)讓數(shù)據(jù)變成對(duì)應(yīng)的顯示寬度。通常需要搭配一個(gè)前置的0來(lái)增加寬度

小數(shù)型

帶有小數(shù)點(diǎn)或者范圍超出整數(shù)型的數(shù)據(jù)類型。
SQL中將小數(shù)型兩種:浮點(diǎn)型和定點(diǎn)型
浮點(diǎn)型:小數(shù)點(diǎn)浮動(dòng)庇配,精度有限斩跌,會(huì)丟失精度
定點(diǎn)型:小數(shù)點(diǎn)固定,精度固定捞慌,不會(huì)丟失精度

  • 浮點(diǎn)型:浮點(diǎn)型數(shù)據(jù)是一種精度型數(shù)據(jù)耀鸦,超出指定范圍就會(huì)丟失精度,自動(dòng)四舍五入
    float:?jiǎn)尉刃ピ瑁加盟膫€(gè)存儲(chǔ)字節(jié)袖订,精度范圍為7位左右
    double:雙精度,占用八個(gè)字節(jié)嗅虏,精度范圍為15位左右
WechatIMG5.jpeg

創(chuàng)建浮點(diǎn)數(shù)據(jù)表:直接使用float表示沒(méi)有小數(shù)部分洛姑;
float(M,D)M:代表總長(zhǎng)度,D代表小數(shù)部分長(zhǎng)度

插入的數(shù)據(jù)可以是直接小數(shù)也可以是科學(xué)計(jì)數(shù)法

浮點(diǎn)型數(shù)據(jù)的插入:整數(shù)部分是不能超過(guò)長(zhǎng)度的旋恼,但小數(shù)部分可以超出長(zhǎng)度(系統(tǒng)會(huì)自動(dòng)四舍五入)吏口,

  • 定點(diǎn)型
    決定保證整數(shù)部分不會(huì)被四舍五入,小數(shù)部分有可能丟失精度


    WechatIMG6.jpeg

    創(chuàng)建decimal表 與float 做對(duì)比

CREATE TABLE my_decimal(f1 float(10,2),d2 decimal(10,2))charset=utf8;

插入數(shù)據(jù):定點(diǎn)數(shù)的整數(shù)部分一定不能超出指定長(zhǎng)度(不可進(jìn)位)
冰更,小數(shù)部分可以超出预鬓。

INSERT INTO my_decimal VALUES(12345678.90,12345678.90); --有效數(shù)據(jù)
INSERT INTO my_decimal VALUES(1234.123456,1234.1234567); --有效數(shù)據(jù),小數(shù)部分超出

浮點(diǎn)數(shù)進(jìn)位導(dǎo)致整數(shù)部分長(zhǎng)度溢出沒(méi)有問(wèn)題纹因,但定點(diǎn)數(shù)不行闸翅。

INSERT INTO my_decimal VALUES(99999999.99,99999999.99); --有效數(shù)據(jù),float 超出精度贵扰,會(huì)進(jìn)位,是整數(shù)部分長(zhǎng)度溢出
INSERT INTO my_decimal VALUES(99999999.99,99999999.999); 
--無(wú)效效數(shù)據(jù),decimal整數(shù)部分溢出

時(shí)間日期類型

  • datetime 格式:YYYY-mm-dd HH:ii:ss 表示范圍:1000到9999奠衔,有0值 0000-00-00 00:00:00
  • date 日期谆刨,就是datetime 中的date部分。
  • time 時(shí)間段归斤,指定某個(gè)區(qū)間 痊夭,-時(shí)間 到 +時(shí)間
  • timestamp 時(shí)間戳,從1970開(kāi)始的 YYYY-mm-dd HH:ii:ss 脏里,格式與datetime完全一致 可以自動(dòng)更新她我,存儲(chǔ)時(shí)還是以時(shí)間格式存儲(chǔ)
  • year 年份,兩種形式迫横,year(2)和year(4)
WechatIMG1.jpeg

網(wǎng)站是以PHP為實(shí)現(xiàn)的主要操作對(duì)象番舆,PHP中非常強(qiáng)大時(shí)間日期處理函數(shù):date(),只需要一個(gè)時(shí)間戳,就可以轉(zhuǎn)換為任意格式的時(shí)間矾踱,已PHP為主的時(shí)候恨狈,都是在數(shù)據(jù)庫(kù)使用時(shí)間戳(整型)來(lái)存儲(chǔ)時(shí)間。

字符串類型

在SQL中將字符串類型分為了6類:char ,varchar, text ,blob,enum,set

定長(zhǎng)字符型

  • char 呛讲,磁盤(二維表)在定義結(jié)構(gòu)的時(shí)候禾怠,就已經(jīng)確定了最終的存儲(chǔ)長(zhǎng)度
    char(L):length代表長(zhǎng)度返奉,可以存儲(chǔ)的長(zhǎng)度,單位代表字符
    吗氏,最大長(zhǎng)度為255

char(4)在UTF8環(huán)境下衡瓶,需要4*3=12個(gè)字節(jié)(UTF8三個(gè)字節(jié)表示一個(gè)字符)

變長(zhǎng)字符串

  • varchar ,在分配空間的時(shí)候,按照最大的空間分配牲证,但實(shí)際上最終用了多少,是根據(jù)具體的數(shù)據(jù)來(lái)確定关面。

varchar(L) L 表示字符長(zhǎng)度坦袍,理論長(zhǎng)度是65536字符,但是會(huì)多出1到2個(gè)字節(jié)等太,來(lái)確定存儲(chǔ)的實(shí)際長(zhǎng)度捂齐,1個(gè)字節(jié)表示長(zhǎng)度小于255 2個(gè)字節(jié)最大數(shù)能存65536正好等于最大長(zhǎng)度。所以是1到2個(gè)字節(jié)缩抡。
但實(shí)際上如果字符長(zhǎng)度超過(guò)255奠宜,既不是用char也不實(shí)用varchar,而是使用text

varchar(10) :如果存儲(chǔ)了10個(gè)漢字,在UTF8環(huán)境中瞻想,10*3+1 = 31個(gè)字節(jié)

如果存儲(chǔ)了3個(gè)漢字压真,在UTF8環(huán)境中,3*3+1 = 10個(gè)字節(jié)

WechatIMG7.jpeg
如何選擇定長(zhǎng)或者邊長(zhǎng)字符串蘑险?

定長(zhǎng)字符串比較浪費(fèi)磁盤空間滴肿,但效率高
邊長(zhǎng)字符串比較節(jié)省磁盤空間,但效率低

文本字符串

通常來(lái)說(shuō)佃迄,如果字符長(zhǎng)度超過(guò)255泼差,就會(huì)使用文本字符串
文本字符串根據(jù)根據(jù)存儲(chǔ)的數(shù)據(jù)格式進(jìn)行分類:text和blob

  • text 存儲(chǔ)文字
  • blob 存儲(chǔ)二進(jìn)制數(shù)據(jù)(通常不用)二進(jìn)制文件通常只存路徑。

枚舉字符串

枚舉:將所有可能出現(xiàn)的結(jié)果都提前設(shè)計(jì)好呵俏,實(shí)際上存儲(chǔ)的數(shù)據(jù)必須是規(guī)定好的數(shù)據(jù)中的其中一個(gè)堆缘。
使用方法:
定義:enum(可能出現(xiàn)的元素列表)
如enum('男','女');
存儲(chǔ)數(shù)據(jù)時(shí)普碎,只能使用上面定義好的數(shù)據(jù):男或女
枚舉是從1開(kāi)始
作用之一:規(guī)范數(shù)據(jù)格式
作用之二:節(jié)省存儲(chǔ)空間 枚舉實(shí)際存儲(chǔ)的是數(shù)值吼肥,而不是字符串本身,按照元素出現(xiàn)的順序從1編號(hào)随常。
證明:將取出來(lái)的枚舉做+0處理潜沦,就能判斷其存儲(chǔ)的類型。

WechatIMG3.jpeg

因?yàn)槊杜e存儲(chǔ)的是數(shù)值绪氛,所以可以直接插入數(shù)值

集合型字符串

集合跟枚舉很類似:實(shí)際存儲(chǔ)的是數(shù)值而不是字符串唆鸡,但集合是多選。

集合使用方式:
定義:set(集合列表)
使用:可以使用元素列表中的元素(多個(gè))枣察,使用逗號(hào)分隔争占。

創(chuàng)建集合表:

create table my_set(
 hobby set('籃球','足球','乒乓球','羽毛球','游泳','跑步');
) charset=utf8;

插入數(shù)據(jù):可以使用多個(gè)元素字符組合燃逻,也可以直接插入數(shù)值

insert into my_set('籃球,足球');
insert into my_set(3);-- 000011 表示選中籃球和足球

集合中:每個(gè)元素代表一個(gè)二進(jìn)制位,被選中位1 臂痕,未被選中0伯襟,集合列表第一位代表二進(jìn)制中的最低位

集合的強(qiáng)大在于規(guī)范數(shù)據(jù)和節(jié)省空間。但對(duì)PHP來(lái)說(shuō)握童,效率優(yōu)先姆怪。基本用的很少澡绩。

mysql記錄長(zhǎng)度

mysql規(guī)定一條記錄的最長(zhǎng)不超過(guò)65535個(gè)字節(jié)
(varchar永遠(yuǎn)都達(dá)不到理論長(zhǎng)度)
varchar 的實(shí)際存儲(chǔ)長(zhǎng)度能達(dá)到多少稽揭?看字符集編碼

  • UTF8環(huán)境:
    21844個(gè)字符
  • GBK
    32766


    WechatIMG4.jpeg

如果想要把少出的一個(gè)字節(jié)用掉,則可以添加一個(gè)新字段肥卡,類型為tinyint 且類型not null ,因?yàn)樵趍ysql中溪掀,如果數(shù)據(jù)的屬性默認(rèn)為空,會(huì)占用一個(gè)字節(jié)存儲(chǔ)null步鉴,想要釋放null占用的字節(jié)揪胃,則字段屬性不能為空

  • mysql text 數(shù)據(jù)類型,不占用記錄長(zhǎng)度氛琢。

即可以額外存儲(chǔ)喊递,但是text類型的字符串也屬于記錄的一部分,一定需要占用記錄中的的部分長(zhǎng)度:10個(gè)字節(jié)艺沼。(保存數(shù)據(jù)的地址和長(zhǎng)度)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末册舞,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子障般,更是在濱河造成了極大的恐慌调鲸,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,755評(píng)論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件挽荡,死亡現(xiàn)場(chǎng)離奇詭異藐石,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)定拟,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,305評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門于微,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人青自,你說(shuō)我怎么就攤上這事株依。” “怎么了延窜?”我有些...
    開(kāi)封第一講書人閱讀 165,138評(píng)論 0 355
  • 文/不壞的土叔 我叫張陵恋腕,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我逆瑞,道長(zhǎng)荠藤,這世上最難降的妖魔是什么伙单? 我笑而不...
    開(kāi)封第一講書人閱讀 58,791評(píng)論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮哈肖,結(jié)果婚禮上吻育,老公的妹妹穿的比我還像新娘。我一直安慰自己淤井,他們只是感情好布疼,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,794評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著币狠,像睡著了一般缎除。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上总寻,一...
    開(kāi)封第一講書人閱讀 51,631評(píng)論 1 305
  • 那天,我揣著相機(jī)與錄音梢为,去河邊找鬼渐行。 笑死,一個(gè)胖子當(dāng)著我的面吹牛铸董,可吹牛的內(nèi)容都是我干的祟印。 我是一名探鬼主播,決...
    沈念sama閱讀 40,362評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼粟害,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼蕴忆!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起悲幅,我...
    開(kāi)封第一講書人閱讀 39,264評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤套鹅,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后汰具,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體卓鹿,經(jīng)...
    沈念sama閱讀 45,724評(píng)論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,900評(píng)論 3 336
  • 正文 我和宋清朗相戀三年留荔,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了吟孙。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,040評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡聚蝶,死狀恐怖杰妓,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情碘勉,我是刑警寧澤巷挥,帶...
    沈念sama閱讀 35,742評(píng)論 5 346
  • 正文 年R本政府宣布,位于F島的核電站恰聘,受9級(jí)特大地震影響句各,放射性物質(zhì)發(fā)生泄漏吸占。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,364評(píng)論 3 330
  • 文/蒙蒙 一凿宾、第九天 我趴在偏房一處隱蔽的房頂上張望矾屯。 院中可真熱鬧,春花似錦初厚、人聲如沸件蚕。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 31,944評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)排作。三九已至,卻和暖如春亚情,著一層夾襖步出監(jiān)牢的瞬間妄痪,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 33,060評(píng)論 1 270
  • 我被黑心中介騙來(lái)泰國(guó)打工楞件, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留衫生,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,247評(píng)論 3 371
  • 正文 我出身青樓土浸,卻偏偏與公主長(zhǎng)得像罪针,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子黄伊,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,979評(píng)論 2 355

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

  • 本文基于MySQL5.6版本進(jìn)行描述從大的方面來(lái)講泪酱,MySQL的數(shù)據(jù)類型分為4種 數(shù)值類型 日期和時(shí)間 字符串類型...
    黑哥兒666閱讀 747評(píng)論 0 0
  • 所謂的數(shù)據(jù)類型:對(duì)數(shù)據(jù)進(jìn)行統(tǒng)一的分類,從系統(tǒng)的 角度出發(fā)為了能夠使用統(tǒng)一的方式進(jìn)行管理还最,更好的利用有限的空間墓阀;SQ...
    coder_hong閱讀 617評(píng)論 0 0
  • 1、MySQL數(shù)據(jù)類型 ·整型: tinyint拓轻、INT岂津、smallint、mediumint悦即、bigint in...
    娑婆訶閱讀 843評(píng)論 0 2
  • 1. 優(yōu)化數(shù)據(jù)結(jié)構(gòu) 盡量避免null.可為NULL的列使索引,索引統(tǒng)計(jì)和值比較都更加復(fù)雜.它需要更多的存儲(chǔ)空間, ...
    滬上最強(qiáng)亞巴頓閱讀 1,049評(píng)論 2 18
  • 最近瘋狂的迷上block吮成,紀(jì)錄一下初步使用block的情形。 1.先看一個(gè)最簡(jiǎn)單的例子辜梳,網(wǎng)上很多類似的: int(...
    candy_r閱讀 1,171評(píng)論 1 9