mysql中一个数据表只可以定一个非空字段吗
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql中一个数据表只可以定一个非空字段吗相关的知识,希望对你有一定的参考价值。
可以。MySQL 非空约束(NOT NULL)指字段的值不能为空。对于使用了非空约束的字段,如果用户在添加数据时没有指定值,数据库系统就会报错。可以通过 CREATE TABLE 或 ALTER TABLE 语句实现。在表中某个列的定义后加上关键字 NOT NULL 作为限定词,来约束该列的取值不能为空。
比如,在用户信息表中,如果不添加用户名,那么这条用户信息就是无效的,这时就可以为用户名字段设置非空约束。
在创建表时设置非空约束
创建表时可以使用 NOT NULL 关键字设置非空约束,具体的语法格式如下:
<字段名> <数据类型> NOT NULL; 参考技术A 创建表时可以使用 NOT NULL 关键字设置非空约束,具体的语法格式如下:
<字段名> <数据类型> NOT NULL;
例 1
创建数据表 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> DESC tb_dept3;
+----------+-------------+------+-----+---------+-------+
| 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.06 sec)
在修改表时添加非空约束
如果在创建表时忘记了为字段设置非空约束,也可以通过修改表进行非空约束的添加。
修改表时设置非空约束的语法格式如下:
ALTER TABLE <数据表名>
CHANGE COLUMN <字段名>
<字段名> <数据类型> NOT NULL;
例 2
修改数据表 tb_dept4,指定部门位置不能为空,SQL 语句和运行结果如下所示。
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)
删除非空约束
修改表时删除非空约束的语法规则如下:
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) 参考技术B mysql中一个数据表只可以定一个非空字段参考以下原因
在MySQL中,可以在创建数据表时指定数据表的某个字段或某些字段的值不能为空。如果将某个字段或某些字段设置为非空约束条件,则在向数据表插入数据时,必须为这些字段指定相应的值,否则MySQL会报错。 参考技术C mysql中一个数据表可以定一个非空字段,也可以定不连续的字段。 参考技术D mysql中一个数据表只可以定一个非空字段吗?
答案如下:是的,方法如下,具体操作步骤是,一抓住重点 二 围绕中心点 三 概括全部简单总结
Mysql五大约束
Mysql五大约束
约束:对表中数据的限制、保证表中数据的准确和可靠
(1)NOT NULL:非空,用于保证该字段的值不能为空
(2)DEFAULT:默认,用于保证该字段有默认值
(3)PRIMARY KEY:主键,用于保证该字段的值具有唯一性,并且非空
(4)UNIQUE:唯一,用于保证该字段的值具有唯一性,可以为空
(5)CHECK:检查约束【mysql中不支持】
(6)FOREIGN KEY:外键,用于限制两个表的关系,用于保证该字段的值必须来自于主表的关联列的值
在从表添加外键约束,用于引用主表中某列的值。
以上是关于mysql中一个数据表只可以定一个非空字段吗的主要内容,如果未能解决你的问题,请参考以下文章