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 Router的安装部署
Apr 24 MySQL
jdbc使用PreparedStatement批量插入数据的方法
Apr 27 MySQL
Mysql数据库命令大全
May 26 MySQL
MySQL 发生同步延迟时Seconds_Behind_Master还为0的原因
Jun 21 MySQL
为什么MySQL 删除表数据 磁盘空间还一直被占用
Oct 16 MySQL
SQL 聚合、分组和排序
Nov 11 MySQL
实战 快速定位MySQL的慢SQL
Mar 22 MySQL
MySQL中优化SQL语句的方法(show status、explain分析服务器状态信息)
Apr 09 MySQL
MySQL库表太大怎么办? 数据库分库分表项目实践
Apr 11 MySQL
MySQ InnoDB和MyISAM存储引擎介绍
Apr 26 MySQL
MySQL 逻辑备份 into outfile
May 15 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
色色整理的PHP面试题集锦
2012/03/08 PHP
PHP从数组中删除元素的四种方法实例
2017/05/12 PHP
Laravel框架控制器的request与response用法示例
2019/09/30 PHP
PJBlog插件 防刷新的在线播放器
2006/10/25 Javascript
js下将字符串当函数执行的方法
2011/07/13 Javascript
JS 实现导航栏悬停效果(续2)
2013/09/24 Javascript
javascript检测是否联网的实现代码
2014/09/28 Javascript
JavaScript实现常用二级省市级联下拉列表的方法
2015/03/25 Javascript
jQuery实现仿美橙互联两级导航菜单效果完整实例
2015/09/17 Javascript
jquery插件格式实例分析
2016/06/16 Javascript
JavaScript无操作后屏保功能的实现方法
2017/07/04 Javascript
JS实现数组去重,显示重复元素及个数的方法示例
2019/01/21 Javascript
微信小程序实现简单购物车功能
2020/12/30 Javascript
Python实现树的先序、中序、后序排序算法示例
2017/06/23 Python
python select.select模块通信全过程解析
2017/09/20 Python
python爬虫爬取某站上海租房图片
2018/02/04 Python
python实现AES加密和解密
2019/03/27 Python
python转化excel数字日期为标准日期操作
2020/07/14 Python
Python paramiko使用方法代码汇总
2020/11/20 Python
HTML5标签小集
2011/08/02 HTML / CSS
HTML5触摸事件实现移动端简易进度条的实现方法
2018/05/04 HTML / CSS
市场营销专业毕业生自荐信
2013/11/02 职场文书
小学英语教师先进事迹
2014/05/28 职场文书
校园运动会广播稿
2014/10/06 职场文书
计划生育证明格式及范本
2014/10/09 职场文书
护士年终个人总结
2015/02/13 职场文书
研究生导师推荐信
2015/03/25 职场文书
道歉的话语大全
2015/05/12 职场文书
2017公司年会主持人开幕词
2016/03/04 职场文书
中学生打架检讨书之500字
2019/08/06 职场文书
关于感恩的歌曲整理(8首)
2019/08/14 职场文书
使用Nginx搭载rtmp直播服务器的方法
2021/10/16 Servers
各种货币符号快捷输入
2022/02/17 杂记
剑指Offer之Java算法习题精讲二叉树的构造和遍历
2022/03/21 Java/Android
Elasticsearch 基本查询和组合查询
2022/04/19 Python
TS 类型收窄教程示例详解
2022/09/23 Javascript