外键

外键查询

若如初见. 提交于 2019-12-05 21:01:47
class AuthorInfo(models.Model): name = models.CharField(max_length=100) gender = models.CharField(max_length=100) def __str__(self): return self.name class Meta: verbose_name = "作者表" verbose_name_plural = verbose_name class BookInfo(models.Model): author = models.ForeignKey(AuthorInfo,related_name="zuozhe",on_delete=models.CASCADE) title = models.CharField(max_length=100) price = models.CharField(max_length=100) def __str__(self): return self.title class Meta: verbose_name = "图书表" verbose_name_plural = verbose_name from .models import AuthorInfo,BookInfoadmin.site.register(AuthorInfo)admin

Android中OrmLite持久化

删除回忆录丶 提交于 2019-12-05 20:49:02
http://ormlite.com/javadoc/ormlite-core/doc-files/ormlite_toc.html#SEC_Contents OrmLite提供了一些轻量级持久化Java对象到SQL数据库,同时也避免了复杂性和更多的标准的ORM包的开销功能。它支持的SQL数据库使用JDBC的数量,还支持原生的Android操作系统数据库API调用sqlite。首先我们要使用它呢,就要去它的官方http://ormlite.com下载你想要的版本,这里我下载了最新的4.30。接下来我们来写一个简单的项目,同时对它的使用方法进行一个详细的介绍。   建立好项目后呢,我们加入OrmLite的jar包,然后建立两个实体类,我用的例子是客户和订单,一个客户对应多个订单这样的关系。   接着为这两个实体类添加属性和字段,需要注意的是,一定要有一个无参的构造函数,OrmLite创建对象时需要使用。   Account: int aId,String aName;Order:int oid,String oName,Account account。   接着就到了添加ORMLite注解了。注解是特殊的代码标志已在Java版本开始,要指定什么类和字段存储在数据库中,ORMLite支持其自己的注解(@ DatabaseTable @ DatabaseField

day55

僤鯓⒐⒋嵵緔 提交于 2019-12-05 20:30:52
目录 配置测试脚本 ORM普通查询 创建数据 create 对象绑定方法 修改数据 Queryset方法 删除数据 queryset方法 对象方法 查找数据 夺命13条 双下划线查询 跨表查询 正向查询 子查询 反向查询 基于双下划线的跨表查询 两表 多表 配置测试脚本 当你想单独测试django中某一个py文件,需要手动配置测试脚本 #在manage.py中拷贝前四行代码,可以直接写在应用名下的test.py中 import os if __name__ == '__main__': os.environ.setdefault('DJANGO_SETTINGS_MODULE','day55.seetings') import django django.setup() from app01 import models ORM普通查询 创建数据 create #字段值可以是对象 obj = models.Table.objects.create(key=value,) 对象绑定方法 obj = models.Table(key=value,) obj.save() 修改数据 Queryset方法 #py会自动查找到当前表的主键字段 models.Table.objects.filter(pk=1).update(key=value,)

模型层

浪尽此生 提交于 2019-12-05 20:21:01
目录 模型层: ORM查询 表之间的关系: 定义新字段: 配置测试脚本 日志记录: orm对表内数据的操作: get 与 filter 的区别: 单表查询13条方法 双下划线查询方法: 模糊查询 一对多数据的增删改查: 多对多数据的增删改查: 跨表设计 基于双下滑先的跨表查询 小技巧 模型层: ORM查询 ORM中常用字段和参数: 1.int自增列,必须填入参数 primary_key=True。当model中如果没有自增列,则自动会创建一个列名为id的列 (AutoField) 2.一个整数类型,范围在 -2147483648 to 2147483647(用字符串存储)(IntegerField) 3.字符类型,必须提供max_length参数, max_length表示字符最大长度(CharField) 4.日期字段,日期格式 YYYY-MM-DD (DateField)\ 5.日期时间字段,格式 YYYY-MM-DD HH:MM[:ss[.uuuuuu]][TZ] (DateTimeField) 6.表示某个字段可以为空。 (null) 7.设置为unique=True 则该字段在此表中必须是唯一的 。(unique) 8.db_index=True 则代表着为此字段设置索引。 9.为该字段设置默认值。 (default) 10.配置auto_now_add=True

Django 基础一

你说的曾经没有我的故事 提交于 2019-12-05 18:13:58
目录 ORM关系建立 django请求生命周期流程图 urls.py 路由层 路由匹配 无名分组: 有名分组: 反向解析 第一种情况:路由中没有正则表达式 直接是写死的 第三种情况: 路由分发(******) 名称空间 伪静态 虚拟环境 视图层 ORM关系建立 先不考虑外键,先创基表 一对一 一般用在需要分级显示的情况(本来一张表可以的,被拆成了两张表,就成了一对一) 一对多 外键字段设在“多”的那张表里 多对多 需要建立一张单独的表来设置外键关系 图书管理系统之 作者表 from django.db import models # 先创建基表,暂不考虑外键 class Book(models.Model): title = models.CharField(max_length=32) price = models.DecimalField(max_digits=8, decimal_places=2) publish = models.Foreignkey(to='Publish') # to用来指代跟哪张表有关系 默认关联的就是表的主键字段 出版社表: class publish(models.Model): title = models.Charfield(max_length=32) age = models.EmailField() 作者表: class Author

mysql基础篇--表的管理

时光毁灭记忆、已成空白 提交于 2019-12-05 17:26:06
表的创建 常见的数据类型 数值型: 整型 tinyint、smallint、mediumint、int/integer、bigint 特点: 1.如果不设置无符号还是有符号,默认是有符号,如果想设置无符号,需要添加unsigned关键字 2.如果插入的数值超出了正型的范围,会报out of range异常,并且插入临界值 3.如果不设置长度,会有默认的长度 长度代表了显示的最大宽度,如果不够会用0在左边填充,但必须搭配zerofill使用! 小数型 浮点型:float(M,D) double(M,D) 定点型:decimal(M,D) 特点: 1.M:位数(整数部位+小数部位) D:(小数部位) 如果超过范围,则插入临界值 2.M和D都可以省略 如果是decimal,则M默认是10,D默认是0 如果是float和double,则会根据插入的数值的精度来决定精度 3.定点型的精度较高,如果要求插入的数值精度要求高如货币运算等则考虑使用 字符型 char varchar text blob(较大的二进制) enum(用于保存枚举) set(用于保存集合) 特点 写法 M的意思 特点 空间的耗费 效率 char char(M) 最大的字符数,可以省略,默认为1 固定长度的字符 比较耗费 高 varchar varchar(M) 最大的字符数,不可以省略 可变长度的字符 比较节省 低

SQLserver数据库的基础知识及使用2

家住魔仙堡 提交于 2019-12-05 17:00:56
SQLServer数据库基础开发知识 目录 约束作用 约束类型 外键约束的使用和需要删除具有外键约束的表中的数据方法 创建数据库、数据表和表的约束的示例代码 插入测试数据 因为添加约束出现的问题解决 identity的一些使用 数据库查询及对NULL的处理 简单的几个查询 1、约束作用 数据库的约束:避免垃圾数据的产生,禁止非法的数据加入数据库中,保证数据库的结构良好 数据库中的数据在C#中就时一个对象,一条记录存储的是一个对象的属性(例如:姓名,学号,班级等属性),存储到数据库中就时一列列的字段 2、约束的类型 实体完整性约束:保证存储的记录在数据库中唯一。常见约束类型:a、主键约束约束(primary key);b、唯一键约束(unique)等 域完整性约束:对字段进行约束。常见约束类型有:a、数据类型约束(int或者char(2))等约束);b、非空约束(not null);c、默认约束(default);d、检查约束(check)等 引用完整性约束:保证数据库中的多张数据表数据的一致性和完整性。常见约束类型:外键约束(foreign key) 3. 外键约束的使用和需要删除具有外键约束的表中的数据方法 外键约束的使用:当一张表依赖于另外一张表的某个或某些字段时使用,创建外键约束时,先建被引用的表(主键表),再建有外键约束的表(外键表) 删除表中的数据时,如果当前表(主键表

创建数据库与表

人走茶凉 提交于 2019-12-05 16:45:28
设置索引 存为sql,仅结构 先看有没有player删除,反引号是为了与保留字区分 player_name 字符utf8 ,排序规则utf_general_ci,大小写不敏感,敏感的为utf8_bin,采用unique,也可以设置为normal,索引方式可以设置为btree或者hash 引擎为InnoDB 字符集 排序 ROW_FORMAT行格式为Dynamic 常见约束 主键 外键 唯一性 NOT NULL DEFAULT CHECK 设计原则 更少的表,更少的字段,更少的联合主键,多增加主键与外键增强表之间的复用率,可重用 如果正确性>性能,建议使用外键 如果不用外键,有一定的风险,业务层实现,必须同时修改,业务层与数据层有一定的耦合,工作中业务可能经常发生变化 结论 早期用外键,后期用业务,分析28理论, 会有20%的外键造成80%的资源效率 2的部分用业务实现,减少死锁出现概率,提高并发处理能力 来源: https://www.cnblogs.com/autointerface/p/11934247.html

django 路由层

放肆的年华 提交于 2019-12-05 16:26:38
目录 一、orm模型表 1. 如何建立模型表 1. 确定表与表对应关系 2. 建立外键 2. Django项目中创建外键 1. 实例演示: 二、Django路由层 1. Django项目的urls.py文件 2. Django项目的路由匹配规律: 3. url方法参数中的无名分组和有名分组 (1)无名分组 (2)有名分组 (3)无名分组和有名分组的作用和注意 4. 反向解析 (1)什么是反向解析 (2)第一种反向解析 (3)第二种反向解析 5. 路由分发 (*********) (1)路由分发简介和使用 (2)名称空间 6.伪静态 7. 虚拟环境 8. Django版本的区别 (1)django.1.xxx和django.2.xxx 9. form表单上传文件 (1)前端 (2)后端 一、orm模型表 1. 如何建立模型表 1. 确定表与表对应关系 通过换位思考,先站在一张表上分析,然后再扎在领一张表分析 确定多对多、一对多,一对一 2. 建立外键 一对多:外键字段建在多的一方 多对多:外键关系需要建立第三张表来专门处理 一对一:外键字段建立在任意一方都可以,但是建议建在查询频率较高的一方 2. Django项目中创建外键 Django中,创建的外键字段时,定义的外键字段变量在真正的数据表中,该字段名会被Django默认追加上 _主键字段名 在多对多的关系表中

django 路由层(反向解析)03

不想你离开。 提交于 2019-12-05 16:02:58
目录 ORM表关系建立 Django请求生命周期流程图 urls.py 路由层 无名分组 有名分组 反向解析 无名分组的反向解析 有名分组的反向解析 以编辑功能为例 路由分发 名称空间 伪静态 虚拟环境 django 版本区别 form表单上传文件,后端如何获取文件 ORM表关系建立 orm表关系如何建立 多对多 一对多 一对一 换位思考 先站在一张表上面分析 然后再站在另一张分析 一对多 外键字段建在 多的那一方 多对多 多对多的外键关系需要建立第三章来专门处理 图书表 出版社表 作者表 from django.db import models # Create your models here. # 先不要考虑外键关系 先创基表 class Book(models.Model): title = models.CharField(max_length=32) # 小数总共八位 小数占两位 price = models.DecimalField(max_digits=8,decimal_places=2) # 书跟出版社是一对多 并且书是多的一方 所以外键字段健在书表中 publish_id = models.ForeignKey(to='Publish') # to用来指代跟哪张表有关系 默认关联的就是表的主键字段 """ 一对多外键字段 创建的时候 同步到数据中