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 08 MySQL
MySQL系列之一 MariaDB-server安装
Jul 02 MySQL
SQL实现LeetCode(178.分数排行)
Aug 04 MySQL
MySQL空间数据存储及函数
Sep 25 MySQL
深入讲解数据库中Decimal类型的使用以及实现方法
Feb 15 MySQL
Arthas排查Kubernetes中应用频繁挂掉重启异常
Feb 28 MySQL
MySQL数据库查询进阶之多表查询详解
Apr 08 MySQL
MySQL 数据库 增删查改、克隆、外键 等操作
May 11 MySQL
Mysql数据库事务的脏读幻读及不可重复读详解
May 30 MySQL
MySQL运行报错:“Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggre”解决方法
Jun 14 MySQL
MySQL聚簇索引和非聚簇索引的区别详情
Jun 14 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和ACCESS写聊天室(五)
2006/10/09 PHP
php图片加水印原理(超简单的实例代码)
2013/01/18 PHP
php 批量生成html,txt文件的实现代码
2013/06/26 PHP
PHP入门教程之表单与验证实例详解
2016/09/11 PHP
php使用redis的几种常见操作方式和用法示例
2020/02/20 PHP
一组JS创建和操作表格的函数集合
2009/05/07 Javascript
网页中的图片的处理方法与代码
2009/11/26 Javascript
jquery select操作的日期联动实现代码
2009/12/06 Javascript
分享一个用Mootools写的鼠标滑过进度条改变进度值的实现代码
2011/12/12 Javascript
jquery插件制作 图片走廊 gallery
2012/08/17 Javascript
JS动态添加与删除select中的Option对象(示例代码)
2013/12/25 Javascript
jQuery中复合属性选择器用法实例
2014/12/31 Javascript
JS实现漂亮的窗口拖拽效果(可改变大小、最大化、最小化、关闭)
2015/10/10 Javascript
解决vue处理axios post请求传参的问题
2018/03/05 Javascript
详解组件库的webpack构建速度优化
2018/06/18 Javascript
详解Angular cli配置过程记录
2019/11/07 Javascript
Javascript中Math.max和Math.max.apply的区别和用法详解
2020/08/24 Javascript
[31:33]2014 DOTA2国际邀请赛中国区预选赛 TongFu VS DT 第一场
2014/05/23 DOTA
Python实现购物系统(示例讲解)
2017/09/13 Python
Python运维自动化之nginx配置文件对比操作示例
2018/08/29 Python
numpy求平均值的维度设定的例子
2019/08/24 Python
解决Tensorflow 使用时cpu编译不支持警告的问题
2020/02/03 Python
美国最大婚纱连锁店运营商:David’s Bridal
2019/03/12 全球购物
西班牙购买行李箱和背包网站:Maletas Greenwich
2019/10/08 全球购物
英国婚礼商城:Wedding Mall
2019/11/02 全球购物
乐高瑞士官方商店:LEGO CH
2020/08/16 全球购物
金融学专业大学生职业生涯规划
2014/03/07 职场文书
大学新闻系应届生求职信
2014/06/02 职场文书
小学生推普周国旗下讲话稿
2014/09/21 职场文书
销售开票员岗位职责
2015/04/15 职场文书
房地产项目合作意向书
2015/05/08 职场文书
CSS完成视差滚动效果
2021/04/27 HTML / CSS
python操作xlsx格式文件并读取
2021/06/02 Python
Oracle用户管理及赋权
2022/04/24 Oracle
解决flex布局中子项目尺寸不受flex-shrink限制
2022/05/11 HTML / CSS
numpy array找出符合条件的数并赋值的示例代码
2022/06/01 Python