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单表千万级数据处理的思路分享
Jun 05 MySQL
如何搭建 MySQL 高可用高性能集群
Jun 21 MySQL
QT连接MYSQL数据库的详细步骤
Jul 07 MySQL
一文带你探究MySQL中的NULL
Nov 11 MySQL
MySQL表类型 存储引擎 的选择
Nov 11 MySQL
Mysql中有关Datetime和Timestamp的使用总结
Dec 06 MySQL
Mysql数据库表中为什么有索引却没有提高查询速度
Feb 24 MySQL
MySQL中一条update语句是如何执行的
Mar 16 MySQL
详解Mysql数据库平滑扩容解决高并发和大数据量问题
May 25 MySQL
MySQL数据库表约束讲解
Jun 21 MySQL
MySQL主从切换的超详细步骤
Jun 28 MySQL
SQLServer常见数学函数梳理总结
Aug 05 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类
2006/10/09 PHP
关于url地址传参数时字符串有回车造成页面脚本赋值失败的解决方法
2013/06/28 PHP
php array_slice 取出数组中的一段序列实例
2016/11/04 PHP
JavaScript中的私有成员
2006/09/18 Javascript
图片连续滚动代码[兼容IE/firefox]
2009/06/11 Javascript
JavaScript 学习笔记(九)call和apply方法
2010/01/11 Javascript
document.getElementById获取控件对象为空的解决方法
2013/11/20 Javascript
离开当前页面前使用js判断条件提示是否要离开页面
2014/05/02 Javascript
JS数组排序技巧汇总(冒泡、sort、快速、希尔等排序)
2015/11/24 Javascript
尝试动手制作javascript放大镜效果
2015/12/25 Javascript
浅谈JavaScript for循环 闭包
2016/06/22 Javascript
浅谈在vue中使用mint-ui swipe遇到的问题
2018/09/27 Javascript
详解如何制作并发布一个vue的组件的npm包
2018/11/10 Javascript
JavaScript之数组扁平化详解
2019/06/03 Javascript
vue集成chart.js的实现方法
2019/08/20 Javascript
Webpack按需加载打包chunk命名的方法
2019/09/22 Javascript
JavaScript适配器模式原理与用法实例详解
2020/03/09 Javascript
如何利用JavaScript编写更好的条件语句详解
2020/08/10 Javascript
原生js实现分页效果
2020/09/23 Javascript
python中 ? : 三元表达式的使用介绍
2013/10/09 Python
使用Python编写简单的端口扫描器的实例分享
2015/12/18 Python
Python 获得13位unix时间戳的方法
2017/10/20 Python
Python使用MyQR制作专属动态彩色二维码功能
2019/06/04 Python
Django的用户模块与权限系统的示例代码
2019/07/24 Python
Python实现使用dir获取类的方法列表
2019/12/24 Python
Python使用requests xpath 并开启多线程爬取西刺代理ip实例
2020/03/06 Python
基于PyQT实现区分左键双击和单击
2020/05/19 Python
Python调用飞书发送消息的示例
2020/11/10 Python
信息总监管理职责范本
2014/03/08 职场文书
追悼会主持词
2014/03/20 职场文书
个人贷款收入证明
2014/10/26 职场文书
先进事迹材料范文
2014/12/29 职场文书
保姆聘用合同
2015/09/21 职场文书
2016猴年春节慰问信
2015/11/30 职场文书
商业计划书之服装
2019/09/09 职场文书
高并发下Redis如何保持数据一致性(避免读后写)
2022/03/18 Redis