SQL约束

SQL约束,SQL已经改进过多个版本,成为非常完善和强大的语言。许多强有力的特性给用户提供了高级的数据处理技术,如约束。

关联表和引用完整性已经在前面讨论过几次。正如所述,关系数据库存储分解为多个表的数据,每个表存储相应的数据。利用键来建立从一个表到另一个表的引用[由此产生了术语引用完整性(referential integrity)。

正确地进行关系数据库设计,需要一种方法保证只在表中插入合法数据。例如,如果Orders表存储订单信息,OrderItems表存储订单详细内容,应该保证OrderItems中引用的任何订单ID都存在于Orders中。类似地,在Orders表中引用的任意顾客必须存在于Customers表中。

虽然可以在插入新行时进行检查(在另一个表上执行SELECT,以保证所有值合法并存在),但最好不要这样做,原因如下。

  • 如果在客户端层面上实施数据库完整性规则,则每个客户端都要被迫实施这些规则,一定会有一些客户端不实施这些规则。
  • 在执行UPDATE和DELETE操作时,也必须实施这些规则。
  • 执行客户端检查是非常耗时的,而DBMS执行这些检查会相对高效。

约束(constraint)
管理如何插入或处理数据库数据的规则。
DBMS通过在数据库表上施加约束来实施引用完整性。大多数约束是在表定义中定义的,如前所述,用CREATE TABLEALTER TABLE语句。

注意:具体DBMS的约束
有几种不同类型的约束,每个DBMS都提供自己的支持。因此,这里给出的例子在不同的DBMS上可能有不同的反应。在进行试验之前,请参阅具体的DBMS文档。

酷客网相关文章:

赞(0)

评论 抢沙发

评论前必须登录!

 

SQL教程