Day11:MySQL非空约束(NOT NuLL)

MySQL非空约束(NOT NULL)可以通过 CREATE TABLE 或 ALTER TABLE 语句实现。在表中某个列的定义后加上关键字 NOT NULL 作为限定词,来约束该列的取值不能为空。

在创建表时设置非空约束

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

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

【实例1】创建数据表dept,指定部门名称不能为空,输入的 SQL 语句和运行结果如下所示。

mysql> create table emp(
    -> id int(11) primary key auto_increment,
    -> name varchar(100) not null,
    -> msg varchar(100)
    -> );
Query OK, 0 rows affected

mysql> desc emp;
+-------+--------------+------+-----+---------+----------------+
| Field | Type         | Null | Key | Default | Extra          |
+-------+--------------+------+-----+---------+----------------+
| id    | int(11)      | NO   | PRI | NULL    | auto_increment |
| name  | varchar(100) | NO   |     | NULL    |                |
| msg   | varchar(100) | YES  |     | NULL    |                |
+-------+--------------+------+-----+---------+----------------+
3 rows in set

mysql> 

删除非空约束

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

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

【实例2】修改数据表emp,将部门名称的非空约束删除,输入的 SQL 语句和运行结果如下所示。

mysql> alter table emp
    -> change column name  name varchar(100) null;
Query OK, 0 rows affected
Records: 0  Duplicates: 0  Warnings: 0

mysql> desc emp;
+-------+--------------+------+-----+---------+----------------+
| Field | Type         | Null | Key | Default | Extra          |
+-------+--------------+------+-----+---------+----------------+
| id    | int(11)      | NO   | PRI | NULL    | auto_increment |
| name  | varchar(100) | YES  |     | NULL    |                |
| msg   | varchar(100) | YES  |     | NULL    |                |
+-------+--------

在修改表时添加非空约束

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

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

【实例3】修改数据表emp,指定部门位置不能为空,输入的 SQL 语句和运行结果如下所示。

mysql> alter table emp
    -> change column name name varchar(100) not null;
Query OK, 0 rows affected
Records: 0  Duplicates: 0  Warnings: 0

mysql> desc emp;
+-------+--------------+------+-----+---------+----------------+
| Field | Type         | Null | Key | Default | Extra          |
+-------+--------------+------+-----+---------+----------------+
| id    | int(11)      | NO   | PRI | NULL    | auto_increment |
| name  | varchar(100) | NO   |     | NULL    |                |
| msg   | varchar(100) | YES  |     | NULL    |                |
+-------+--------------+------+-----+---------+----------------+
3 rows in set

mysql> 
发布了23 篇原创文章 · 获赞 1 · 访问量 554

猜你喜欢

转载自blog.csdn.net/sinat_28521487/article/details/105045093