MySQL 非空约束(NOT NULL)

举报
CoderX 发表于 2022/04/20 16:07:01 2022/04/20
【摘要】 非空约束 非空约束(NOT NULL)指字段的值不能为空。对于使用了非空约束的字段,如果用户在添加数据时没有指定值,数据库系统就会报错。 1.在创建表是设置非空约束 创建表时可以使用 NOT NULL 关键字设置非空约束,具体的语法格式如下 <字段名> <数据类型> NOT NULL;示例1:创建数据表tb_dept3,指定部门名称不能为空 ,SQL 语句和运行结果如下所示。 mysql...

非空约束

非空约束(NOT NULL)指字段的值不能为空。对于使用了非空约束的字段,如果用户在添加数据时没有指定值,数据库系统就会报错。

1.在创建表是设置非空约束

创建表时可以使用 NOT NULL 关键字设置非空约束,具体的语法格式如下

 <字段名> <数据类型> NOT NULL;

示例1:创建数据表tb_dept3,指定部门名称不能为空 ,SQL 语句和运行结果如下所示。

 mysql> CREATE TABLE tb_dept3
     -> (
     -> id INT(11) PRIMARY KEY,
     -> name VARCHAR(22) NOT NULL,
     -> location VARCHAR(50) NOT NULL
     -> );
 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) | NO   |     | NULL    |       |
 | location | varchar(50) | NO   |     | NULL    |       |
 +----------+-------------+------+-----+---------+-------+
 3 rows in set (0.06 sec)

2.修改表时添加非空约束

修改表时设置非空约束的语法格式如下:

 ALTER TABLE <数据表名>
 CHANGE COLUMN <字段名>
 <字段名> <数据类型> NOT NULL;

示例2: 创建数据表 tb_dept4,修改表时指定部门位置不能为空,SQL 语句和运行结果如下所示。

 mysql> CREATE TABLE tb_dept4
     -> (
     -> id INT(11) PRIMARY KEY,
     -> name VARCHAR(22) NOT NULL,
     -> location VARCHAR(50)
     -> );
 Query OK, 0 rows affected (0.37 sec)
 ​
 mysql> ALTER TABLE tb_dept4
     -> CHANGE COLUMN location
     -> location VARCHAR(50) NOT NULL;
 Query OK, 0 rows affected (0.15 sec)
 Records: 0  Duplicates: 0  Warnings: 0
 ​
 mysql> DESC tb_dept4;
 +----------+-------------+------+-----+----------+-------+
 | Field    | Type        | Null | Key | Default  | Extra |
 +----------+-------------+------+-----+----------+-------+
 | id       | int(11)     | NO   | PRI | NULL     |       |
 | name     | varchar(22) | NO   |     | NULL     |       |
 | location | varchar(50) | NO   |     | NULL     |       |
 +----------+-------------+------+-----+----------+-------+
 3 rows in set (0.00 sec)


3.删除非空约束

修改表时删除非空约束的语法规则如下:

 ALTER TABLE <数据表名>
 CHANGE COLUMN <字段名> <字段名> <数据类型> NULL;

示例3:修改数据表tb_dept4,删除部门字段非空约束 ,SQL 语句和运行结果如下所示。

 mysql> ALTER TABLE tb_dept4
     -> CHANGE COLUMN location
     -> location VARCHAR(50) NULL;
 Query OK, 0 rows affected (0.15 sec)
 Records: 0  Duplicates: 0  Warnings: 0
 ​
 mysql> DESC tb_dept4;
 +----------+-------------+------+-----+----------+-------+
 | Field    | Type        | Null | Key | Default  | Extra |
 +----------+-------------+------+-----+----------+-------+
 | id       | int(11)     | NO   | PRI | NULL     |       |
 | name     | varchar(22) | NO   |     | NULL     |       |
 | location | varchar(50) | YES  |     | NULL     |       |
 +----------+-------------+------+-----+----------+-------+
 3 rows in set (0.00 sec)

【版权声明】本文为华为云社区用户原创内容,未经允许不得转载,如需转载请自行联系原作者进行授权。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。