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