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死锁和分库分表问题详解
Apr 16 MySQL
MySQL Threads_running飙升与慢查询的相关问题解决
May 08 MySQL
MySQL 数据类型选择原则
May 27 MySQL
MySQL单表千万级数据处理的思路分享
Jun 05 MySQL
MySQL系列之五 视图、存储函数、存储过程、触发器
Jul 02 MySQL
mysql备份策略的实现(全量备份+增量备份)
Jul 07 MySQL
SQL优化老出错,那是你没弄明白MySQL解释计划用法
Nov 27 MySQL
Mysql忘记密码解决方法
Feb 12 MySQL
分享MySQL常用 内核 Debug 几种常见方法
Mar 17 MySQL
详细聊一聊mysql的树形结构存储以及查询
Apr 05 MySQL
以MySQL5.7为例了解一下执行计划
Apr 13 MySQL
Mysql InnoDB 的内存逻辑架构
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数组对百万数据进行排除重复数据的实现代码
2010/06/08 PHP
thinkPHP框架中layer.js的封装与使用方法示例
2019/01/18 PHP
javascript学习笔记(十七) 检测浏览器插件代码
2012/06/20 Javascript
javascript中的事件代理初探
2014/03/08 Javascript
用C/C++来实现 Node.js 的模块(二)
2014/09/24 Javascript
js中 javascript:void(0) 用法详解
2015/08/11 Javascript
JS实现带鼠标效果的头像及文章列表代码
2015/09/27 Javascript
javascript html5实现表单验证
2016/03/01 Javascript
微信小程序 教程之模块化
2016/10/17 Javascript
RequireJS简易绘图程序开发
2016/10/28 Javascript
BootStrap Table后台分页时前台删除最后一页所有数据refresh刷新后无数据问题
2016/12/28 Javascript
AngularJS实现使用路由切换视图的方法
2017/01/24 Javascript
Angular 表单控件示例代码
2017/06/26 Javascript
3种vue路由传参的基本模式
2018/02/22 Javascript
JavaScript实现新年倒计时效果
2018/11/17 Javascript
Koa从零搭建到Api实现项目的搭建方法
2019/07/30 Javascript
解决layui数据表格table的横向滚动条显示问题
2019/09/04 Javascript
Python聚类算法之凝聚层次聚类实例分析
2015/11/20 Python
python 调用c语言函数的方法
2017/09/29 Python
Python高斯消除矩阵
2019/01/02 Python
Python3使用Matplotlib 绘制精美的数学函数图形
2019/04/11 Python
图文详解Django使用Pycharm连接MySQL数据库
2019/08/09 Python
Python collections模块使用方法详解
2019/08/28 Python
Pytorch实现基于CharRNN的文本分类与生成示例
2020/01/08 Python
python selenium自动化测试框架搭建的方法步骤
2020/06/14 Python
Python参数传递实现过程及原理详解
2020/05/14 Python
Django Session和Cookie分别实现记住用户登录状态操作
2020/07/02 Python
歌唱比赛获奖感言
2014/01/21 职场文书
历史博物馆观后感
2015/06/05 职场文书
埃及王子观后感
2015/06/16 职场文书
运动会闭幕式通讯稿
2015/07/18 职场文书
公司费用报销管理制度
2015/08/04 职场文书
2019西餐厅创业计划书范文!
2019/07/12 职场文书
Python实现智慧校园自动评教全新版
2021/06/18 Python
Python socket如何解析HTTP请求内容
2022/02/12 Python
Win11如何查看显卡型号 Win11查看显卡型号的方法
2022/08/14 数码科技