SQL基础 | NOT NULL 约束介绍

在SQL中,NOT NULL是一个约束条件,用于确保列不接受NULL值。

这个约束通常在创建表或修改表时使用,以确保数据的完整性和准确性。

以下是NOT NULL的一些常见用法:

  1. 创建表时指定NOT NULL约束: 当你创建一个新表时,可以在列定义后面添加 NOT NULL来指定该列不能包含 NULL值。
CREATE TABLE customers (
   customer_id INT NOT NULL,
   first_name VARCHAR(50NOT NULL,
   last_name VARCHAR(50NOT NULL,
   email VARCHAR(100)
);

在这个例子中,customer_idfirst_namelast_name列都不能包含NULL值,而email列没有这个约束,所以它可以是NULL

  1. 修改表时添加NOT NULL约束: 如果一个表已经存在,但你想要添加 NOT NULL约束到某个列上,可以使用 ALTER TABLE语句。
ALTER TABLE customers
MODIFY email VARCHAR(100NOT NULL;

这个语句将email列的约束从可为NULL修改为不能为NULL

  1. 在列定义中使用DEFAULT值与NOT NULL: 你可以将 NOT NULLDEFAULT关键字一起使用,为列提供一个默认值。
CREATE TABLE orders (
order_id INT NOT NULL,
customer_id INT NOT NULL,
order_date DATETIME NOT NULL DEFAULT now()
);

在这个例子中,如果用户在插入新订单时没有指定order_date,那么将自动使用当前日期作为默认值。

  1. 在INSERT语句中处理NOT NULL约束: 当你向一个包含 NOT NULL约束的表中插入数据时,必须为这些列提供值。
INSERT INTO orders (order_id, customer_id)
VALUES (1null);

INSERT INTO orders (order_id, customer_id)
VALUES (11);

如果你尝试插入一个缺少 order_id,customer_id 值的记录,SQL将返回错误,因为这些列都有NOT NULL约束。

  1. 在UPDATE语句中处理NOT NULL约束: 即使列具有 NOT NULL约束,你也可以通过 UPDATE语句为这些列设置新值,只要新值不是 NULL
UPDATE customers
SET first_name = 'Jane'
WHERE customer_id = 1;

NOT NULL约束是数据库设计中非常重要的一部分,它帮助确保数据的完整性,防止不完整的数据被存储到数据库中。在设计数据库时,合理地使用NOT NULL约束可以提高数据的可靠性和应用程序的健壮性。

本文由 mdnice 多平台发布

相关推荐

  1. SQL基础 | NOT NULL 约束介绍

    2024-07-15 05:38:05       23 阅读
  2. <span style='color:red;'>SQL</span><span style='color:red;'>约束</span>

    SQL约束

    2024-07-15 05:38:05      32 阅读
  3. SQL约束

    2024-07-15 05:38:05       25 阅读
  4. SQL-约束

    2024-07-15 05:38:05       22 阅读
  5. SQL基础SQL 介绍和数据库基础

    2024-07-15 05:38:05       71 阅读
  6. 2. SQL - 约束

    2024-07-15 05:38:05       51 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-15 05:38:05       67 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-15 05:38:05       72 阅读
  3. 在Django里面运行非项目文件

    2024-07-15 05:38:05       58 阅读
  4. Python语言-面向对象

    2024-07-15 05:38:05       69 阅读

热门阅读

  1. 算法金 | 深度学习图像增强方法总结

    2024-07-15 05:38:05       17 阅读
  2. rabbitmq解除消息者消息推送限制

    2024-07-15 05:38:05       23 阅读
  3. 迪米特法则

    2024-07-15 05:38:05       25 阅读
  4. SpringBoot+Vue实现简单的文件上传(策略模式)

    2024-07-15 05:38:05       25 阅读
  5. Zookeeper背景优缺点,以及应用场景

    2024-07-15 05:38:05       26 阅读