MySQL非空约束(not null)案例讲解


Posted in MySQL onAugust 23, 2021

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)内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

MySQL 相关文章推荐
修改MySQL的默认密码的四种小方法
May 26 MySQL
MySQL索引失效的典型案例
Jun 05 MySQL
MySQL外键约束(FOREIGN KEY)案例讲解
Aug 23 MySQL
MySQL的全局锁和表级锁的具体使用
Aug 23 MySQL
mysql聚集索引、辅助索引、覆盖索引、联合索引的使用
Feb 12 MySQL
MySQL的索引你了解吗
Mar 13 MySQL
MySQL学习之基础命令实操总结
Mar 19 MySQL
MySQL数据库如何使用Shell进行连接
Apr 12 MySQL
深入理解mysql事务隔离级别和存储引擎
Apr 12 MySQL
MySQL创建管理HASH分区
Apr 13 MySQL
深入理解MySQL中MVCC与BufferPool缓存机制
May 25 MySQL
MySQL导致索引失效的几种情况
Jun 25 MySQL
MySQL外键约束(FOREIGN KEY)案例讲解
Aug 23 #MySQL
MySQL 1130异常,无法远程登录解决方案详解
Aug 23 #MySQL
Node-Red实现MySQL数据库连接的方法
Aug 07 #MySQL
MySQL如何解决幻读问题
Aug 07 #MySQL
浅谈MySQL之select优化方案
Aug 07 #MySQL
SQL实现LeetCode(197.上升温度)
Aug 07 #MySQL
SQL实现LeetCode(196.删除重复邮箱)
Aug 07 #MySQL
You might like
无限级别菜单的实现
2006/10/09 PHP
php MsSql server时遇到的中文编码问题
2009/06/11 PHP
基于PHP的简单采集数据入库程序
2014/07/30 PHP
PHP会员找回密码功能的简单实现
2016/09/05 PHP
浅谈PHP的反射API
2017/02/26 PHP
php脚本守护进程原理与实现方法详解
2017/07/20 PHP
PHP下 Mongodb 连接远程数据库的实例代码
2017/08/30 PHP
PHP之header函数详解
2021/03/02 PHP
Colortip基于jquery的信息提示框插件在IE6下面的显示问题修正方法
2010/12/06 Javascript
用JS控制回车事件的代码
2011/02/20 Javascript
基于jquery的使ListNav兼容中文首字拼音排序的实现代码
2011/07/10 Javascript
window.location.href = window.location.href 跳转无反应 a超链接onclick事件写法
2013/08/21 Javascript
js如何获取兄弟、父类等节点
2014/01/06 Javascript
javascript实现控制div颜色
2015/07/07 Javascript
用JavaScript实现PHP的urlencode与urldecode函数
2015/08/13 Javascript
zTree插件下拉树使用入门教程
2016/04/11 Javascript
jQuery实现的模拟弹出窗口功能示例
2016/11/24 Javascript
Bootstrap表格使用方法详解
2017/02/17 Javascript
Vue2.0 从零开始_环境搭建操作步骤
2017/06/14 Javascript
简单了解Ajax表单序列化的实现方法
2019/06/14 Javascript
解决layui表格的表头不滚动的问题
2019/09/04 Javascript
js实现网页版贪吃蛇游戏
2020/02/22 Javascript
python编程实现12306的一个小爬虫实例
2017/12/27 Python
解决Pandas to_json()中文乱码,转化为json数组的问题
2018/05/10 Python
Django开发的简易留言板案例详解
2018/12/04 Python
机器学习实战之knn算法pandas
2019/06/22 Python
Django框架创建mysql连接与使用示例
2019/07/29 Python
Python 求数组局部最大值的实例
2019/11/26 Python
Python callable内置函数原理解析
2020/03/05 Python
Python3爬虫中关于Ajax分析方法的总结
2020/07/10 Python
通过HTML5 Canvas API绘制弧线和圆形的教程
2016/03/14 HTML / CSS
行政内勤岗位职责
2014/04/07 职场文书
元旦寄语大全
2014/04/10 职场文书
优秀应届生求职信
2014/06/16 职场文书
房屋租赁合同解除协议书
2014/10/11 职场文书
创业计划书之o2o水果店
2019/08/30 职场文书