SQLarchemy 实现外键及其四种约束讲解

一、表关系:

表之间的关系存在三种:一对一、一对多、多对多,而SQLARCHMY中的orm也可以模拟这三种关系。

因为一对一其实在SQLarchemy中底层是通过一对多的方式模拟的,所以先来看下一对多的关系。

外键:

使用SQLarchemy创建外键非常简单,在从表中加一个字段,指定这个字段外键的哪个字就可以了.从表中外键的字段,从表中的外键的字段,必须和主键的主表字段类型保持一致。

二、外键约束有以下几项:

1.restrict:若子表中有父表对应的关联数据,删除父表对应数据,会阻止删除,默认项

2.no  action: 在mysql中,同restrict.

3.cascade:级联操作

4.set null:父表对应数据删除,子表对应数据项会设置为null

示例:1对多的关系

原文地址:https://www.cnblogs.com/yingxiongguixing/p/12048360.html

时间: 2024-07-31 06:49:20

SQLarchemy 实现外键及其四种约束讲解的相关文章

外键及其四种约束讲解

#encoding: utf-8 from sqlalchemy import create_engine,Column,Integer,String,Float,func,and_,or_,Text, ForeignKey from sqlalchemy.ext.declarative import declarative_base from sqlalchemy.orm import sessionmaker from random import randint HOSTNAME = '12

SQL Server外键关系是强制约束,外键值也可以是空(NULL)

在SQL Server中,实际上外键值可不可以为空(NULL),和外键关系是不是强制约束无关. 我们先在SQL Server数据库中建立两张表People和Car,一个People可以有多个Car,所以这两张表是一对多关系. People建表语句: CREATE TABLE [dbo].[People]( [ID] [int] NOT NULL, [Name] [nvarchar](50) NULL, [Age] [int] NULL, [Sex] [nvarchar](50) NULL, CO

mysql数据库--外键的三种关系

主要内容: 如何找出两张表之间的关系 表的三种关系 一.介绍 因为有foreign key的约束,使得两张表形成了三种了关系: 多对一 多对多 一对一 二.重点理解如果找出两张表之间的关系 分析步骤: #1.先站在左表的角度去找 是否左表的多条记录可以对应右表的一条记录,如果是,则证明左表的一个字段foreign key 右表一个字段(通常是id) #2.再站在右表的角度去找 是否右表的多条记录可以对应左表的一条记录,如果是,则证明右表的一个字段foreign key 左表一个字段(通常是id)

外键的三种形式

因为有foreign key的约束,使得两张表形成了三种了关系: 多对一 多对多 一对一 二.重点理解如果找出两张表之间的关系 分析步骤: #1.先站在左表的角度去找 是否左表的多条记录可以对应右表的一条记录,如果是,则证明左表的一个字段foreign key 右表一个字段(通常是id) #2.再站在右表的角度去找 是否右表的多条记录可以对应左表的一条记录,如果是,则证明右表的一个字段foreign key 左表一个字段(通常是id) #3.总结: #多对一: 如果只有步骤1成立,则是左表多对一

oracle建表的时候同时创建主键,外键,注释,约束,索引

--主键create table emp (id number constraint id_pr primary key ,name1 varchar(8));create table emp9 (id number ,name1 varchar(8) ,constraint aba_pr primary key(id,name1));--外键create table emp1(id number references emp(id),name varchar(8)); --复合外键create

怎么给一张表添加外键(四种方法)

添加外键约束名字一定不能重复如何添加外键方法一:直接在属性值后面添加 create table score( cscore int(11), st_id int(50) references student(id), cs_id int(30) references classes(id), primary key(st_id,cs_id) ); 方法二: create table score( cscore int(11), st_id int(50), cs_id int(30), prim

添加外键的两种方式

方式一: 创建表的时候添加外键 CREATE TABLE 表名( 属性名 类型...,   CONSTRAINT 外键名 FOREIGN KEY(列名) REFERENCES 父表名(列名) ); 方式二: ALTER添加 ALTER TABLE 表名 ADD CONSTRAINT 外键名 FOREIGN KEY(列名) REFERENCES 父表名(列名); 原文地址:https://www.cnblogs.com/laoniaofly/p/8593088.html

三十四:数据库之SQLAlchemy外建及四种约束

使用SQLAlchemy创建外建,只需要在子表的字段中指定此字段的外建是哪个表的哪个字段即可,字段类型需和父表下该字段的类型保持一致 使用ondelete指定约束, 外建约束有以下几种:1.RESTRICT:删除父表数据时,如果子表有数据在使用该字段的数据时,会阻止删除(默认为此约束)2.NO ACTION:在MySQL中,同RESTRICT3.CASCADE:级联删除,删除父表的某一条数据时,子表中使用该外建的数据也会被删除4.SET NULL:父表数据被删除,删除父表的某一条数据时,子表中使

MySQL外键的三种关系

一对多 create table press( id int primary key auto_increment, name varchar(20) ); create table book( id int primary key auto_increment, name varchar(20), press_id int not null, constraint fk_book_press foreign key(press_id) references press(id) on delet