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 07 MySQL
MySQL主从搭建(多主一从)的实现思路与步骤
May 13 MySQL
MySQL大小写敏感的注意事项
May 24 MySQL
MySQL之PXC集群搭建的方法步骤
May 25 MySQL
sql注入教程之类型以及提交注入
Aug 02 MySQL
MySQL外键约束(FOREIGN KEY)案例讲解
Aug 23 MySQL
mysql配置SSL证书登录的实现
Sep 04 MySQL
MYSQL优化之数据表碎片整理详解
Apr 03 MySQL
MySQL 表锁定 LOCK和UNLOCK TABLES的 SQL语法
Apr 18 MySQL
MySQL 逻辑备份 into outfile
May 15 MySQL
MySQL sql模式设置引起的问题
May 15 MySQL
Mysql将字符串按照指定字符分割的正确方法
May 30 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
叶罗丽:为什么大家对颜冰这对CP非常关心,却对金茉两人十分冷漠
2020/03/17 国漫
php判断上传的Excel文件中是否有图片及PHPExcel库认识
2013/01/11 PHP
解析PHP汉字转换拼音的类
2013/06/18 PHP
PHP调用存储过程返回值不一致问题的解决方法分析
2016/04/26 PHP
PHP+Ajax+JS实现多图上传
2016/05/07 PHP
PHP迭代器接口Iterator用法分析
2017/12/28 PHP
基于jquery的商品展示放大镜
2010/08/07 Javascript
js仿百度贴吧验证码特效实例代码
2014/01/16 Javascript
快速掌握WordPress中加载JavaScript脚本的方法
2015/12/17 Javascript
vue如何将v-for中的表格导出来
2018/05/07 Javascript
使用node.js实现微信小程序实时聊天功能
2018/08/13 Javascript
Vue.js 中 axios 跨域访问错误问题及解决方法
2018/11/21 Javascript
微信小程序非swiper组件实现的自定义伪3D轮播图效果示例
2018/12/11 Javascript
js最实用string(字符串)类型的使用及截取与拼接详解
2019/04/26 Javascript
基于JQuery和DWR实现异步数据传递
2020/10/16 jQuery
wxpython中自定义事件的实现与使用方法分析
2016/07/21 Python
python安装教程 Pycharm安装详细教程
2017/05/02 Python
python生成九宫格图片
2018/11/19 Python
Python3 log10()函数简单用法
2019/02/19 Python
11个Python3字典内置方法大全与示例汇总
2019/05/13 Python
基于python3实现倒叙字符串
2020/02/18 Python
Python类成员继承重写的实现
2020/09/16 Python
python 密码学示例——理解哈希(Hash)算法
2020/09/21 Python
巴西Mr. Cat在线商店:购买包包和鞋子
2019/09/08 全球购物
中医专业职业生涯规划书范文
2014/01/04 职场文书
开会迟到检讨书
2014/02/03 职场文书
2014村务公开实施方案
2014/02/25 职场文书
植树节活动总结
2014/04/30 职场文书
体育活动总结范文
2014/05/04 职场文书
会计专业自荐信
2014/06/03 职场文书
2015年高校图书馆工作总结
2015/04/30 职场文书
电影雷锋观后感
2015/06/10 职场文书
围城读书笔记
2015/06/26 职场文书
《半截蜡烛》教学反思
2016/02/19 职场文书
Python基础之pandas数据合并
2021/04/27 Python
MySQL数据迁移相关总结
2021/04/29 MySQL