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 相关文章推荐
如何使用Maxwell实时同步mysql数据
Apr 08 MySQL
MySQL中InnoDB存储引擎的锁的基本使用教程
May 26 MySQL
MySQL 常见存储引擎的优劣
Jun 02 MySQL
Mysql实现主从配置和多主多从配置
Jun 02 MySQL
SQL实现LeetCode(197.上升温度)
Aug 07 MySQL
深入解析MySQL索引数据结构
Oct 16 MySQL
SQL语法CONSTRAINT约束操作详情
Jan 18 MySQL
Mysql分库分表之后主键处理的几种方法
Feb 15 MySQL
一条慢SQL语句引发的改造之路
Mar 16 MySQL
MySQL创建管理HASH分区
Apr 13 MySQL
MySQL数据库Innodb 引擎实现mvcc锁
May 06 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
PHP+Mysql树型结构(无限分类)数据库设计的2种方式实例
2014/07/15 PHP
JavaScript实现滚动栏效果的方法
2015/04/27 PHP
php实现计算百度地图坐标之间距离的方法
2016/05/05 PHP
PHP中Trait及其应用详解
2017/02/14 PHP
PHP读取、解析eml文件及生成网页的方法示例
2017/09/04 PHP
CI框架附属类用法分析
2018/12/26 PHP
用Div仿showModalDialog模式菜单的效果的代码
2007/03/05 Javascript
javascript Array.prototype.slice的使用示例
2013/11/14 Javascript
jQuery$命名冲突怎么办如何解决
2014/01/16 Javascript
完美兼容各大浏览器的jQuery仿新浪图文淡入淡出间歇滚动特效
2014/11/12 Javascript
javascript实现下班倒计时效果的方法(可桌面通知)
2015/07/10 Javascript
php利用curl获取远程图片实现方法
2015/10/26 Javascript
javascript设计简单的秒表计时器
2020/09/05 Javascript
JavaScript html5 canvas绘制时钟效果(二)
2016/03/27 Javascript
解决nodejs中使用http请求返回值为html时乱码的问题
2017/02/18 NodeJs
AngularJS ionic手势事件的使用总结
2017/08/09 Javascript
JS实现数组的增删改查操作示例
2018/08/29 Javascript
VUE 单页面使用 echart 窗口变化时的用法
2020/07/30 Javascript
js+css3实现炫酷时钟
2020/08/18 Javascript
vue3 watch和watchEffect的使用以及有哪些区别
2021/01/26 Vue.js
python 实现归并排序算法
2012/06/05 Python
Python实现更改图片尺寸大小的方法(基于Pillow包)
2016/09/19 Python
Django原生sql也能使用Paginator分页的示例代码
2017/11/15 Python
python生成ppt的方法
2018/06/07 Python
利用Pyhton中的requests包进行网页访问测试的方法
2018/12/26 Python
python垃圾回收机制(GC)原理解析
2019/12/30 Python
canvas与html5实现视频截图功能示例
2016/12/15 HTML / CSS
英国标志性奢侈品牌:Burberry
2016/07/28 全球购物
英国二手iPhone、音乐、电影和游戏商店:musicMagpie
2018/10/26 全球购物
企划专员岗位职责
2013/12/09 职场文书
班风学风建设方案
2014/05/06 职场文书
六一亲子活动总结
2014/07/01 职场文书
个人党性分析总结
2015/03/05 职场文书
德能勤绩工作总结
2015/08/11 职场文书
Nginx进程调度问题详解
2021/09/25 Servers
nginx访问报403错误的几种情况详解
2022/07/23 Servers