mysql 一些属性

1)定义id,设置int,涉及的属性有:

BINARY二进制

UNSIGNED无符号数

UNSIGNED ZEROFILL

在列字段中使用UNSIGNED ZEROFILL属性,如:

插入int(4),你插入1,显示0001,插入负数显示为0000,因为mysql自动增加UNSIGNED属性 UNSIGNED不能为负数,当你插入负数时就显示0。

timestamp的两个属性:

CURRENT_TIMESTAMP 和ON UPDATE CURRENT_TIMESTAMP  

使用情况分别如下:

1. CURRENT_TIMESTAMP 

当要向数据库执行insert操作时,如果有个timestamp字段属性设为 CURRENT_TIMESTAMP,则无论这个字段有没有set值都插入当前系统时间 

 

2. ON UPDATE CURRENT_TIMESTAMP

当执行update操作是,并且字段有ON UPDATE CURRENT_TIMESTAMP属性。则字段无论值有没有变化,它的值也会跟着更新为当前UPDATE操作时的时间。

 

2)char与varchar的区别

char (13)长度固定, 如'www.jb51.net' 存储需要空间 12个字符

varchar(13) 可变长 如'www.jb51.net' 需要存储空间 13字符,

从上面可以看得出来char 长度是固定的,不管你存储的数据是多少他都会都固定的长度。而varchar则处可变长度但他要在总长度上加1字符,这个用来存储位置。所以实际应用中用户可以根据自己的数据类型来做。
char是一种固定长度的类型,varchar则是一种可变长度的类型
  char(M)类型的数据列里,每个值都占用M个字节,如果 某个长度小于M,MySQL就会在它的右边用空格字符补足.(在检索操作中那些填补出来的空格字符将被去掉)在varchar(M)类型的数据列里,每个 值只占用刚好够用的字节再加上一个用来记录其长度的字节(即总长度为L+1字节).

 

从上面可以看出来,由于某种原因char 固定长度,所以在处理速度上要比varchar快速很多,但是对费存储空间,所以对存储不大,但在速度上有要求的可以使用char类型,反之可以用varchar类型来实例。

 

建议:对于简单定长的字符,如门牌号102 302之类,有char(3)比varchar(3)好。

 

3、ENUMSET枚举类型能比较好限制存储的类型和大小。

原文地址:https://www.cnblogs.com/chq3272991/p/5756144.html