MySQL非空约束(not null)案例讲解
16lz
2021-12-09
比如,在用户信息表中,如果不添加用户名,那么这条用户信息就是无效的,这时就可以为用户名字段设置非空约束。
在创建表时设置非空约束
创建表时可以使用 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: 0mysql> 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: 0mysql> 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系列多表连接查询92及99语法示例详解教程
- Linux下MYSQL 5.7 找回root密码的问题(亲测可用)
- MySQL 什么时候使用INNER JOIN 或 LEFT JOIN
- vue 基础语法及购物车小案例
- python起点网月票榜字体反爬案例
- android从服务器下载文件(php+apache+win7+MySql)
- 【有图】android通过jdbc连接mysql(附文件)
- Android实现手机定位的案例代码
- Android(安卓)Studio项目/Flutter 案例Gradle报错通用解决方案(包