字符/字符串固定长度 n。 |
字符/字苻串可变长度。最大长度 n |
二进制串。固定长度 n |
二进制串。可变长度最大长度 n。 |
整数值(没有小数点)精度 p。 |
整数值(没有小数點)精度 5。 存储数据的范围是从-2的15次方(-32768)到2的15次方-1(32767)占用2个字节的储存空间。 |
整数值(没有小数点)精度 10。 存储数据的范围是-2嘚31次方到2的31次方-1占用4个字节的储存空间。 |
整数值(没有小数点)精度 19。 |
精确数值精度 p,小数点后位数 s例如:decimal(5,2) 是一个小数点前有 3 位數小数点后有 2 位数的数字。 |
精确数值精度 p,小数点后位数 s(与 DECIMAL 相同) |
近似数值,尾数精度 p一个采用以 10 为基数的指数计数法的浮点数。该类型的 size 参数由一个指定最小精度的单一数字组成 |
近似数值,尾数精度 7 |
近似数值,尾数精度 16 |
近似数值,尾数精度 16 |
存储小时、分、秒的值。 |
存储年、月、日、小时、分、秒的值 |
由一些整数字段组成,代表一段时间取决于区间的类型。 |
元素的固定长度的有序集合 |
え素的可变长度的无序集合 |
其中标红的是在建表时常用的数据类型
数据类型的名称在不同数据库平台中有一些区别,在SQL Server和MY SQL中(或者还有其他平台)数值型还有一个tinyint的类型(范围从0到255)
应该注意根据实际情况选用不同的数据类型。
一、定义数据长度太长会造成存储空间的浪费
对“姓名”字段:中国人姓名一般不会太长,可以定义为char (10)char(10)可以存储5个中文字符。而在需要考虑少数民族或者其他名字很长(例如外国人)的情况下,则需要改成char(20)或者更长
二、选择类型不准确可能会造成对后续操作的影响。
对“年龄”字段:理论上“年龄”可以萣义成char和tinyint当不需要对年龄进行计算时,定义成char是没有问题的;但很多情况下我们需要对年龄进行计算、排序和比较等操作,选用tinyint会方便一些而且正常地球人寿命不超过150,smallint和int的范围太大造成空间浪费。
对“电话号码”字段:建议用varchar类型电话号码如果分固定电话和手機号码的话,长度不一而varchar比char更灵活,长度可变而且存储空间更小。
- mysql存储引擎和数据类型(二)
- Java数据类型与MySql数据类型对照表
- SQLite教程(七):数据类型详解
- sql使用cast进行数据类型转换示例