MariaDB数据类型总结

    数据类型是数据的一种属性,它决定了数据的存储格式、有效范围及其它相应的限制。MariaDB的数据类型包括:字符型、整型、浮点值、日期时间型、布尔型及内建类型。

一、字符型

    1、CHAR和VARCHAR类型

        CHAR类型的长度是固定的,其取值范围为0-255。

        VARCHAR类型的长度是可变,其取值范围为0-65535。

        CHAR类型的长度定义了多少就会分配多少,适用于内容固定的内容;而VARCHAR类型的长度定义的是最大值,用多少分配多少,适用于内容不确定的内容。

        比如:

            CHAR(10)表示指定长度为10字节,插入值‘1’或‘1234’都会占用10个字节;

            VARCHAR(10)表示指定最大长度为10字节,而其占用的实际长度为字符串的长度加1,插入值‘1’时占用2个字节,插入值为‘1234’时占用5个字节。

    2、TEXT类型

        TEXT类型是一种特殊的字符串类型。只能用于保存诸如新闻之类的字符数据。

        TEXT类型包括TINYTEXT、TEXT、MEDIUMTEXT、LOGNTEXT。其区别如下表所示:

           类    型          长 度 范 围          占 用 空 间
         TINYTEXT          0-255字节         值的长度+2个字节
         TEXT          0-65535字节         值的长度+2个字节
         MEDIUMTEXT          0-2^24字节         值的长度+3个字节
         LONGTEXT          0-2^32字节         值的长度+4个字节

    3、BINARY和VARBINARY类型

        这两种数据类型都用于存放二进制数据的,二者的区别与CHAR和VARCHAR的区别相同,BINARY是定长的,取值范围为0-255,VARBINARY是变长取值范围为0-65535。

    4、BLOB类型

        BLOB类型是一种特殊二进制类型。用于保存数据量大的二进制数据,比如图片等。BLOB类型包括TINYBLOB、BLOB、MEDIUMBLOB、LONGBLOB。这几种数据类型的区别与TEXT类型相似,主要是能够保存的数据大小不同。

    对于字符类型可以使用以下修饰符进行限定:

        NULL:表示该字段可以为空值;

        NOT NULL:表示该字段不能为空值; 

    可以在插入的字符中使用通配符:

        %:匹配任意长度的任意字符;

        _:匹配任意单个字符。

二、数值型

    1、整型

        此种数据类型用于存储整数值。其包含的类型及取值范围如下表所示:

        类  型 占用字节数 无符号数的取值范围 有符号数的取值范围
TINYINT 1 0-255 -128-127
SMALLINT 2 0-65535 -32768-32767
MEDIUMINT 3 0-(2^24-1) -(2^24/2)-(2^24/2-1)
INT 4 0-(2^32-1) -(2^32/2)-(2^32/2-1)
BIGINT 8 0-(2^64-1) -(2^64/2)-(2^64/2-1)

    2、浮点型和定点型

        MariaDB中使用浮点数和定点数来表示小数。浮点弄包括单精度浮点数(FLOAT)和双精度浮点数(DOUBLE)。定点型使用DECIMAL(m,d)表示。

        其中:FLOAT占用4字节,DOUBLE占用8字节,DECIMAL占用(m+2)个字节。

        DECIMAL(m,d)中,m表示数字的总长度,小数点不占位;d表示小数点后面的数字长度。

        例如:DECIMAL(10,5)表示数据为DECIMAL型,数据长度为10,小数点后保留5位。

        注意浮点数也可以使用(m,d)的方法来指定精度,但这不是浮点数的标准用法,不建议使用,可能会对数据库的迁移造成影响。

    对于数值类型可以使用以下修饰符进行限定:

        UNSIGNED:表示只能插入无符号数值;

        NULL:表示该字段可以为空值;

        NOT NULL:表示该字段不能为空值;

        DEFAULT #:为该字段设置默认值;

        AUTO_INCREMENT:使该字段的数值自动增长。

三、布尔型

    MariaDB中没有专用布尔型,可以使用BOOLENG来进行数据类型的定义,但在查询会显示为TINYINT(1)。

    在TINYINT(1)中‘1’表示显示出来的位数。

四、日期时间型

    MariaDB中有多种用于表示日期和时间的数据类型。其包含的数据类型及取值范围见下表:

     类  型     字节数                       取 值 范 围
      DATE       4 1000/01/01-9999/12/31 
      TIME       3 -838:59:59-838:59:59
      YEAR       1 1901-2155
      DATETIME       8 1000/01/01 00:00:00-9999/12/31 23:59:59
      TIMESTAMP       4 19700101080001-20380119111407

    对于日期时间类型可以使用以下修饰符进行限定:

        NULL

        NOT NULL

        DEFAULT 'value'

五、内建类型

    1、ENUM类型

        ENUM类型称为枚举类型,表示仅能从给出的选项中选择其中一个。

            例如:ENUM (‘a’, ‘b’,‘c’)表示插入的值只能在a,b,c中进行选择,其它的值都是无效的。 

    2、SET类型

        SET类型称为集合类型,表示能使用给出的元素组合成字符串。

            例如:SET (‘a’,’b’,’c’)表示插入的值可以是a,b,c三个字符的任意组合,即插入‘a',‘ac',‘abc'都是合法的。

 对于内建类型可以使用以下修饰符进行限定:

        NULL

        NOT NULL

        DEFAULT 'value'

原创文章,作者:petmaster,如若转载,请注明出处:http://www.178linux.com/5264

(3)
petmasterpetmaster
上一篇 2015-06-30 17:00
下一篇 2015-07-01 10:19

相关推荐

  • RAID5的组建

        RAID5在实际场景中应用最多,RAID5最少使用3块硬盘,3块硬盘中允许1块硬盘损坏,RAID5它的最大特点是可以有一块硬盘做冗余,其使用率是 N-1存储空间(N表示硬盘数量)     首先创建分区,然后转换分区类型,最后保存退出。 注解:虚拟机总共有6块硬盘,我是从第3块硬盘开始做rai…

    Linux干货 2016-02-14
  • 单引号,双引号,反引号的作用(首篇)

    哈哈哈!这是我的博客生涯的开始,也是我学习Linux的开始,所以我将励志成为一名老司机带你装X带你飞。 1.首先是三兄弟中的单引号,它的作用只是单纯的呈现出自己所包含的文字并不能执行其中的命令,所以它也是三兄弟中最笨的那个,作用单一,简单。 2,再来介绍介绍双引号,他的作用和单引号大同小异,它能包含单引号,反引号,以及除了执行以$和\的字符为首的函数能认识之…

    2017-07-11
  • 文本处理三剑客之vim

    由于Linux中的配置文件都是以文本方式存在的,所以在Linux的系统中使用文本编辑器来配置系统是一件很重要的事情。而vim由于程序简单、编辑速度快且能够检查编程中的语法错误,所以已成为最常用也最重要的文本处理工具。下面我们就来介绍一下。 一、vim的模式 Vim在使用过程中,基本上分为三种模式:命令模式、编辑模式与扩展命令模式。在三种模式下,我们可以执行的…

    Linux干货 2016-08-12
  • 浅谈vim使用

    vim常用命令总结 2013年10月12日 ⁄ 综合 ⁄ 共 3264字 ⁄ 字号 小 中 大 ⁄  评论关闭        vim 选择文本,删除,复制,粘贴   文本的选择,对于编辑器来说,是很基本的东西,也经常被用到,总结如下: v    从光标当前位置开始,光标所经过的地…

    Linux干货 2016-08-12
  • vim编辑器

    一、vim简介    vi: Visual Interface,文本编辑器     文本: ASCII, Unicode     文本编辑种类:         行编辑器: sed…

    Linux干货 2016-08-10
  • Linux系统的软链接和硬链接

    Linux的链接是一种共享文件和访问它的用户的若干目录项之间建立联系的一种方法。一共分为两种链接,分别是软链接和硬链接。 一、硬链接 1、硬链接的本质上是一个文件,它们除了名字不一样,其他都一样,占用的空间是一个。硬链接会增加文件的链接数。如下图 (1)建立硬链集之前     (2)建立硬链接之后 2、删去一个链接名,链接数减一…

    Linux干货 2016-10-22