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

    一、整型

    分类:TINYINT, SMALLINT, MEDUIMINT, INT, BIGINT

    TINYINT
    默认情况下是带有符号的,超出限制只存最大可接受值
    create table test1(id TINYINT);
    insert into test1 values(-129,256);
    mysql> insert into test1 values(-129),(256);
    ERROR 1264 (22003): Out of range value for column 'id' at row 1
    mysql> insert into test1 values(-128),(256);
    ERROR 1264 (22003): Out of range value for column 'id' at row 2
    mysql> insert into test1 values(-128),(127);
    Query OK, 2 rows affected (0.00 sec)
     
    约束条件之unsigned 无符号
    create table test2(id tinyint unsigned);
    
     
    INT
    默认情况下也是带符号的
    整型默认情况下都是带符号的
    针对整型 括号内的宽度到底是干嘛的?
    create table test3(id int(8));
    insert into test3 values(123456789);
    特例:只有整型括号里面的数字不是表示限制位数,id int(8)
    如果数字没有超过8位,那么默认用空格填充至8位
    如果数字超出8位,那么有几位就存几位(但是还是要遵守最大范围)
    create table test4(id int(8) unsigned zerofill);  #用0填充至8位
    
    mysql> create table test4(id int(8) unsigned zerofill);
    Query OK, 0 rows affected (0.06 sec)
    
    mysql> insert into test4 values(1);
    Query OK, 1 row affected (0.01 sec)
    
    mysql> select * from test4;
    +----------+
    | id       |
    +----------+
    | 00000001 |
    +----------+
    1 row in set (0.00 sec)
    
    总结:针对整型字段,括号内无需指定宽度,因为它默认的宽度已经足够显示所有的数据了。

    二、字符型

    分类:char 、varchar
    char:
    定长,char(4),数据超过4个字符直接报错,不够4个字符空格补全
    varchar:
    变长,varchar(4) 数据超过4个字符直接报错,不够有几个存几个
    
    create table test5(name char(4));
    create table test6(name varchar(4));
    
    insert into test5 values('a');
    insert into test6 values('a');
    
    #一个小方法,char_length统计字段长度
    select char_length(name) from test5;
    

    char 与varchar对比:

    char 
    缺点:浪费空间
    优点:存取都很简单,直接按照固定的字符串存取数据即可,存按照5个字符存,取也直接按照5个字符取
    
    varchar
    优点:节省空间
    缺点:存取较为麻烦,存的时候需要制作报头,取的时候也需要先读取报头,之后才能读取真实数据;
    
    以前用char比较多,现在用varchar的比较多;
    

      

  • 相关阅读:
    Java实现 LeetCode 242 有效的字母异位词
    Java实现 LeetCode 212 单词搜索 II
    Java实现 LeetCode 212 单词搜索 II
    Java实现 LeetCode 212 单词搜索 II
    Java实现 LeetCode 212 单词搜索 II
    Java实现 LeetCode 344 反转字符串
    Java实现 洛谷 P1208 [USACO1.3]混合牛奶 Mixing Milk
    Java实现 洛谷 P1208 [USACO1.3]混合牛奶 Mixing Milk
    Java实现 洛谷 P1208 [USACO1.3]混合牛奶 Mixing Milk
    Java实现 洛谷 P1208 [USACO1.3]混合牛奶 Mixing Milk
  • 原文地址:https://www.cnblogs.com/xiehong/p/14721982.html
Copyright © 2011-2022 走看看