当前位置 : 主页 > 编程语言 > 其它开发 >

MySQL字段约束和null值注意事项

来源:互联网 收集:自由互联 发布时间:2022-05-30
字段约束 unsigned 无符号 只能存储正数 只能用于数值类型 不允许出现负数 长度增加一倍 CREATE TABLE `test` ( `age` tinyint(4) DEFAULT NULL, `newage` tinyint(3) unsigned DEFAULT NULL) ENGINE=InnoDB DEFAULT CHARS
字段约束
  1. unsigned 无符号 只能存储正数

    只能用于数值类型 不允许出现负数 长度增加一倍

     CREATE TABLE `test` (
      `age` tinyint(4) DEFAULT NULL,
      `newage` tinyint(3) unsigned DEFAULT NULL
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8
    
  2. zerofill 零填充

    只能用于数值类型 当存储的数据长度不足 使用零填充

    alter table test add zf int(5) zerofill;
    insert into test(zf) values(12345);
    
  3. auto_incement 自增

    用于设置字段的自动增长 每增加一条记录 该字段的值会自动加1(用于设置主键)

    create table test2(
        -> id int primary key auto_increment,
        -> username varchar(10) default 'xxx'
        -> );
    insert into test2 values(null, 'xxx');
    insert into test2(username) values('xxx');
    

    注意:

    • 需要配合我们的主键索引使用
    • 插入数据无需给值 增长的步长默认为1
  4. default 默认值

    当不给该字段插入值 则值为默认值 否则值为你所给定的值

     alter table test2 add sex enum('w','m') default 'w';
    
  5. null/not null

    字段在没有设置not null的时候 默认都为null 此刻插入数据的时候 可以给值 也可以不给值

    如果设置了not null 则必须给值

    alter table test2 add age tinyint unsigned not null;
    insert into test2(username) values('xxx');
    
  6. comment 字段说明

    字段说明

     alter table test2 add info varchar(20) comment '个人说明';
    

    表说明

    alter table test2 comment='测试表';
    
null值注意事项
  • null 意味着没有值或者是未知值
  • 不能对空值进行运算 结果为null
  • 0和null都为假
  • 可以测试是否为空 is null
网友评论