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中引用完整性的集成。希望对你有帮助。如果您有任何问题,请给我留言,边肖将及时回复您。非常感谢您对我们网站的支持!

sql一对一 一对多,一对多sql语句