• 数据类型


    数值类型

    整型

    默认有符号类型,用unsigned关键字指定为无符号类型

    整型类型不要加宽度,宽度并非存储宽度,存储宽度已固定,指定的为显示宽度

     类型  大小 范围(有符号)   范围(无符号)  用途
    TINYINT   1字节  -128,127  0,255  小整数值
    SMALLINT   2字节  -23768,32767  0,65535  大整数值
     MEDIUMINT  3字节  -8388608,8388607  0,4294967295  大整数值
     INT或INTEGER  4字节  -2147483648,2147843647  0,4294967295  大整数值
    BIGINT   8字节  -9233372036854775808,9233372036854775807  0,18446744073709551615  极大整数

    浮点型

    也分有无符号,unsigned

    FLOAT[(M,D)],M表示多少位整数,D表示多少位负数

    FLOAT,DOUBLE,DECIMAL精度越高

    FLOAT和DOUBLE的M值多大255

    DECIMAL,M值最大65

    类型 大小 发范围(有符号) 无符号 有用途
    FLOAT 4字节      
    DOUBLE 8字节      
    DECIMAL DECIMAL(M,D),如果M>D为M+2否则为D+2      

    日期类型

    create table student(
        -> id int,
        -> name char(6),
        -> born_year year,
        -> birth_date date,
        -> class_time time,
        -> reg_time datetime);
    insert into student values(1,'ya',now(),now(),now(),now());

    插入时可用now()调用数据库当前时间

    year:2018
    date:2018-05-20
    time:09:40:46
    datetime:8字节,year范围1001-9999,2018-05-20 09:40:46

    timestamp:4字节,year范围1970-2038

    字符类型 

    在一个表中不要char和varchar混用。

    字符类型宽度为字符的个数

    char,定长,不够末尾补0,查询的时候给空格取消掉了。mysql比较查询的时候不管末尾空格。但开头的空格不做任何处理。like模糊查询,前后空格都不会自动去掉。

    存取性能高,浪费空间。

    varchar,变长,传几个存几个,不能超过规定长度。节省空间,存取速度慢。

    char_length(name)查看字符宽度

    select char_length(n2) from t9;

    设置数据库模式,让怎么存怎么取,即不自动去掉空格

    SET sql_mode="PAD_CHAR_TO_FULL_LENGTH";

     char类型规定5个字符,插入2个字符,查询出来也就5个字符

    select char_length(n1) from t9;
    +-----------------+
    | char_length(n1) |
    +-----------------+
    |               5 |
    +-----------------+

     varchar类型规定5个字符,插入2个字符,实际查询出来也就2个字符

    select char_length(n2) from t9;
    +-----------------+
    | char_length(n2) |
    +-----------------+
    |               2 |
    +-----------------+
    1 row in set (0.00 sec)

    枚举类型与集合类型

    enum,选择一个

    set,选取多个

    mysql> create table consumer(
        -> id int,
        -> name char(16),
        -> sex enum('male','female','other')
        -> level enum('level1','level2','level3'),
        -> hobbies set('play','music','read','run'));

    enum类型不传入规定值,则设置成空

    mysql> insert into consumer values(1,'ya','x','level1','run');
    Query OK, 1 row affected, 1 warning (0.01 sec)
    
    mysql> select * from consumer;
    +------+------------------+------+--------+---------+
    | id   | name             | sex  | level  | hobbies |
    +------+------------------+------+--------+---------+
    |    1 | ya               |      | level1 | run     |
    +------+------------------+------+--------+---------+
    1 row in set (0.00 sec)
    
    mysql>
  • 相关阅读:
    剑指Offer
    剑指Offer
    剑指Offer
    选书
    马的遍历
    从事效应
    魔性的素数环1~20 自带解释~
    [POJ1236]Network of Schools(并查集+floyd,伪强连通分量)
    [HDOJ3974]Assign the task(建树胡搞)
    [HDOJ4027]Can you answer these queries?(线段树,特殊成段更新,成段查询)
  • 原文地址:https://www.cnblogs.com/yaya625202/p/9061854.html
Copyright © 2020-2023  润新知