sql中参照完整性的示例分析

  介绍

这篇文章主要为大家展示了“sql中参照完整性的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“sql中参照完整性的示例分析”这篇文章吧。

<强>一、参照完整性

参照完整性指的就是多表之间的设计,主要使用外键约束。
多表设计:一对多、多对多,一对一设计

<强> 1。一对多

关联主要语句:
约束cus_ord_fk外键(customer_id)引用客户(id)
创建客户表——订单表
一个客户可以订多份订单,每份订单只能有一个客户。

,,关联(1对N)      create  table 客户(      id  int  PRIMARY  KEY  auto_increment,   name  varchar  (20), not 空,   adress  varchar  (20), not  null      );      create  table 订单(      order_num  varchar (20), PRIMARY 键,      price  FLOAT  not 空,      customer_id  int,,,,进行和customer 关联的字段,外键   constraint  cus_ord_fk  foreign  key  (customer_id), REFERENCES 客户(id)      );      insert  into 客户(名称、地址),值(“zs",“北京“);      insert  into 客户(名称、地址),值(“ls",“上海“);      SELECT  *,得到客户;      INSERT  INTO  orders 值(“010“,30.5,1);      INSERT  INTO  orders 值(“011“,60.5,2);      INSERT  INTO  orders 值(“012“,120.5,1);      SELECT  *,得到命令;

 sql中参照完整性的示例分析

注意:约束:约束的意思.foreign关键:外键.references:参照
创建一个名叫customer_id_fk的外键约束,其中外键指的是customer_id,并且参照的是客户表中列的id

扩展:

字表的删除更新策略:

<李>

1)级联级联策略。使用此种策略时主表的记录被删除或者主键字段被修改时会同步删除或修改子表

<李>

2)任何行动无动作策略。使用此种策略时要删除主表必须先删除子表,要删除主表的记录必须先删除子表关联的记录,不能更新主表主键字段的值。

<李>

3) RSTRICT主表约束策略。此种策略对主表的约束跟任何行动一样

<李>

4)设置没有置空策略。使用此种策略时,如果主表被删除或者主键被更改,则将子表中的外键设置为零。需要注意的是,如果子表的外键是主键或者是设置为非空的,则主表的删除和主键的更改跟任何行动一样。

 sql中参照完整性的示例分析

<强> 2。多对多

创建学生,老师关系表格
其中一个学生可以有多个老师,一位老师也可以有多个学生

,,多对多关系      ——,创建老师表格   CREATE  TABLE  teacher  (   id  INT,   NAME  VARCHAR  (20), NOT 空,   gender  CHAR  (2), NOT 空,   PRIMARY  KEY  (id)   );      ——,创建学生表格   CREATE  TABLE  student  (   id  INT,   NAME  VARCHAR  (20), NOT 空,   age  INT  NOT  NULL   );      ALTER  TABLE  student  ADD  PRIMARY  KEY  (id);      ——,第三张关系表   CREATE  TABLE  tch_std  (   teacher_id  INT,   student_id  INT,   CONSTRAINT  fk_teacher  FOREIGN  KEY  (teacher_id), REFERENCES  teacher  (id),   CONSTRAINT  fk_student  FOREIGN  KEY  (student_id), REFERENCES  teacher  (id)   );      删除   从   老师   在哪里   时间=id  3;      选择   *   从   老师;      SELECT 不同的   *   从   tch_std;

,  sql中参照完整性的示例分析

注意:多对多是三张表,第三张表创建外键约束对应前两张表中的id

<强> 3。一对一

两种形式:

1)按照外键关联
在经办人身份证表中的外键添加唯一约束
2)按照主键关联
对主键添加外键约束

——,一对一      ——,创建用户表格   CREATE  TABLE  users  (   id  INT,   NAME  VARCHAR  (20), NOT 空,   gender  CHAR  (2), NOT 空,   PRIMARY  KEY  (id)   );      ——,创建card 表格   CREATE  TABLE  card  (   id  INT,   adress  VARCHAR  (100), NOT 空,   user_id  INT 独一无二的,   constraint  users_id_fk  foreign 键(user_id), references 用户(id)   );      ALTER  TABLE  card  ADD  PRIMARY  KEY  (id);

sql中参照完整性的示例分析