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查询语句
May 26 MySQL
MYSQL主从数据库同步备份配置的方法
May 26 MySQL
python中的mysql数据库LIKE操作符详解
Jul 01 MySQL
MySQL定时备份数据库(全库备份)的实现
Sep 25 MySQL
MySQL中varchar和char类型的区别
Nov 17 MySQL
mysql5.7的安装及Navicate长久免费使用的实现过程
Nov 17 MySQL
VS2019连接MySQL数据库的过程及常见问题总结
Nov 27 MySQL
MySQL日期时间函数知识汇总
Mar 17 MySQL
实战 快速定位MySQL的慢SQL
Mar 22 MySQL
MySQL中rank() over、dense_rank() over、row_number() over用法介绍
Mar 23 MySQL
MySQL RC事务隔离的实现
Mar 31 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 str_pad 函数使用详解
2009/01/13 PHP
PHP 加密与解密的斗争
2009/04/17 PHP
分享一段PHP制作的中文拼音首字母工具类
2014/12/11 PHP
php在数据库抽象层简单使用PDO的方法
2015/11/03 PHP
PHP中substr_count()函数获取子字符串出现次数的方法
2016/01/07 PHP
php base64 编码与解码实例代码
2017/03/21 PHP
网页的标准,IMG不支持onload标签怎么办
2006/06/29 Javascript
Jquery替换已存在于element上的event的方法
2010/03/09 Javascript
用Javascript评估用户输入密码的强度实现代码
2011/11/30 Javascript
页面图片浮动左右滑动效果的简单实现案例
2014/02/10 Javascript
DOM基础教程之事件类型
2015/01/20 Javascript
jQuery基于图层模仿五星星评价功能的方法
2015/05/07 Javascript
jquery实现的简单二级菜单效果代码
2015/09/22 Javascript
Jquery 全选反选实例代码
2015/11/19 Javascript
Bootstrap创建可折叠的组件
2016/02/23 Javascript
详解React-Todos入门例子
2016/11/08 Javascript
基于Vue2.0+ElementUI实现表格翻页功能
2017/10/23 Javascript
Bootstrap popover 实现鼠标移入移除显示隐藏功能方法
2018/01/24 Javascript
ES6中Symbol、Set和Map用法详解
2019/08/20 Javascript
[49:56]VG vs Optic 2018国际邀请赛小组赛BO2 第一场 8.19
2018/08/21 DOTA
linux下安装easy_install的方法
2013/02/10 Python
Python写的一个简单DNS服务器实例
2014/06/04 Python
Python采集猫眼两万条数据 对《无名之辈》影评进行分析
2018/12/05 Python
删除pycharm鼠标右键快捷键打开项目的操作
2021/01/16 Python
美国女士泳装店:Swimsuits For All
2017/03/02 全球购物
Spartoo比利时:欧洲时尚购物网站
2017/12/06 全球购物
美国眼镜网站:LensCrafters
2020/01/19 全球购物
幼儿园消防演练方案
2014/02/13 职场文书
美丽家庭事迹材料
2014/05/03 职场文书
公司法人授权委托书范本
2014/09/12 职场文书
大学生毕业评语
2014/12/31 职场文书
2015安全保卫工作总结
2015/04/25 职场文书
2016年春季运动会加油稿
2015/07/22 职场文书
导游词书写之黄山
2019/08/06 职场文书
Java实现简易的分词器功能
2021/06/15 Java/Android
忘记Grafana不要紧2种Grafana重置admin密码方法详细步骤
2022/04/07 Servers