MySQL數(shù)據(jù)類型全解析
數(shù)據(jù)類型:定義列中可以存儲什么數(shù)據(jù)以及該數(shù)據(jù)實(shí)際怎樣存儲的基本規(guī)則。
數(shù)據(jù)類型用于以下目的:
1、允許限制可存儲在列中的數(shù)據(jù)。如:數(shù)值數(shù)據(jù)類型列只能接受數(shù)值。
2、允許在內(nèi)部更有效地存儲數(shù)據(jù)。如:用比文本串更簡潔的格式存儲數(shù)值和日期時(shí)間值。
3、允許變換排序順序。如:數(shù)據(jù)都作為串處理,則1位于10前,10位于2前(串以字典順序排序,從左邊開始比較,一次一個(gè)字符);作為數(shù)值數(shù)據(jù)類型,數(shù)值才能正確排序。
一、串?dāng)?shù)據(jù)類型
最常用的數(shù)據(jù)類型,存儲串,如名字、地址、電話號碼等。
兩種基本的串類型:定長串和變長串。
定長串:接受長度固定的字符串,其長度是在創(chuàng)建表時(shí)指定的。定長列不允許多于指定的字符數(shù)目,它們分配的存儲空間與指定的一樣多。如:CHAR。
變長串:存儲可變長度的文本。有些變長數(shù)據(jù)類型具有最大的定長,有些則是完全變長的,不管是哪種,只有指定的數(shù)據(jù)會得到保存(額外的數(shù)據(jù)不保存),如:TEXT。
PS:MySQL處理定長列遠(yuǎn)比處理變長列快得多。且MySQL不允許對變長列(或一個(gè)列的可變部分)進(jìn)行索引。
數(shù)據(jù)類型說明:
CHAR:1~255個(gè)字符的定長串。長度必須在創(chuàng)建時(shí)指定,否則MySQL假定為CHAR(1)。
ENUM:接受最多64K個(gè)串組成的一個(gè)預(yù)定義集合的某個(gè)串。
LONGTEXT:與TEXT相同,但最大長度為4GB。
MEDIUMTEXT:與TEXT相同,但最大長度為16 K。
SET:接受最多64個(gè)串組成的一個(gè)預(yù)定義集合的零個(gè)或多個(gè)串。
TEXT:最大長度為64 K的變長文本。
TINYTEXT:與TEXT相同,但最大長度為255字節(jié)。
VARCHAR:長度可變,最多不超過255字節(jié)。如創(chuàng)建時(shí)指定為VARCHAR(n),則可存儲0到n個(gè)字符的變長串(其中n≤255)。
PS:
1、引號:使用何種形式的串?dāng)?shù)據(jù)類型,串值都必須括在引號內(nèi)(通常使用單引號)。
2、須遵守的基本規(guī)則:如果數(shù)值是計(jì)算(求和、平均等)中使用的數(shù)值,則存儲在數(shù)值數(shù)據(jù)類型列中。如果數(shù)值作為字符串使用,則保存在串?dāng)?shù)據(jù)類型列中。如:在數(shù)值字段中存儲郵政編碼01234,保存的是數(shù)值1234,丟失了一位數(shù)字。
二、數(shù)值數(shù)據(jù)類型
存儲數(shù)值。MySQL支持多種數(shù)值數(shù)據(jù)類型,每種存儲的數(shù)值具有不同的取值范圍。
支持的取值范圍越大,所需存儲空間越多。此外,有的數(shù)值數(shù)據(jù)類型支持使用十進(jìn)制小數(shù)點(diǎn)(和小數(shù)),而有的則只支持整數(shù)。表D-2列出了常用的MySQL數(shù)值數(shù)據(jù)類型。
PS:
1、所有數(shù)值數(shù)據(jù)類型(除BIT和BOOLEAN外)都可以有符號或無符號。有符號數(shù)值列可以存儲正或負(fù)的數(shù)值,無符號數(shù)值列只能存儲正數(shù)。
2、默認(rèn)情況為有符號,若不需要存儲負(fù)值,可以使用UNSIGNED,這樣做將允許你存儲兩倍大小的值。
3、與串不同,數(shù)值不應(yīng)該在引號內(nèi)。
4、MySQL中沒有專門存儲貨幣的數(shù)據(jù)類型,一般情況下使用DECIMAL(8, 2)。
數(shù)據(jù)類型說明:
BIT:位字段,1~64位。在MySQL 5之前,BIT在功能上等價(jià)于TINYINT。
BIGINT:整數(shù)值,支持-9223372036854775808~9223372036854775807。如果是UNSIGNED,為0~18446744073709551615的數(shù)。
BOOLEAN(或BOOL):布爾標(biāo)志,為0或者為1,主要用于開/關(guān)(on/off)標(biāo)志。
DECIMAL(或DEC):精度可變的浮點(diǎn)值。
DOUBLE:雙精度浮點(diǎn)值
FLOAT:單精度浮點(diǎn)值
INT(或INTEGER):整數(shù)值,支持-2147483648~2147483647,UNSIGNED同上。
MEDIUMINT:整數(shù)值,支持-8388608~8388607,UNSIGNED同上。
REAL:4字節(jié)的浮點(diǎn)值。
SMALLINT:整數(shù)值,支持-32768~32767,UNSIGNED同上。
TINYINT:整數(shù)值,支持-128~127,UNSIGNED同上。
三、日期和時(shí)間數(shù)據(jù)類型
數(shù)據(jù)類型說明:
DATE:表示1000-01-01~9999-12-31的日期,格式為YYYY-MM-DD。
DATETIME:DATE和TIME的組合。
TIMESTAMP:功能和DATETIME相同,但范圍較小。
TIME:格式為HH:MM:SS。
YEAR:2位數(shù)字表示,范圍是70~69(1970~2069);4位數(shù)字表示,范圍是1901~2155
四、二進(jìn)制數(shù)據(jù)類型
可存儲任何數(shù)據(jù)(甚至包括二進(jìn)制信息),如圖像、多媒體、字處理文檔等。
數(shù)據(jù)類型說明:
BLOB:Blob最大長度為64KB。
MEDIUMBLOB:Blob最大長度為16 MB。
LONGBLOB:Blob最大長度為4GB。
TINYBLOB:Blob最大長度為255字節(jié)。
以上就是MySQL數(shù)據(jù)類型全解析的詳細(xì)內(nèi)容,更多關(guān)于MySQL數(shù)據(jù)類型的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
實(shí)操M(fèi)ySQL+PostgreSQL批量插入更新insertOrUpdate
這篇文章主要介紹了MYsql和PostgreSQL優(yōu)勢對比以及如何實(shí)現(xiàn)MySQL + PostgreSQL批量插入更新insertOrUpdate,附含詳細(xì)的InserOrupdate代碼實(shí)例,需要的朋友可以參考下2021-08-08使用MySQL進(jìn)行千萬級別數(shù)據(jù)查詢的技巧分享
這篇文章主要介紹了如何使用MySQL進(jìn)行千萬級別數(shù)據(jù)查詢的技巧,文中通過代碼示例給大家講解的非常詳細(xì),對大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下2024-03-03安裝Mysql時(shí)出現(xiàn)錯(cuò)誤及解決辦法
因?yàn)橐粫r(shí)手癢癢更新了一下驅(qū)動,結(jié)果導(dǎo)致無線網(wǎng)卡出了問題,本文給大家分享安裝mysql時(shí)出現(xiàn)錯(cuò)誤及解決辦法,對安裝mysql時(shí)出現(xiàn)錯(cuò)誤相關(guān)知識感興趣的朋友一起學(xué)習(xí)吧2015-12-12mysql刪除重復(fù)記錄并且只保留一條的實(shí)現(xiàn)方法
本文主要介紹了mysql刪除重復(fù)記錄并且只保留一條的實(shí)現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-01-01MySQL數(shù)據(jù)庫常用操作和技巧(DBA必備知識)
MySQL數(shù)據(jù)庫可以說是DBA們最常見和常用的數(shù)據(jù)庫之一,為了方便大家使用,老MySQL DBA總結(jié)了MySQL數(shù)據(jù)庫最常見和最常使用的一些經(jīng)驗(yàn)和技巧,與分享大家!2011-03-03