mysql 之如何选取数据类型

  前言:在使用mysql时,我们发现一个字段会有很多选项,比如数字有int tinyint bigint 等,字符串有char,varchar等,那么我们再设计数据库时如何选择最佳的值呢?  

1.数值 

    在使用前先问自己一个问题,字段是不是一定是纯数字呢,会不会有空格等不是数字的字符出现,如果有,请用字符串。

1. 首先我们要明白,数值分为带符号和不带符号,其原理就是把头部的一个 0或1 当做正负号,在选择的时候你要考虑好是否带符号。

2. 大小参照表 

3.类型选好了,我们来讲一下size,int(size),怎么设置int()括号里面的大小呢

(1)首先我们要明白 tinyint(1)和tinyint(127),能储存的数据是一样大的,所以能储存的数据大小与size无关,只与类型有关 

(2)那么size是不是就没什么用了?

我们来实践一下,我们将是status字段设为tinyint(2),并加上0填充。我们输入1,11,111分别显示为 01,11,111

在测试一下不选0填充,则为1,11,111

所以,size一般为显示的位数,这个字段一般显示几位数就选几位数,只要不加0填充其实没有太大影响

2.字符串

1.首先了解全部 

字符串类型

字节

描述及存储需求

CHAR(M)MM为0~255之间的整数
VARCHAR(M) M为0~65536之间的整数
TINYBLOB 允许长度0~255字节
BLOB 允许长度0~65535字节
MEDUIMBLOB 允许长度0~167772150字节
LONGBLOB 允许长度0~4294967295
TINYTEXT 允许长度0~255字节
TEXT 允许长度0~65535字节
MEDIUMTEXT 允许长度0~167772150字节
LONGTEXT 允许长度0~4294967295字节
VARBINARY(M)M允许长度0~M个字节的边长字节字符集
BINARY(M)M允许长度0~M个字节的定长字节字符集

 2.其实我们常用的只有char和varchar,我们着重了解这两个的区别

char:定长,效率高,一般用于固定长度的表单提交数据存储  ;例如:身份证号

varchar:不定长,效率偏低

char 255字节,假设编码为utf8,那么一个汉字为3个字节,那么最多存储85个字符,所以,当一个字符确定在80个汉字以下,则设置为char。(个人理解),至于size填多少,自己大约计算,将字符*3就行了(有汉字)

3.时间 

前言:MySQL服务器采用了Unix的时间功能,对于TIMESTAMP值,可处理的日期至2037年。对于DATE和DATETIME值,可接受的日期可至9999年。

1.date   存储数据格式为:YYYY-MM-DD,它支持的范围为'1000-01-01'到'9999-12-31'

2.Datetime  YYYY-MM-DD HH:MM:SS,它支持的范围为'1000-01-01 00:00:00'到'9999-12-31 23:59:59',

3.TimeStamp YYYY-MM-DD HH:MM:SS  1970-01-01 00:00:00到当前的时间差值

4.Time  HH:MM:SS  TIME值的范围可以从'-838:59:59'到'838:59:59'。小时部分会因此大的原因是TIME类型不仅可以用于表示一天的时间(必须小于24小时),还可能为某个事件过去的时间或两个事件之间的时间间隔(可以大于24小时,或者甚至为负)。

5.year 年

6.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值