• 技术文章 >数据库 >mysql教程

    MySQL默认值约束怎么用

    (*-*)浩(*-*)浩2019-05-11 09:32:53原创3047
    本篇文章将介绍default 默认约束,如何使用和改动后的效果。

    推荐课程:MySQL教程

    常用数据库约束:

    default 默认约束;

    not null:非空约束,指定某列不为NULL;

    unique:唯一约束,指定某列和几列组合的数据不能重复;

    primary key:主键约束,指定某列的数据非空、唯一、不能重复;

    foreign key:外键,指定该列记录属于主表中的一条记录,参照另一条数据;

    check:检查,指定一个表达式,用于检验指定数据;


    1、default 定义列的默认值

    当插入一个新行到表中时,没有给该列明确赋值,如果定义了列的默认值,将自动得到默认值;如果没有,则为(NULL)。

     -- 创建一张user表
    CREATE TABLE `test`.`user`(  
      `id` INT(11) NOT NULL AUTO_INCREMENT COMMENT 'id',
      `name` VARCHAR(225) COMMENT '姓名',
      `sex` TINYINT(1) DEFAULT 1 COMMENT '性别 1男 0女',
      PRIMARY KEY (`id`)
    ) ENGINE=INNODB CHARSET=utf8 COLLATE=utf8_general_ci

    给字段添加默认约束:

    1.在创建表时:直接在字段类型的后面加上 DEFAULT(value),具体看创建user表时的sex字段;
    2.在存在表的情况下添加:
      使用sql语句 ALTER TABLE `user` MODIFY `sex` TINYINT(1) DEFAULT 1; 即可为添加 `sex` 字段添加默认约束;
      使用sql语句 ALTER TABLE `user` MODIFY `name` VARCHAR(225)DEFAULT '小明'; 即可为添加 `name` 字段添加默认约束;
    
    tips:默认约束是不可以使用函数的,所以 ALTER TABLE `user` ADD COLUMN `date` DATETIME DEFAULT NOW() AFTER `sex`; 是不可行的。

    移除默认约束:

    移除默认约束和添加默认约束操作方式一样,都是修改表的字段;
    ALTER TABLE `user` MODIFY `sex` TINYINT(1); 
    这样就移除了sex的默认约束。

    现在我们插入一条数据:

    INSERT INTO `user`(`name`) VALUES('小明');
    
    SELECT * FROM `user`;
    
    结果:
    -----------------------------------
    id   name   sex 
       小明    1
    -----------------------------------

    当然我们也可以:

    INSERT INTO `user`(`name`,`sex`) VALUES('小明',DEFAULT);
    SELECT * FROM `user`;
    
    结果:
    ---------------------------------
    id     name     sex 
         小明        1
    ---------------------------------

    如果你这样:

    INSERT INTO `user`(`sex`) VALUES(DEFAULT);
    SELECT * FROM `user`;
    
    结果:
    -----------------------------------
    id   name    sex 
       (NULL)   1
    -----------------------------------


    tips:在更新和查询都可以用DEFAULT来操作;

    -- 查询sex字段的默认值  SELECT DEFAULT(`sex`) FROM `user`; 
    -- 更新sex为默认值 UPDATE `user` SET `sex` = DEFAULT WHERE `id`='1';

    以上就是MySQL默认值约束怎么用的详细内容,更多请关注php中文网其它相关文章!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:mysql
    上一篇:MySQL如何删除重复数据 下一篇:mysql安装不了怎么办
    VIP课程(WEB全栈开发)

    相关文章推荐

    • 【腾讯云】年中优惠,「专享618元」优惠券!• MySQL的DDL操作• mac怎么卸载mysql?• MySQL唯一索引什么意思• MySQL为什么主键自增
    1/1

    PHP中文网