-
2021-01-19 22:55:28
MySQL 非空约束(NOT NULL)可以通过 CREATE TABLE 或 ALTER TABLE 语句实现。在表中某个列的定义后加上关键字 NOT NULL 作为限定词,来约束该列的取值不能为空。
非空约束(Not Null Constraint)指字段的值不能为空。对于使用了非空约束的字段,如果用户在添加数据时没有指定值,数据库系统就会报错。
在创建表时设置非空约束 创建表时可以使用
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; 【实例 1】修改数据表 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; 【实例 2】修改数据表 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)
更多相关内容 -
MySQL非空约束
2020-11-23 08:45:071、非空约束 特点: (1)一个表可以有很多的非空约束 (2)非空约束只能针对某一个字段来说 (3)非空约束意味着,该字段不能存入null值 2、如何在建表时指定非空约束呢 create table 【数据库名.】表名称( 字段名...1、非空约束
特点:
(1)一个表可以有很多的非空约束
(2)非空约束只能针对某一个字段来说
(3)非空约束意味着,该字段不能存入null值2、如何在建表时指定非空约束呢
create table 【数据库名.】表名称( 字段名1 数据类型 primary key, 字段名2 数据类型 【unique key】 not null, 字段名3 数据类型 not null, 。。。。 );
例如:
create table test.t_stu( sid int primary key, sname varchar(20) not null, gender char ); insert into t_stu values(1,'张三','男'); insert into t_stu values(2,null,'男');#错误的 ERROR 1048 (23000): Column 'sname' cannot be null insert into t_stu values(2,'李四',null);
3、建表后如何指定某个字段非空呢?
alter table 【数据库名.】表名称 modify 字段名 数据类型 not null;
create table test.t_stu( sid int primary key, sname varchar(20), gender char ); alter table t_stu modify sname varchar(20) not null;
4、建表后,取消某个字段的非空约束
alter table 【数据库名.】表名称 modify 字段名 数据类型;
alter table t_stu modify sname varchar(20);
-
【mysql】非空约束
2022-03-03 14:31:47文章目录非空约束1. 作用2. 关键字3. 特点4. 添加非空约束5. 删除非空约束 非空约束 1. 作用 限定某个字段/某列的值不允许为空 2. 关键字 NOT NULL 3. 特点 默认,所有的类型的值都可以是NULL,包括INT、FLOAT等...非空约束
1. 作用
限定某个字段/某列的值不允许为空
2. 关键字
NOT NULL
3. 特点
-
默认,所有的类型的值都可以是
NULL
,包括INT、FLOAT
等数据类型 -
非空约束只能出现在表对象的列上,只能某个列单独限定非空,不能组合非空
-
一个表可以有很多列都分别限定了非空
-
空字符串’'不等于
NULL,0
也不等于NULL
4. 添加非空约束
(1)建表时
CREATE TABLE 表名称( 字段名 数据类型, 字段名 数据类型 NOT NULL, 字段名 数据类型 NOT NULL );
举例:
- 在
CREATE TABLE
时添加约束
CREATE TABLE test1( id INT NOT NULL, last_name VARCHAR(15) NOT NULL, email VARCHAR(25), salary DECIMAL(10,2) );
CREATE TABLE emp( id INT(10) NOT NULL, NAME VARCHAR(20) NOT NULL, sex CHAR NULL );
CREATE TABLE student( sid int, sname varchar(20) not null, tel char(11) , cardid char(18) not null );
insert into student values(1,'张三','13710011002','110222198912032545'); #成功 insert into student values(2,'李四','13710011002',null);#身份证号为空 ERROR 1048 (23000): Column 'cardid' cannot be null insert into student values(2,'李四',null,'110222198912032546');#成功,tel允许为空 insert into student values(3,null,null,'110222198912032547');#失败 ERROR 1048 (23000): Column 'sname' cannot be null
(2)建表后
alter table 表名称 modify 字段名 数据类型 not null;
举例:
- 在
ALTER TABLE
时添加约束
ALTER TABLE test1 MODIFY email VARCHAR(25) NOT NULL;
ALTER TABLE emp MODIFY sex VARCHAR(30) NOT NULL;
alter table student modify sname varchar(20) not null;
5. 删除非空约束
alter table 表名称 modify 字段名 数据类型 NULL; #去掉not null,相当于修改某个非注解字段,该字段允许为空 或 alter table 表名称 modify 字段名 数据类型; #去掉not null,相当于修改某个非注解字段,该字段允许为空
举例:
- 在
ALTER TABLE
时删除约束
ALTER TABLE test1 MODIFY email VARCHAR(25) NULL;
ALTER TABLE emp MODIFY sex VARCHAR(30) NULL;
ALTER TABLE emp MODIFY NAME VARCHAR(15) DEFAULT 'abc' NULL;
-
-
MySQL非空约束(not null)案例讲解
2022-04-28 23:43:17目录在创建表时设置非空约束在修改表时添加非空约束删除非空约束MySQL 非空约束(NOT NULL)指字段的值不能为空。对于使用了非空约束的字段,如果用户在添加数据时没有指定值,数据库系统就会报错。可以通过 CREATE ...文章来源: 学习通http://www.jaxp.net/
MySQL 非空约束(NOT NULL)指字段的值不能为空。对于使用了非空约束的字段,如果用户在添加数据时没有指定值,数据库系统就会报错。可以通过 CREATE TABLE 或 ALTER TABLE 语句实现。在表中某个列的定义后加上关键字 NOT NULL 作为限定词,来约束该列的取值不能为空。
比如,在用户信息表中,如果不添加用户名,那么这条用户信息就是无效的,这时就可以为用户名字段设置非空约束。
在创建表时设置非空约束
创建表时可以使用 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)
到此这篇关于MySQL非空约束(not null)案例讲解的文章就介绍到这了,更多相关MySQL非空约束(not null)内容请搜索菜鸟教程www.piaodoo.com以前的文章或继续浏览下面的相关文章希望大家以后多多支持菜鸟教程www.piaodoo.com!
-
MySQL 非空约束设置的几种语句
2021-10-04 12:30:21添加非空约束 1、如果是在建表时直接添加,可使用下面的SQL语句: create table t_user(user_id int(10)not null); 2、也可以在建表之后通过alter语句创建。 alter table t_user modify user_id int(10) not ... -
MySQL约束-非空约束
2022-01-10 21:34:08– not null 非空约束 – 方式1.创建表时指定非空约束 use mydb1; create table user1( id int, name varchar(20) not null, address varchar(20)not null ); – insert into user1 (id)values(1001); – insert ... -
MySql 非空约束
2022-05-18 01:39:02非空约束 -
mysql主键非空约束怎么设置?
2021-02-02 07:23:20mysql中可以通过在“CREATE TABLE”语句中,使用“ PRIMARY KEY [默认值]”语句来设置主键约束,使用“ NOT NULL”语句来设置非空约束。mysql主键约束主键(PRIMARY KEY)的完整称呼是“主键约束”,是 MySQL 中使用... -
MySQL 非空约束(NOT NULL)入门
2021-07-06 08:17:38MySQL 非空约束(NOT NULL)指字段的值不能为空。对于使用了非空约束的字段,如果用户在添加数据时没有指定值,数据库系统就会报错。可以通过 CREATE TABLE 或 ALTER TABLE 语句实现。在表中某个列的定义后加上... -
MySQL教程50-MySQL非空约束
2021-01-18 19:21:51MySQL非空约束(NOT NULL)指字段的值不能为空。对于使用了非空约束的字段,如果用户在添加数据时没有指定值,数据库系统就会报错。可以通过 CREATE TABLE 或 ALTER TABLE 语句实现。在表中某个列的定义后加上关键字 ... -
MySQL 非空约束位置不同对自增列造成的影响
2021-01-19 21:49:24+------------+| version() |+------------+| 5.7.21-log |+------------+1 row in set (0.00 sec)非空约束为null 并在自增列属性前即使自增列的非空约束定义可以为 null,但实际自增列为not nullcreate table test_...