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 12 MySQL
正确使用MySQL update语句
May 26 MySQL
你知道哪几种MYSQL的连接查询
Jun 03 MySQL
mysql如何配置白名单访问
Jun 30 MySQL
mysql left join快速转inner join的过程
Jun 30 MySQL
MySQL系列之五 视图、存储函数、存储过程、触发器
Jul 02 MySQL
Mysql中where与on的区别及何时使用详析
Aug 04 MySQL
MySQL创建定时任务
Jan 22 MySQL
mysql如何查询连续记录
May 11 MySQL
sql注入报错之注入原理实例解析
Jun 10 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
WHOIS类的修改版
2006/10/09 PHP
php中使用addslashes函数报错问题的解决方法
2013/02/06 PHP
php mb_substr()函数截取中文字符串应用示例
2014/07/29 PHP
Yii2使用表单上传文件的实例代码
2017/08/03 PHP
五个jQuery图片画廊插件 推荐
2011/05/12 Javascript
jQuery动态地获取系统时间实现代码
2013/05/24 Javascript
jquery ready函数、css函数及text()使用示例
2013/09/27 Javascript
JsRender for index循环索引用法详解
2014/10/31 Javascript
深入浅析AngularJS中的module(模块)
2016/01/04 Javascript
详解javascript传统方法实现异步校验
2016/01/22 Javascript
浅析location.href跨窗口调用函数
2016/11/22 Javascript
vue组件传递对象中实现单向绑定的示例
2018/02/28 Javascript
vue 自定义全局方法,在组件里面的使用介绍
2018/02/28 Javascript
Vue路由模块化配置的完整步骤
2019/08/14 Javascript
关于JavaScript中异步/等待的用法与理解
2020/11/18 Javascript
[08:02]DOTA2牵红线 zhou神抱得美人归
2014/03/22 DOTA
[01:14:34]DOTA2上海特级锦标赛C组资格赛#2 LGD VS Newbee第一局
2016/02/28 DOTA
Python实现识别图片内容的方法分析
2018/07/11 Python
对python当中不在本路径的py文件的引用详解
2018/12/15 Python
python实现翻转棋游戏(othello)
2019/07/29 Python
python实现简单井字棋小游戏
2020/03/05 Python
Python Dict找出value大于某值或key大于某值的所有项方式
2020/06/05 Python
使用CSS禁止textarea调整大小功能的方法
2015/03/13 HTML / CSS
CSS3 text-shadow实现文字阴影效果
2016/02/24 HTML / CSS
html5实现canvas阴影效果示例
2014/05/07 HTML / CSS
HTML5触摸事件演化tap事件介绍
2016/03/25 HTML / CSS
LookFantastic丹麦:英国美容护肤精品在线商城
2016/08/18 全球购物
德国高尔夫商店:Golfshop.de
2019/06/22 全球购物
娇韵诗香港官网:Clarins香港
2020/08/13 全球购物
建筑设计学生的自我评价
2014/01/16 职场文书
励志演讲稿范文
2014/04/29 职场文书
物价局领导班子四风问题整改措施
2014/10/26 职场文书
学习群众路线的心得体会
2014/11/05 职场文书
后勤个人工作总结
2015/02/28 职场文书
大学生如何逃脱“毕业季创业队即散伙”魔咒?
2019/08/19 职场文书
nginx location 带斜杠【 / 】与不带的区别
2022/04/13 Servers