📜  约束默认 SQL (1)

📅  最后修改于: 2023-12-03 15:27:32.489000             🧑  作者: Mango

约束默认 SQL

什么是约束?

在关系型数据库中,约束是一种限制条件,用于限制某些列或行的取值,保障数据的完整性和一致性。约束可以分为以下几种:

  1. 主键约束(Primary Key Constraint):用于标识关系表中的一行数据,每个表只能有一个主键。
  2. 唯一约束(Unique Constraint):保证列中的数据唯一,但一个表可以有多个唯一约束。
  3. 检查约束(Check Constraint):给定一定的条件,只允许满足该条件的数据插入或更新。
  4. 外键约束(Foreign Key Constraint):用于保持数据表之间的引用完整性,确保指向其他表的键只会包含已存在的值。
为什么要使用约束?

使用约束可以保证数据的完整性和一致性,避免错误数据的插入和更新。如果不使用约束,则需要在应用程序级别上进行数据的校验,增加了代码实现的难度和风险。此外,约束还可以提高查询效率。

如何通过SQL语句添加约束?

添加约束是在创建表的时候进行的,可以通过SQL语句的方式添加。以下是添加不同类型约束的SQL示例:

  • 主键约束:
CREATE TABLE test(
    id INT NOT NULL PRIMARY KEY,
    name VARCHAR(20)
);
  • 唯一约束:
CREATE TABLE test2(
    id INT NOT NULL,
    name VARCHAR(20) UNIQUE,
    age INT
);
  • 检查约束:
CREATE TABLE test3(
    id INT NOT NULL,
    name VARCHAR(20),
    age INT CHECK(age>0)
);
  • 外键约束:
CREATE TABLE test4(
    id INT NOT NULL PRIMARY KEY,
    name VARCHAR(20)
);

CREATE TABLE test5(
    id INT NOT NULL,
    CONSTRAINT fk_test5_test4 FOREIGN KEY(id) REFERENCES test4(id)
);
如何修改或删除约束?

在修改或删除约束时,需要使用ALTER TABLE语句。以下是修改或删除不同类型约束的SQL示例:

  • 修改主键约束:
ALTER TABLE test ADD CONSTRAINT pk_test PRIMARY KEY(id,name);
  • 删除唯一约束:
ALTER TABLE test2 DROP CONSTRAINT unique_test2_name;
  • 修改检查约束:
ALTER TABLE test3 ADD CHECK(age>20);
  • 删除外键约束:
ALTER TABLE test5 DROP CONSTRAINT fk_test5_test4;
总结

使用约束可以保证数据的完整性和一致性,避免错误数据的插入和更新。通过SQL语句添加、修改或删除约束可以为数据库的管理和维护带来便利。