sql一对一 一对多,一对多sql语句,详解sql中的参照完整性(一对一,一对多,多对多)

sql一对一 一对多,一对多sql语句,详解sql中的参照完整性(一对一,一对多,多对多)

本文主要介绍sql中的参照完整性,通过示例代码进行了非常详细的介绍,对大家的学习或工作有一定的参考价值。有需要的朋友下面和边肖一起学习。

一、参照完整性

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

多表设计:一对多、多对多、一对一设计

1.一对多

主要相关声明:

约束cus_ord_fk外键(customer_id)引用了客户(id)

创建客户表——订单表

一个客户可以下多个订单,每个订单只能有一个客户。

-关联(1对n)

创建表客户(

id int主键auto_increment

name varchar (20)不为空,

address varchar(20)不为空

);

创建表订单(

order_num varchar(20)主键,

价格浮动不为空,

Customer_id int,-与客户关联的字段的外键

约束cus_ord_fk外键(customer_id)引用了客户(id)

);

转换成客户(姓名、地址)值(' zs ','北京');

插入客户(姓名,地址)值(' ls ','上海');

SELECT * from customer

插入订单值(' 010 ',30.5,1);

插入订单值(' 011 ',60.5,2);

插入订单值(' 012 ',120.5,1);

SELECT * from orders

注意:约束:约束的含义。外键:外键。参考:参考

创建一个名为customer_id_fk的外键约束,其中外键引用customer_id,并引用customers表中的id列。

扩展:

删除和更新单词的策略:

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

2)无行动无行动策略。使用该策略时,要删除主表,必须先删除子表,要删除主表的记录,必须先删除与子表关联的记录,并且不能更新主表主键字段的值。

3) RSTRICT主表约束策略。该策略对主表的约束与无操作相同。

4)设定无空策略。使用这种策略,如果主表被删除或主键被更改,子表中的外键将被设置为NULL。注意,如果子表的外键是主键或者设置为NOT NULL,则主表的删除和主键的更改与无操作相同。

2. 多对多

创建学生——教师关系表单

一个学生可以有多个老师,一个老师可以有多个学生。

-多对多关系

-创建教师表单。

创建表教师(

id INT,

NAME VARCHAR (20)不为空,

性别字符(2)不为空,

主键(id)

);

-创建学生表单。

创建表学生(

id INT,

NAME VARCHAR (20)不为空,

年龄整数不为空

);

ALTER TABLE student添加主键(id);

-第三个关系表

创建表tch_std(

teacher_id INT

student_id INT

约束fk_teacher外键(teacher_id)引用教师(id),

约束fk_student外键(student_id)引用教师(id)

);

删除

教师

在哪里

id=3;

挑选

*

老师;

选择不同

*

tch _ std

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

3. 一对一

两种形式:

1)根据外键关联

向IdCard表中的外键添加唯一约束。

2)通过主键关联

向主键添加外键约束。

一对一。

-创建用户表

创建表用户(

id INT,

NAME VARCHAR (20)不为空,

性别字符(2)不为空,

主键(id)

);

-创建卡片表单

创建表卡(

id INT,

address VARCHAR(100)不为空,

user_id INT UNIQUE,

约束用户标识外键(用户标识)引用用户(标识)

);

更改表卡添加主键(id);

这个方法是方法1,它为外键添加了唯一约束。

以上是边肖介绍的sql中引用完整性的集成。希望对你有帮助。如果您有任何问题,请给我留言,边肖将及时回复您。非常感谢您对我们网站的支持!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

相关文章阅读

  • 使用sql语句实现查询排序,顺序和倒序的区别,sql按倒序排序
  • 使用sql语句实现查询排序,顺序和倒序的区别,sql按倒序排序,使用SQL语句实现查询排序,顺序和倒序
  • 使用php连接mysql数据库,php连接数据库的方法
  • 使用php连接mysql数据库,php连接数据库的方法,一文详解PHP连接MySQL数据库的三种方式
  • 一篇文章带你入门sql编程语句,一篇文章带你入门sql编程题
  • 一篇文章带你入门sql编程语句,一篇文章带你入门sql编程题,一篇文章带你入门SQL编程
  • window无法启动mysql 1067,windows无法启动mysql57服务,错误1053
  • window无法启动mysql 1067,windows无法启动mysql57服务,错误1053,windows无法启动MySQL服务报错1067的解决方法
  • vb中adodb连接数据库,,VB语言使用ADO连接、操作SQLServer数据库教程
  • sql重复记录查询的几种方法有哪些,查询重复记录sql语句
  • sql重复记录查询的几种方法有哪些,查询重复记录sql语句,SQL重复记录查询的几种方法
  • sql语句的各个关键字的解析过程详细总结怎么写,sql语句的各个关键字的解析过程详细总结图
  • sql语句的各个关键字的解析过程详细总结怎么写,sql语句的各个关键字的解析过程详细总结图,SQL语句的各个关键字的解析过程详细总结
  • sql语句游标,sqlserver游标的使用
  • sql语句游标,sqlserver游标的使用,详解SQL游标的用法
  • 留言与评论(共有 条评论)
       
    验证码: