SQL约束是一组规则,用于保证数据库表中数据的正确性和一致性。在创建表时,可以通过使用约束规定数据的格式、类型、完整性以及一些限制条件。本文将详细讲解SQL-约束,包括其类型、如何使用约束以及一些实例。
类型
SQL约束主要可以分为以下五种类型:
NOT NULL
NOT NULL约束规定表中的字段值不能为空。如果尝试插入或更新时将NULL值插入此字段,将会抛出错误。
例如,以下是一个创建包含一个NOT NULL字段的表的示例:
CREATE TABLE student (
id INT NOT NULL,
name VARCHAR(50)
);
UNIQUE
UNIQUE约束用于确保表中的数据在某个列上具有唯一的值。在插入或更新数据时,如果违反了UNIQUE约束,则会抛出错误。
例如,以下是一个创建包含一个UNIQUE字段的表的示例:
CREATE TABLE fruit (
id INT,
name VARCHAR(50) UNIQUE
);
PRIMARY KEY
PRIMARY KEY约束标识表中的一个列(或一组列),这个列具有唯一性、非空性以及单一性。即,这个列不能重复,不能有NULL值,且只能有一个这样的列。
例如,以下是一个创建包含一个PRIMARY KEY的表的示例:
CREATE TABLE person (
id INT PRIMARY KEY,
name VARCHAR(50)
);
FOREIGN KEY
FOREIGN KEY约束用于与另一张表中的某个列建立联系。在这种情况下,该列将被称为“外键”,并参考另一张表中的“主键”。
例如,以下是一个创建包含一个FOREIGN KEY的表的示例:
CREATE TABLE order (
id INT PRIMARY KEY,
customer_id INT,
FOREIGN KEY (customer_id) REFERENCES customer(id)
);
这个例子中,order
表中的customer_id
列是customer
表中的id
列的外键。
CHECK
CHECK约束可以在数据库中创建一个检查条件。只有满足这个条件的数据才会被插入到表中。
例如,以下是一个创建包含一个CHECK约束的表的示例:
CREATE TABLE price (
id INT PRIMARY KEY,
amount INT CHECK(amount >= 0)
);
这个例子中,CHECK
约束将确保在price
表中创建的记录的amount
列的值必须大于或等于0。
如何使用约束
使用SQL约束可以通过在创建表时添加约束来实现。以下是创建一个包含约束的表的基本语法:
CREATE TABLE table_name (
column1 datatype constraint,
column2 datatype constraint,
column3 datatype constraint,
...
);
以上语法中,每一列都可以有一个或多个约束。约束必须在数据类型之后定义,而多个约束之间必须用逗号分隔。
实例
以下是两个SQL约束的实例:
实例一:创建包含NOT NULL和UNIQUE约束的表
CREATE TABLE person (
id INT NOT NULL,
name VARCHAR(50) NOT NULL UNIQUE
);
在这个例子中,id
列必须是非空的,而name
列必须是唯一的且非空的。
实例二:创建包含FOREIGN KEY约束的表
CREATE TABLE order (
id INT PRIMARY KEY,
customer_id INT,
FOREIGN KEY (customer_id) REFERENCES customer(id)
);
在这个例子中,order
表中的customer_id
列引用了customer
表中的id
列,构成了一个外键约束。这将确保order
表中的每个customer_id
都必须对应于customer
表中的有效id
。如果在插入或更新order
表时,customer_id
列的值不符合这个约束,则会抛出错误。
总结
SQL约束是用于保证数据库表中数据正确性和一致性的规则。约束主要有五种类型:NOT NULL、UNIQUE、PRIMARY KEY、FOREIGN KEY和CHECK。我们可以在创建表时定义这些约束来确保由插入的数据满足一些限制条件。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:SQL – 约束 - Python技术站