MySQL非空约束(not null)案例讲解
作者:xusong 时间:2024-01-24 10:43:51
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)
来源:http://c.biancheng.net/view/2448.html
标签:MySQL,not,null
0
投稿
猜你喜欢
如何写python的配置文件
2022-08-06 15:57:09
Python中模块(Module)和包(Package)的区别详解
2021-06-17 09:05:22
在Python 字典中一键对应多个值的实例
2023-07-25 23:45:02
Java连接各种数据库的方法
2024-01-28 10:56:26
python可视化hdf5文件的操作
2022-11-16 16:35:48
详细解读Python中的json操作
2022-02-21 00:55:13
python爬取cnvd漏洞库信息的实例
2021-08-24 07:18:06
VSCode中autopep8无法运行问题解决方案(提示Error: Command failed,usage)
2022-03-13 22:55:19
对DJango视图(views)和模版(templates)的使用详解
2021-05-30 00:37:51
基于Pytorch实现的声音分类实例代码
2021-01-04 21:42:28
mysql proxy问题
2009-02-27 15:54:00
python实现对excel中需要的数据的单元格填充颜色
2023-03-04 13:02:39
区别Javascript中的Null与Undefined
2007-12-13 20:24:00
Python中pip安装非PyPI官网第三方库的方法
2021-01-20 15:51:18
Python读写压缩文件的方法
2023-06-02 19:37:53
用不着妄自菲薄对ASP和ASP程序员的一些话
2007-08-22 15:09:00
详解python之配置日志的几种方式
2022-11-02 14:32:30
Mysql 命令行模式访问操作mysql数据库操作
2024-01-14 07:43:41
一个ACCESS数据库数据传递的方法
2008-03-05 11:58:00
MySQL主键约束和外键约束详解
2024-01-18 08:10:41