数据库完整性约束有哪些类型

发布时间:2025-02-15 06:20:43 作者:小樊
来源:亿速云 阅读:102

数据库完整性约束是确保数据库中数据的一致性、准确性和可靠性的关键机制。根据不同的应用场景和需求,完整性约束可以分为以下几种类型:

  1. 实体完整性

    • 定义:确保表中的每一行数据都是唯一的,通常通过主键约束实现。
    • 示例:在学生表中,使用 StudentID 作为主键,确保每个学生的ID是唯一的。

    CREATE TABLE Students ( StudentID INT PRIMARY KEY, Name VARCHAR(50) );

    
    
  2. 参照完整性

    • 定义:确保表之间的关联关系正确无误,通常通过外键约束实现。
    • 示例:在选课表中,使用 CourseID 作为外键,引用课程表中的 CourseID,确保每个选课记录都对应一个有效的课程。

    CREATE TABLE Courses ( CourseID INT PRIMARY KEY, CourseName VARCHAR(50) );

    CREATE TABLE Enrollments ( EnrollmentID INT PRIMARY KEY, StudentID INT, CourseID INT, FOREIGN KEY (StudentID) REFERENCES Students(StudentID), FOREIGN KEY (CourseID) REFERENCES Courses(CourseID) );

    
    
  3. 域完整性

    • 定义:确保数据在特定列中的值符合定义的数据类型和约束条件,通常通过数据类型约束和检查约束实现。
    • 示例:在员工表中,使用 Age 列,并添加检查约束,确保年龄在18到60之间。

    CREATE TABLE Employees ( EmployeeID INT PRIMARY KEY, Name VARCHAR(50), Age INT CHECK (Age >= 18 AND Age <= 60) );

    
    
  4. 用户定义的完整性

    • 定义:根据具体应用需求自定义的约束规则,通常通过触发器和存储过程实现。
    • 示例:在员工表中,添加触发器,确保插入或更新员工薪水时,薪水不能为负数。

    CREATE TRIGGER CheckSalary BEFORE INSERT OR UPDATE ON Employees FOR EACH ROW BEGIN IF NEW.Salary < 0 THEN SIGNAL SQLSTATE ‘45000’ SET MESSAGE_TEXT = ‘Salary cannot be negative’; END IF; END;

    
    
  5. 其他约束类型

    • 唯一约束:确保某列或多列的组合值唯一。
      • 示例:在员工表中,使用 EmployeeIDEmployeeCode 组合作为唯一约束。
      CREATE TABLE Employees ( EmployeeID INT PRIMARY KEY, EmployeeCode VARCHAR(10) UNIQUE );
    • 非空约束:确保某列不能为空。
      • 示例:在地址表中,使用 Street 列,并添加非空约束。
      CREATE TABLE Addresses ( AddressID INT PRIMARY KEY, Street VARCHAR(100) NOT NULL );
    • 默认约束:为某列指定默认值。
      • 示例:在联系方式表中,使用 PhoneNumber 列,并添加默认值。
      CREATE TABLE Contacts ( ContactID INT PRIMARY KEY, PhoneNumber VARCHAR(15) DEFAULT ‘123-456-7890’ );
    • 检查约束:确保某列的值符合特定条件。
      • 示例:在成绩表中,使用 Score 列,并添加检查约束,确保成绩在0到100之间。
      CREATE TABLE Scores ( ScoreID INT PRIMARY KEY, StudentID INT, Score INT CHECK (Score >= 0 AND Score <= 100) );
      
      

通过合理应用这些完整性约束,可以显著提高数据库的数据质量和系统的稳定性。

推荐阅读:
  1. 分析数据库参数ENABLE_DDL_LOGGING从11.2到12c变化
  2. 分布式数据库如何玩转HTAP场景

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

数据库

上一篇:服务器运维审计中有哪些关键指标

下一篇:数据库完整性约束的作用是什么

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》