mysql的数据类型

数值类型

一、整数

  • Tinyint 1个字节
  • Smallint 2个字节
  • Mediumint 3个字节
  • int 4个字节
  • Bigint 8个字节
  • 以上都可以是有符号类型或者无符号类型
  • 如何设置有符号和无符号:默认是有符号的,添加unsigned设置为无符号类型
create table tab_int{
  num1 int,
  num2 int unsigned
};
  • 如果插入的值超过了类型的范围,则会报异常,并插入临界值
  • 如果不设置长度,会有默认的长度,如果想设置的话可以自己设置(如下
    ),但是此处的长度与int的范围无关,表明当长度不足x时,使用0进行填充;设置长度时需要搭配zerofill,且同时会强制变为无符号
create table tab_int{
  num int(7) zerofill
};

二、小数:定点数+浮点数

  • 浮点数:float(M,D) 4个字节。double(M,D) 8个字节
  • 定点数:decimal(M,D) 8个字节
  • M=整数个数+小数的个数,D表示小数的个数,超过的话显示临界值
  • M和D都可以省略,如果是decimal类型的话,默认M=10 D=0;如果是float和double类型的话,则会根据插入数据的精度来决定
  • 相比较之下,定点数的精度较高
  • 类型的选择:所选择的类型越简单越好,能保存数值的类型越小越好

字符类型

一、较短的文本:char,varchar

  • char(M), varchar(M) M表示能够存储的最大字符数
  • char 固定长度的字符,长度可以省略且默认为1,相对比较耗空间,但是效率较高
  • varchar 可变长度的字符,长度不可以省略,相对比较节省空间,但是效率较低

二、枚举类型

create table tab{
  c1 enum('a', 'b' ,'c')
};

三、较长的文本:text、blob(较长的二进制数据)

日期类型

  • date 只有日期
  • time 只有时间
  • datetime 日期+时间
  • year 只有年
  • timestamp 日期+时间
  • datetime和timestamp的比较:datetime支持的时间范围较大,timestamp支持的时间范围较小;timestamp的时间更为准确
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容