良好的字段定义对于优化数据库至关重要。 理想的方法要求您专门使用所需类型和大小的字段。 例如,如果你只使用一个字段,五个字符宽,不要定义一个字段,20个字符宽。 字段(或列)类型也称为给定存储在字段中的数据类型的数据类型。
mariadb数据类型可以分为数字,日期和时间以及字符串值。
mariadb支持的数字数据类型如下 -
tinyint - 此数据类型表示落入-128到127的有符号范围内的小整数,以及0到255的无符号范围。
boolean - 此数据类型将值0与“false”相关联,值1与“true”相关联。
smallint - 此数据类型表示-32768到32768的有符号范围内的整数,以及0到65535的无符号范围。
mediumint - 此数据类型表示有符号范围-8388608到8388607中的整数,无符号范围0到16777215。
int(也为integer) - 此数据类型表示正常大小的整数。当标记为unsigned时,范围跨越0到4294967295.当有符号(默认设置)时,范围跨越-2147483648到2147483647.当列设置为zerofill(无符号状态)时,其所有值都由零添加int值中的m个数字。
bigint - 此数据类型表示有符号范围9223372036854775808到9223372036854775807内的整数,无符号范围0到18446744073709551615。
decimal(dec,numeric,fixed) - 该数据类型表示精确的定点数,m指定其数字,d指定小数后的数字。 m值不添加“ - ”或小数点。如果d设置为0,则不会出现小数或小数部分,并且该值将舍入为最接近的decimal insert。最大允许位数为65,小数位数的最大值为30.默认值m的默认值为10,省略时d为0。
float - 此数据类型表示值0的小的浮点数或以下范围内的数字 -
-3.402823466e + 38至-1.175494351e-38
1.175494351e-38至3.402823466e + 38
double(也是real和double precision) - 此数据类型表示值0的正常大小的浮点数,或以下范围内的值 -
-1.7976931348623157e + 308至-2.2250738585072014e-308
2.2250738585072014e-308至1.7976931348623157e + 308
bit - 此数据类型表示位字段,m指定每个值的位数。省略m时,默认值为1.位值可以通过“b'[value]'”应用,其中值表示0和1中的位值。零填充从左边自动发生全长;例如,“10”变为“0010”。
mariadb支持的日期和时间数据类型如下 -
date - 此数据类型表示日期范围“1000-01-01”到“9999-12-31”,并使用“yyyy-mm-dd”日期格式。
time - 此数据类型表示“-838:59:59.999999”到“838:59:59.999999”的时间范围。
datetime - 此数据类型表示范围“1000-01-01 00:00:00.000000”至“9999-12-31 23:59:59.999999”。它使用“yyyy-mm-dd hh:mm:ss”格式 。
timestamp - 此数据类型表示“yyyy-mm-dd hh:mm:dd”格式的时间戳。 它主要用于详细描述数据库修改的时间,例如插入或更新。
year - 此数据类型表示4位数格式的年份。 四位数格式允许在1901到2155和0000范围内的值。
mariadb支持的字符串类型值如下 -
string literals - 此数据类型表示用引号括起来的字符序列。
char - 此数据类型表示包含指定长度的空格的右侧带有固定长度的字符串。 m表示字符的列长度,取值范围为0〜255,缺省值为1。
varchar - 此数据类型表示一个可变长度字符串,m范围(最大列长度)为0到65535。
binary - 此数据类型表示二进制字节字符串,m为列长度(以字节为单位)。
varbinary - 此数据类型表示可变长度的二进制字节字符串,m为列长度。
tinyblob - 此数据类型表示最大长度为255(28 - 1)个字节的blob列。在存储中,每个都使用一个字节长度的前缀,表示值中的字节数量。
blob - 此数据类型表示最大长度为65,535(216 - 1)个字节的blob列。在存储中,每个都使用两字节长度的前缀,表示值中的字节数量。
mediumblob - 此数据类型表示最大长度为16,777,215(224 - 1)个字节的blob列。在存储中,每个都使用一个三字节长度前缀,表示值中的字节数量。
longblob - 此数据类型表示最大长度为4,294,967,295(232 - 1)个字节的blob列。在存储中,每个使用四字节长度的前缀,表示值中的字节数量。
tinytext - 此数据类型表示最大长度为255(28 - 1)个字符的文本列。在存储中,每个都使用一个字节长度的前缀,表示值中的字节数量。
text - 此数据类型表示最大长度为65,535(216 - 1)个字符的文本列。在存储中,每个都使用两字节长度的前缀,表示值中的字节数量。
mediumtext - 此数据类型表示最大长度为16,777,215(224 - 1)个字符的文本列。在存储中,每个都使用三字节长度前缀,表示值中的字节数量。
longtext - 此数据类型表示最大长度为4,294,967,295或4gb(232 - 1)个字符的文本列。在存储中,每个使用四字节长度的前缀,表示值中的字节数量。
enum - 此数据类型表示一个列表中只有一个值的字符串对象。
set - 此数据类型表示一个列表中具有零个或多个值的字符串对象,最多包含64个成员。 set值在内部作为整数值存在。