MySQL 如何添加非空列
您可以在创建表的时候添加非空列,也可以为现有表使用它。
Case 1 −在创建表的同时添加非空列。语法如下:
CREATE TABLE yourTableName
(
yourColumnName1 dataType NOT NULL,
yourColumnName2 dataType
.
.
.
N
);
创建表的查询语句如下所示:
mysql> create table NotNullAtCreationOfTable
-> (
-> Id int not null,
-> Name varchar(100)
-> );
Query OK,0 行受影响 (0.60 sec)
在上面的表中,我们声明 Id 为 int 类型,它不接受 NULL 值。如果您插入 NULL 值,您将获得一个错误。
错误如下:
mysql> insert into NotNullAtCreationOfTable values(NULL,'John');
ERROR 1048 (23000): Column 'Id' cannot be null
插入一个非 NULL 值。那将是可以接受的。
mysql> insert into NotNullAtCreationOfTable values(1,'Carol');
Query OK,1 行受影响 (0.13 sec)
使用 select 语句显示表中的记录。查询语句如下所示:
mysql> select *from NotNullAtCreationOfTable;
以下是输出:
+----+-------+
| Id | Name |
+----+-------+
| 1 | Carol |
+----+-------+
1 row in set (0.00 sec)
Case 2 −在现有表中添加非空列。语法如下:
ALTER TABLE yourTableName ADD yourColumnName NOT NULL
创建表的查询语句如下所示:
mysql> create table AddNotNull
-> (
-> Id int,
-> Name varchar(100)
-> );
Query OK,0 行受影响 (1.43 sec)
以下是使用 ALTER 命令在现有表中添加非空列的查询:
mysql> alter table AddNotNull add Age int not null;
Query OK,0 行受影响 (0.44 sec)
记录:0 重复:0 警告:0
现在您可以使用 desc 命令检查表的描述。查询语句如下所示:
mysql> desc AddNotNull;
以下是输出:
+-------+--------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+--------------+------+-----+---------+-------+
| Id | int(11) | YES | | NULL | |
| Name | varchar(100) | YES | | NULL | |
| Age | int(11) | NO | | NULL | |
+-------+--------------+------+-----+---------+-------+
3 rows in set (0.08 sec)
让我们尝试将 NULL 值插入到 Age 列中。如果您尝试将 NULL 值插入到 Age 列中,您将获得一个错误。
插入记录的查询语句如下所示:
mysql> insert into AddNotNull values(1,'John',NULL);
ERROR 1048 (23000): Column 'Age' cannot be null
现在插入其他记录。这不会出错。
mysql> insert into AddNotNull values(NULL,NULL,23);
Query OK,1行受影响 (0.22 sec)
现在,您可以使用 select 语句显示表中的所有记录。查询语句如下所示:
mysql> select *from AddNotNull;
以下是输出:
+------+------+-----+
| Id | Name | Age |
+------+------+-----+
| NULL | NULL | 23 |
+------+------+-----+
1 row in set (0.00 sec)
阅读更多:MySQL 教程