良好的字段定義對(duì)于優(yōu)化數(shù)據(jù)庫(kù)至關(guān)重要。 理想的方法要求您專(zhuān)門(mén)使用所需類(lèi)型和大小的字段。 例如,如果你只使用一個(gè)字段,五個(gè)字符寬,不要定義一個(gè)字段,20個(gè)字符寬。 字段(或列)類(lèi)型也稱(chēng)為給定存儲(chǔ)在字段中的數(shù)據(jù)類(lèi)型的數(shù)據(jù)類(lèi)型。
MariaDB數(shù)據(jù)類(lèi)型可以分為數(shù)字,日期和時(shí)間以及字符串值。
MariaDB支持的數(shù)字?jǐn)?shù)據(jù)類(lèi)型如下 -
TINYINT - 此數(shù)據(jù)類(lèi)型表示落入-128到127的有符號(hào)范圍內(nèi)的小整數(shù),以及0到255的無(wú)符號(hào)范圍。
BOOLEAN - 此數(shù)據(jù)類(lèi)型將值0與“false”相關(guān)聯(lián),值1與“true”相關(guān)聯(lián)。
SMALLINT - 此數(shù)據(jù)類(lèi)型表示-32768到32768的有符號(hào)范圍內(nèi)的整數(shù),以及0到65535的無(wú)符號(hào)范圍。
MEDIUMINT - 此數(shù)據(jù)類(lèi)型表示有符號(hào)范圍-8388608到8388607中的整數(shù),無(wú)符號(hào)范圍0到16777215。
INT(也為INTEGER) - 此數(shù)據(jù)類(lèi)型表示正常大小的整數(shù)。當(dāng)標(biāo)記為unsigned時(shí),范圍跨越0到4294967295.當(dāng)有符號(hào)(默認(rèn)設(shè)置)時(shí),范圍跨越-2147483648到2147483647.當(dāng)列設(shè)置為ZEROFILL(無(wú)符號(hào)狀態(tài))時(shí),其所有值都由零添加INT值中的M個(gè)數(shù)字。
BIGINT - 此數(shù)據(jù)類(lèi)型表示有符號(hào)范圍9223372036854775808到9223372036854775807內(nèi)的整數(shù),無(wú)符號(hào)范圍0到18446744073709551615。
DECIMAL(DEC,NUMERIC,F(xiàn)IXED) - 該數(shù)據(jù)類(lèi)型表示精確的定點(diǎn)數(shù),M指定其數(shù)字,D指定小數(shù)后的數(shù)字。 M值不添加“ - ”或小數(shù)點(diǎn)。如果D設(shè)置為0,則不會(huì)出現(xiàn)小數(shù)或小數(shù)部分,并且該值將舍入為最接近的DECIMAL INSERT。最大允許位數(shù)為65,小數(shù)位數(shù)的最大值為30.默認(rèn)值M的默認(rèn)值為10,省略時(shí)D為0。
FLOAT - 此數(shù)據(jù)類(lèi)型表示值0的小的浮點(diǎn)數(shù)或以下范圍內(nèi)的數(shù)字 -
-3.402823466E + 38至-1.175494351E-38
1.175494351E-38至3.402823466E + 38
DOUBLE(也是REAL和DOUBLE PRECISION) - 此數(shù)據(jù)類(lèi)型表示值0的正常大小的浮點(diǎn)數(shù),或以下范圍內(nèi)的值 -
-1.7976931348623157E + 308至-2.2250738585072014E-308
2.2250738585072014E-308至1.7976931348623157E + 308
BIT - 此數(shù)據(jù)類(lèi)型表示位字段,M指定每個(gè)值的位數(shù)。省略M時(shí),默認(rèn)值為1.位值可以通過(guò)“b'[value]'”應(yīng)用,其中值表示0和1中的位值。零填充從左邊自動(dòng)發(fā)生全長(zhǎng);例如,“10”變?yōu)椤?010”。
MariaDB支持的日期和時(shí)間數(shù)據(jù)類(lèi)型如下 -
DATE - 此數(shù)據(jù)類(lèi)型表示日期范圍“1000-01-01”到“9999-12-31”,并使用“YYYY-MM-DD”日期格式。
TIME - 此數(shù)據(jù)類(lèi)型表示“-838:59:59.999999”到“838:59:59.999999”的時(shí)間范圍。
DATETIME - 此數(shù)據(jù)類(lèi)型表示范圍“1000-01-01 00:00:00.000000”至“9999-12-31 23:59:59.999999”。它使用“YYYY-MM-DD HH:MM:SS”格式 。
TIMESTAMP - 此數(shù)據(jù)類(lèi)型表示“YYYY-MM-DD HH:MM:DD”格式的時(shí)間戳。 它主要用于詳細(xì)描述數(shù)據(jù)庫(kù)修改的時(shí)間,例如插入或更新。
YEAR - 此數(shù)據(jù)類(lèi)型表示4位數(shù)格式的年份。 四位數(shù)格式允許在1901到2155和0000范圍內(nèi)的值。
MariaDB支持的字符串類(lèi)型值如下 -
String literals - 此數(shù)據(jù)類(lèi)型表示用引號(hào)括起來(lái)的字符序列。
CHAR - 此數(shù)據(jù)類(lèi)型表示包含指定長(zhǎng)度的空格的右側(cè)帶有固定長(zhǎng)度的字符串。 M表示字符的列長(zhǎng)度,取值范圍為0?255,缺省值為1。
VARCHAR - 此數(shù)據(jù)類(lèi)型表示一個(gè)可變長(zhǎng)度字符串,M范圍(最大列長(zhǎng)度)為0到65535。
BINARY - 此數(shù)據(jù)類(lèi)型表示二進(jìn)制字節(jié)字符串,M為列長(zhǎng)度(以字節(jié)為單位)。
VARBINARY - 此數(shù)據(jù)類(lèi)型表示可變長(zhǎng)度的二進(jìn)制字節(jié)字符串,M為列長(zhǎng)度。
TINYBLOB - 此數(shù)據(jù)類(lèi)型表示最大長(zhǎng)度為255(28 - 1)個(gè)字節(jié)的blob列。在存儲(chǔ)中,每個(gè)都使用一個(gè)字節(jié)長(zhǎng)度的前綴,表示值中的字節(jié)數(shù)量。
BLOB - 此數(shù)據(jù)類(lèi)型表示最大長(zhǎng)度為65,535(216 - 1)個(gè)字節(jié)的blob列。在存儲(chǔ)中,每個(gè)都使用兩字節(jié)長(zhǎng)度的前綴,表示值中的字節(jié)數(shù)量。
MEDIUMBLOB - 此數(shù)據(jù)類(lèi)型表示最大長(zhǎng)度為16,777,215(224 - 1)個(gè)字節(jié)的blob列。在存儲(chǔ)中,每個(gè)都使用一個(gè)三字節(jié)長(zhǎng)度前綴,表示值中的字節(jié)數(shù)量。
LONGBLOB - 此數(shù)據(jù)類(lèi)型表示最大長(zhǎng)度為4,294,967,295(232 - 1)個(gè)字節(jié)的blob列。在存儲(chǔ)中,每個(gè)使用四字節(jié)長(zhǎng)度的前綴,表示值中的字節(jié)數(shù)量。
TINYTEXT - 此數(shù)據(jù)類(lèi)型表示最大長(zhǎng)度為255(28 - 1)個(gè)字符的文本列。在存儲(chǔ)中,每個(gè)都使用一個(gè)字節(jié)長(zhǎng)度的前綴,表示值中的字節(jié)數(shù)量。
TEXT - 此數(shù)據(jù)類(lèi)型表示最大長(zhǎng)度為65,535(216 - 1)個(gè)字符的文本列。在存儲(chǔ)中,每個(gè)都使用兩字節(jié)長(zhǎng)度的前綴,表示值中的字節(jié)數(shù)量。
MEDIUMTEXT - 此數(shù)據(jù)類(lèi)型表示最大長(zhǎng)度為16,777,215(224 - 1)個(gè)字符的文本列。在存儲(chǔ)中,每個(gè)都使用三字節(jié)長(zhǎng)度前綴,表示值中的字節(jié)數(shù)量。
LONGTEXT - 此數(shù)據(jù)類(lèi)型表示最大長(zhǎng)度為4,294,967,295或4GB(232 - 1)個(gè)字符的文本列。在存儲(chǔ)中,每個(gè)使用四字節(jié)長(zhǎng)度的前綴,表示值中的字節(jié)數(shù)量。
ENUM - 此數(shù)據(jù)類(lèi)型表示一個(gè)列表中只有一個(gè)值的字符串對(duì)象。
SET - 此數(shù)據(jù)類(lèi)型表示一個(gè)列表中具有零個(gè)或多個(gè)值的字符串對(duì)象,最多包含64個(gè)成員。 SET值在內(nèi)部作為整數(shù)值存在。
更多建議: