MySQL默认值(DEFAULT) 图片看不了?点击切换HTTP 返回上层
“默认值(Default)”的完整称呼是“默认值约束(Default Constraint)”。MySQL 默认值约束用来指定某列的默认值。
例如女性同学较多,性别就可以默认为“女”。如果插入一条新的记录时没有为这个字段赋值,那么系统会自动为这个字段赋值为“女”。
以上语句执行成功之后,表 tb_dept3 上的字段 location 拥有了一个默认值 Beijing,新插入的记录如果没有指定部门位置,则默认都为 Beijing。
例如女性同学较多,性别就可以默认为“女”。如果插入一条新的记录时没有为这个字段赋值,那么系统会自动为这个字段赋值为“女”。
在创建表时设置默认值约束
创建表时可以使用 DEFAULT 关键字设置默认值约束,具体的语法规则如下:<字段名> <数据类型> DEFAULT <默认值>;
【实例 1】创建数据表 tb_dept3,指定部门位置默认为 Beijing,输入的 SQL 语句和运行结果如下所示。1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | mysql> CREATE TABLE tb_dept3 -> ( -> id INT (11) PRIMARY KEY , -> name VARCHAR (22), -> location VARCHAR (50) DEFAULT 'Beijing' -> ); Query OK, 0 rows affected (0.37 sec) mysql> DESC tb_dept3; + ----------+-------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | + ----------+-------------+------+-----+---------+-------+ | id | int (11) | NO | PRI | NULL | | | name | varchar (22) | YES | | NULL | | | location | varchar (50) | YES | | Beijing | | + ----------+-------------+------+-----+---------+-------+ 3 rows in set (0.06 sec) |
在修改表时添加默认值约束
修改表时添加默认值约束的语法规则如下:
ALTER TABLE <数据表名>
CHANGE COLUMN <字段名> <数据类型> DEFAULT <默认值>;
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | mysql> ALTER TABLE tb_dept3 -> CHANGE COLUMN location -> location VARCHAR (50) DEFAULT 'Shanghai' ; Query OK, 0 rows affected (0.15 sec) Records: 0 Duplicates: 0 Warnings: 0 mysql> DESC tb_dept3; + ----------+-------------+------+-----+----------+-------+ | Field | Type | Null | Key | Default | Extra | + ----------+-------------+------+-----+----------+-------+ | id | int (11) | NO | PRI | NULL | | | name | varchar (22) | YES | | NULL | | | location | varchar (50) | YES | | Shanghai | | + ----------+-------------+------+-----+----------+-------+ 3 rows in set (0.00 sec) |
删除默认值约束
修改表时删除默认值约束的语法规则如下:
ALTER TABLE <数据表名>
CHANGE COLUMN <字段名> <字段名> <数据类型> DEFAULT NULL;
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | mysql> ALTER TABLE tb_dept3 -> CHANGE COLUMN location -> location VARCHAR (50) DEFAULT NULL ; Query OK, 0 rows affected (0.15 sec) Records: 0 Duplicates: 0 Warnings: 0 mysql> DESC tb_dept3; + ----------+-------------+------+-----+----------+-------+ | Field | Type | Null | Key | Default | Extra | + ----------+-------------+------+-----+----------+-------+ | id | int (11) | NO | PRI | NULL | | | name | varchar (22) | YES | | NULL | | | location | varchar (50) | YES | | NULL | | + ----------+-------------+------+-----+----------+-------+ 3 rows in set (0.00 sec) |