zoukankan      html  css  js  c++  java
  • MySQL数据类型

    1.整型

    1.处理符号问题时,默认是有符号,需要无符号时添加 UNSIGNED

    CREATE TABLE `tbl` (`number` INT UNSIGNED);

    2.INT(4),INT(11)与INT

    INT(w),w表示的不是这个值的位数,仅仅代表显示的宽度,需要配合ZEROFILL使用,如

    CREATE TABLE `t3` (`id` INT(3) ZEROFILL);
    
    INSERT INTO T3 VALUES(2);
    INSERT INTO T3 VALUES(2456);

    查询时,如果实际位数大于宽度,则全部显示,否则补0

     

    当使用ZEROFILL时,该属性变为UNSIGNED,如果插入负值,则实际插入了0.

    3.其他整型

    TINYINT 1字节

    SMALLINT 2字节

    MEDIAINT 3字节

    INT  4字节

    BIGINT 8字节

    2.浮点型与定点型

    1.浮点型有两种:FLOAT [(M,D)], DOUBLE [(M,D)]

    M表示总位数,D表示小数点后的位数,当省略时,mysql按实际数值表示

    2.定点型DECIMAL

    当M,D被省略时,M=10,D=0

    2.当插入的值小数点位数不足时补零,多余时舍入(可能是四舍五入)。

    3.详细参照

    https://www.cnblogs.com/gulibao/p/5416245.html

    3.字符型

    1.VARCHAR(N)

    N的意义

    在MySQL5之前,N表示字节数,MySQL5之后表示的是字符数,具体所占的字节数与编码有关。

      对于GBK编码,一个汉字占3个字节,UTF-8编码,占2-3个字节,计算时按3个字节计算。

    VARCHAR类型的最大长度

    mysql将varchar数据保存在聚簇索引之外,且用1-2两个字节表示实际字符串长度,故其理论最大长度为65535字节,之所以是理论,是因为它还受行长度的限制。

    来自行长度的限制

    mysql5之后,行长度的最大字节数为65535,由于varchar的起始位和结束位还要占3个字节,故utf8编码的表,其最大字符数为65535/3-1=21844

    当不止一个varchar属性时,最大长度又会发生变化。

    2.CHAR(N)

    N的意义

    N依然表示字符数,具体占的字节数看编码,N最大255,当插入字符串长度超过N时,发生截取。

     特点

    CHAR类型的数据存储时会自动填充空格,检索时效率较高。

    4.时间型

    1.长度比较

    TIMESTAMP 表示范围从1970年到2038年,占四个字节

    DATETIME 占8个字节

    DATE,TIME,YEAR均占3个字节。

    2.TIMESTAMP的两个属性

    如果定义时DEFAULT CURRENT_TIMESTAMP和ON UPDATE CURRENT_TIMESTAMP子句都有,列值为默认使用当前的时间戳,并且自动更新。
    如果不使用DEFAULT和ON UPDATE子句,那么它等同于DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP。
    如果只有DEFAULT CURRENT_TIMESTAMP子句,而没有ON UPDATE子句,列值默认为当前时间戳但不自动更新。
    如果只有ON UPDATE CURRENT_TIMESTAMP子句,列默认为0并自动更新

    5.枚举型

    ENUM('value1','value2') 按字符串形式表示,内部按整形存储,最多有65535个值

  • 相关阅读:
    linux基础
    模块三、企业实战案例
    模块二、shell脚本逻辑结构
    模块一:shell 脚本基础
    三剑客、shell脚本
    定时任务、用户管理、磁盘介绍
    python笔记03
    文件属性、正则表达式、文件权限
    Linux系统目录结构介绍
    Linux基础及入门介绍
  • 原文地址:https://www.cnblogs.com/lshao/p/9850865.html
Copyright © 2011-2022 走看看