设为首页 收藏本站
查看: 222|回复: 0

[经验分享] MariaDB数据类型

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2015-6-15 11:26:41 | 显示全部楼层 |阅读模式
数据类型是数据的一种属性,它决定了数据的存储格式、有效范围及其它相应的限制。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'


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-77542-1-1.html 上篇帖子: mysql修改密码 下篇帖子: 使用tcmmaloc优化mysql的内存分配性能
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表