美文网首页
数据库约束的分类和实现

数据库约束的分类和实现

作者: 咆哮女孩 | 来源:发表于2019-05-23 05:07 被阅读0次

为什么要用约束

数据库的约束(constrain)用于设计数据表和列,它就像是规范,保证数据的格式,和范围,以及数据表之间的联系。

以sqlite 为例:

column constraint:(列约束)

  1. check constraint:
t.column(email, check: email.like("%@%”))
reference constraint:
t.column(user_id, references: users, id)
  1. collate constraint:
t.column(name, collate: .rtrim)
t.column(email, collate: .nocase)

table constraint:(表约束)

  1. UNIQUE constraint:The UNIQUE constraint ensures that all values in a column are different.

CONSTRAINT UC_Person UNIQUE (ID,LastName) —ID和LastName列都是独一无二的

  1. PRIMARY KEY constraint:主键约束 ---用来标识一列,可以用多个字段表示

  2. CHECK constraint:t.check(balance >=0)

the form of a boolean expression(expression<Bool>)Boolean expressions can be easily built using filter operators and functions.
//CHECK ("balance" >= 0.0)

用filter function 来实现:传入一个返回bool数据类型的方法。

  1. FOREIGN KEY constraint: 外键约束 表示表与表之间的关系,与列约束的reference constraint 不同,外键需要有表与表之间交互的功能

修改父键时,子键的动作:

  1. NO ACTION:不做任何修改
  2. RESTRICT:当父键存在有与之映射的子键时,不能删除(for ON DELETE RESTRICT) or 修改 (for ON UPDATE RESTRICT)
  3. SET NULL:当父键删除时 (for ON DELETE SET NULL)映射的子键设为NULL 或者修改时(for ON UPDATE SET NULL)
  4. SET DEFAULT:与 SET NULL相似,除非子键的列有设默认值
  5. CASCADE:当父键的列删除,所有关联的列也被删除,当父键被修改时所有子键的外键也被修改

相关文章

  • 数据库约束的分类和实现

    为什么要用约束 数据库的约束(constrain)用于设计数据表和列,它就像是规范,保证数据的格式,和范围,以及数...

  • MySQL基础02

    目标1)数据约束2)数据库设计(表约束)3)存储过程4)触发器5)mysql权限问题 1.SQL语句分类: DDL...

  • 数据库操作(十)

    正课:1、约束为数据库对象。对把数据库表中的字段类型,实现数据插入的限制条件。也会附带着其他的约束:如绑定。 主键...

  • 约束

    1、使用约束的作用 约束保证数据的完整性和一致性 2、约束的分类 约束分为表级约束和列级约束 约束类型包括:not...

  • PHP简单电商平台

    搭建框架,添加常用辅助函数 设计数据库 实现后台功能 商品分类 功能 添加商品分类,显示商品分类,编辑商品分类,删...

  • Mysql 约束(二)

    DQL:查询语句 约束 数据库的设计 数据库的备份和还原

  • Day03--数据库

    DQL:查询语句 约束 数据库的设计 数据库的备份和还原

  • 最优化

    一、最优化问题的分类 1. 根据约束类型分类: (1)无约束问题(2)约束问题 2.根据目标函数及约束函数的类型分...

  • MySql : 二、数据库表的约束、表和表之间的关系以及范式

    前言 本篇主要介绍了数据库中表字段的约束,表和表之前的关系,以及数据库设计的三大范式。 目录 一、数据库表的约束二...

  • MySql 中的约束

    MySql 中的约束 作用:给表添加约束值,从而约束用户操作数据库的行为 数据库常见的约束值如下: 默认值约束(d...

网友评论

      本文标题:数据库约束的分类和实现

      本文链接:https://www.haomeiwen.com/subject/kdjmzqtx.html