Mysql中的数据类型

Mysql支持多种数据类型,主要有数值类型,日期/时间类型和字符串类型。

数值类型:

   TINYINT:存储很小的整数,占用一个字节;

        SMALLINT:存储小的整数,占用二个字节;

        MEDIUMINT:存储中等大小的整数,占用三个字节;

        INT:存储普通大小的整数,占用四个字节;

        BIGINT:大整数,占用八个字节;

        注:INT(11)表示的是该数据类型指定的显示宽度,显示宽度与数据类型的取值范围是无关的,数值的位数小于指定宽度时会由空格填充,如果插入大于显示宽度的值,只要该值不超过该类型整数的取值范围,数值已然可以插入,而且可以正常的显示。

        FLOAT:单精度浮点类型,占四个字节;

        DOUBLE:双精度浮点类型,占八个字节;

        DECIMAL:定点数类型,浮点数和定点数都可以用(M,N)来表示,其中M表示精度,表示总共的位数,N表示标度,表示小数的位置,占(M+2)个字节,DECIMAl类型不同于FLOAT与DOUBLE,它实际以串存放,其最大取值范围与DOUBLE一样,但其有效的取值单位由M和D决定;

  FLOAT和DOUBLE在不指定精度时,默认会按照实际的精度(由计算机硬件和操作系统决定),DECIMAL如果不指定精度,默认为(10,0);

日期与时间类型:

  YEAR(YYYY)  TIME(HH:MM:SS) DATE(YYYY-MM-DD)

  DATETIME(YYYY-MM-DD HH:MM:SS)    YIMESTAMP(YYYY-MM-DD HH:MM:SS);

文本字符串类型:

  CHAR  VARCHAR TINYTEXT TEXT MEDIUMTEXT  LONGTEXT ENUM SET

  ENUM是一个字符串对象,其值为表创建时某列规定的一系列值,Mysql中它的索引序号从1开始,在对枚举类型的列中插入值可以插入原始值也可以插入索引序号,当插入不在索引列表或者超范围的索引值时会报错,例:

  create table tmp(

    score int,

    level enum('excellent' , 'good', 'bad')

  )

  SET是一个字符串对象,可以由零个或多个值,最多可以有64个成员,其值为表创建时规定的一系列值,ENUM类型的的字段只能从定义的列值中选择一个插入,而SET可以从定义的列值中选择多个字符的联合,SET有序不能重复。

二进制字符串类型:

  BIT BINARY VARBINARY TINYBLOB BLOB MEDIUMBLOB LONGBLOB

  

  

posted @ 2018-10-24 17:30  lilacmemo  阅读(300)  评论(0编辑  收藏  举报