mysql 数据类型

1 整数类型

   TINYINT  SMALLINT MEDIUMINT  INT BIGINT 分别使用 8,16,24,32,64位存储空间,存储范围是-2的(n-1)次方到2的(n-1)次方-1,其中n是存储空间位数。unsigned属性不允许负值,大致可以使正数的上限提高一倍。可以指定正数类型的宽度,例如int(11),对大多数应用没有意义:因为不会限制值的合法范围,只是规定了mysql的一些交互工具用来显示字符的个数。对于存储和计算来说int(1)和int(11)是相同的。

2 实数类型

   FLOAT DOUBLE 支持使用标准的浮点运算进行近似运算

   DECIMAL类型用于存储精确的小数,decimal(18,9)小数点两边各存储9个数字,一共使用9个字节:小数点前4个字节,小数点后4个字节,小数点本身1个字节。

3.字符串类型

    varchar  存储可变长字符串,比定长类型更节省空间,因为越短的字符串使用越少的空间。varchar需要使用1或者2个额外字节记录字符串的长度,如果列的最大长度小于或等于255,则使用1个字节表示,否则使用2个字节表示。update可能使行变的比原来更长,这就导致需要做额外的工作。innoDB可以把过长的varchar存储为BLOB。

 char类型适合存储很短的字符,比如密码的MD5值,因为是定长。对于经常变更的数据,char也比varchar更好,因为定长的char类型不容易产生碎片,对于非常短的列char比varchar在存储空间上也更有效率。例如用char(1)来存储只有Y和N的值,只需要1个字节,但varchar(1)需要2个字节(有1个字节要记录字符串长度)。

4.BLOB和TEXT类型(不做过多解释,需要用到再研究)

存储很大的数据而设计的字符串数据类型,分别采用二进制和字符方式存储。

5.ENUM枚举

   有时候使用枚举列代替常用的字符串类型,枚举列实际存储的是整数,并且在表的.frm文件中保存“数字-字符串”映射关系的“查找表”,枚举列的排序是按照内部存储的整数而不是定义的字符串进行排序的。可以使用field函数显式的进行排序,比如order by FIELD(e,'apple','dog','fish')。

6.日期,时间类型

    日期类型 DATETIME   TIMESTAMP

     DATATIME保存大范围的值 1001年到9999年,精度为秒,他把日期和时间封装到格式为YYYYMMDDHHMMSS的整数中,与时区无关,使用8个字节的存储空间

     TIMESTAMP保存从1970年1月1日午夜以来的秒数,他与unix时间戳相同,只使用4个字节的存储空间,因此范围比DATETIME小的多,只能表示    1970年到2038年。


    

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值