📜  SQL |除外条款(1)

📅  最后修改于: 2023-12-03 14:47:36.878000             🧑  作者: Mango

SQL | 除外条款

SQL是一种结构化查询语言,用于管理多种数据库。当我们编写SQL语句时,我们必须牢记除外条款,否则我们会在代码无法正常执行时被困扰。本文将向程序员介绍SQL中的除外条款。

NOT语句

NOT是SQL中的除外条款之一。它用于通过反转逻辑运算符来对结果进行过滤。例如,我们可以使用NOT操作符来查找不符合条件的结果。

例如,我们要使用SELECT语句查找不在名单中的所有人员:

SELECT *
FROM employees
WHERE employee_name NOT IN ('John Doe', 'Jane Smith', 'Bob Johnson');

上面的语句将返回employee_name不是'John Doe','Jane Smith'或'Bob Johnson'的所有行。

非空约束

非空约束是另一个SQL中的除外条款。该约束要求列上的所有条目都必须包含值。如果我们尝试插入一个没有值的行,我们将收到一个错误消息。

例如,我们可以使用以下语句创建一个带有非空约束的表:

CREATE TABLE users (
  user_id INT PRIMARY KEY,
  username VARCHAR(50) NOT NULL,
  password VARCHAR(50) NOT NULL
);

上述代码中,我们在表中为username和password列添加了非空约束。当我们试图插入一个既没有用户名也没有密码的用户时,我们将收到以下错误消息:

INSERT INTO users (user_id) VALUES (1); -- ERROR: column "username" cannot be null
UNIQUE约束

唯一约束是另一个SQL中的除外条款。该约束要求每个列上的所有条目都必须具有唯一的值。如果我们尝试插入多个具有相同值的行,我们将收到一个错误消息。

例如,我们可以使用以下语句创建一个带有唯一约束的表:

CREATE TABLE products (
  product_id INT PRIMARY KEY,
  product_name VARCHAR(50) UNIQUE,
  price DECIMAL(6, 2) NOT NULL
);

上述代码中,我们在表中为product_name列添加了唯一约束。当我们尝试插入具有相同产品名称的两个产品时,我们将收到以下错误消息:

INSERT INTO products (product_id, product_name, price) VALUES (1, 'iPhone', 999.99);
INSERT INTO products (product_id, product_name, price) VALUES (2, 'iPhone', 899.99); -- ERROR: duplicate key value violates unique constraint "products_product_name_key"
总结

除外条款是SQL中很重要的概念,必须牢记。本文介绍了SQL中的三个除外条款:NOT语句,非空约束和唯一约束。它们可以帮助我们过滤结果,确保数据的完整性。