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

    1、数值类型
      1、整型
        1、int 大整型(4个字节)
          取值范围 :0 ~ (2**32 - 1(42亿多))
        2、tinyint 微小整型(1个字节)
          1、有符号(signed默认) : -128 ~ 127
          2、无符号(unsigned) : 0 ~ 255
            例子:age tinyint unsigned,
        3、smallint 小整型(2个字节)
        4、bigint 极大整型(8个字节)
      2、浮点型
        1、float(4个字节,最多显示7个有效位,如果超过7的话,不会报错,但存进去的数在第7位之后会不正确)
          1、用法
            字段名 float(m,n) m->总位数 n->小数位位数
            float(5,2)取值范围? -999.99 ~ 999.99
        2、double(8个字节)
          字段名 double(m,n)
        3、decimal(最多显示28个有效位)
          1、decimal(m,n)
          2、存储空间(整数、小数分开存储)
          规则:将9的倍数包装成4个字节

          余数   字节
            0     0
          1-2            1
          3-4            2
          5-6            3
          7-9            4
        例:decimal(19,9)
        一个浮点型为10为整数,9位小数:
        整数部分:10/9=1余1 4字节+1字节 = 5字节
        小数部分:9/9=0 4字节+0字节 = 4字节
        总共占有:5字节 + 4字节 = 9字节

    2、字符类型
      1、char(定长)
        1、取值范围:1~255
      2、varchar(变长)
        1、取值范围:1~65535
      3、text / longtext(4G) / blob / longblob(4G)
      4、char和varchar的特点
        1、char :浪费存储空间,性能高
        2、varchar :节省存储空间,性能低
      5、字符类型的宽度和数值类型宽度的区别
        1、数值类型宽度为显示宽度,只用于select查询是显示,
        和占用存储无关,可用zerofill查看效果。
        2、字符类型的宽度超过后无法存储

    3、枚举类型
      1、单选enum
        sex enum(值1, 值2,.....)
      2、多选set
        likes set(值1, 值2,....)

    4、日期时间
      1、日期时间类型
        1、date :"YYYY-MM-DD"
        2、time :"HH:MM:SS"
        3、datetime :"YYYY-MM-DD HH:MM:SS"
        4、timestamp :"YYYY-MM-DD HH:MM:SS"
        5、注意
          1、datetime :不给值默认返回NULL值
          2、timestamp :不给值默认返回系统当前时间


      2、日期时间函数
        1、now() 返回服务器当前时间
        2、curdate() 返回当前日期
        3、curtime() 返回当前时间
        4、year(date) 返回指定时间的年份(年)
        5、date(date) 返回指定时间的日期(年月日)
        6、time(date) 返回指定时间的时间(时分秒)

      3、日期时间运算
        1、语法格式
          select * from 表名
          where 字段名 运算符 (时间-interval 时间间隔单位);
          时间间隔单位:
          1 day | 2 hour | 1 minute | 2 year | 3 month

    mysql> select * from t2 where cztime >= (now()-interval 1 day);   #1天以内
    +------+----------+----------+-------+------------+---------------------+
    | id   | username | password | money | birthday   | cztime              |
    +------+----------+----------+-------+------------+---------------------+
    |    1 | 用户1    | 123456   |   500 | 1996-10-06 | 2018-08-30 09:50:30 |
    |    1 | 用户2    | 123456   |   500 | 1996-10-06 | 2018-08-30 09:55:03 |
    +------+----------+----------+-------+------------+---------------------+
    2 rows in set (0.00 sec)
    
    mysql> select * from t2 where cztime <= (now()-interval 1 day);    #1天以前
    +------+----------+----------+-------+------------+---------------------+
    | id   | username | password | money | birthday   | cztime              |
    +------+----------+----------+-------+------------+---------------------+
    |    3 | 用户3    | 123456   |   800 | 1990-03-03 | 2018-07-02 09:08:00 |
    |    4 | 用户4    | 123456   |   666 | 2018-07-02 | 2018-07-02 09:10:00 |
    +------+----------+----------+-------+------------+---------------------+
    2 rows in set (0.00 sec)
  • 相关阅读:
    [转载] boost安装笔记——vs2008
    CSS 中的分离、抽象和层叠(转载)
    web server大全之GoAhead移植(转载)
    MIT牛人解说数学体系(转载)
    CodeBlocks 编辑器设置绿色背景
    Eclipse+Tomcat+Mysql构建J2EE开发环境(转载)
    堆和栈的区别——给初学者 (装载)
    Eclipse下设置github开发环境
    [原创] MyEclipse配置Tomcat和MySQL
    VS2008下编译Boost(转载+更改)
  • 原文地址:https://www.cnblogs.com/zengsf/p/9557519.html
Copyright © 2011-2022 走看看