数据库视图

Django创建表关系,Django生命周期图之路由层和视图层简介

风格不统一 提交于 2020-01-07 02:59:58
一.Django框架中rom的表关系创建 1).表与表的关系 一对一 一对多 多对多 具体sql语句及关系请查看 数据库基础链接 2)以图书管理系统为例,创建几张关系表 注意:**在models.py中书写表关系的时候,要先写好基表,再写外键关系 # 先建立好三张基表from django.db import models​# Create your models here.#书表class Book(models.Model): # id 是自动创建的,除非id名自定义 title = models.CharField(max_length=255) # price为小数字段,表示总共8位数,其中小数占2位 price = models.DecimalField(max_digits=8, decimal_places=2)​​#出版社表class Publsh(models.Model): name = models.CharField(max_length=64) addr = models.CharField(max_length=64)​​# 作者表class Author(models.Model): name = models.CharField(max_length=64) # 比Int类型长一些 phone = models.BigIntegerField()​

MySQL基础篇(04):存储过程和视图,用法和特性详解

China☆狼群 提交于 2020-01-07 01:35:34
本文源码: GitHub·点这里 || GitEE·点这里 一、存储过程 1、概念简介 存储程序是被存储在服务器中的组合SQL语句,经编译创建并保存在数据库中,用户可通过存储过程的名字调用执行。存储过程核心思想就是数据库SQL语言层面的封装与重用性。使用存储过程可以较少应用系统的业务复杂性,但是会增加数据库服务器系统的负荷,所以在使用时需要综合业务考虑。 2、基本语法格式 CREATE PROCEDURE sp_name ([proc_parameter[,...]]) [characteristic ...] routine_body 案例一:计算消费折扣 -- 创建存储过程 DROP PROCEDURE IF EXISTS p01_discount ; CREATE PROCEDURE p01_discount(IN consume NUMERIC(5,2),OUT payfee NUMERIC(5,2)) BEGIN -- 判断收费方式 IF(consume>100.00 AND consume<=300.00) THEN SET payfee=consume*0.8; ELSEIF (consume>300.00) THEN SET payfee=consume*0.6; ELSE SET payfee = consume; END IF; SELECT payfee AS

Django 必会面试题总结

风格不统一 提交于 2020-01-06 18:22:22
文章转自 https://blog.csdn.net/weixin_43063753/article/details/85559540 目录 欢迎关注 1 列举Http请求中常见的请求方式 2 谈谈你对HTTP协议的认识。1.1 长连接 3 简述MVC模式和MVT模式 4 简述Django请求生命周期 5 简述什么是FBV和CBV 6 谈一谈你对ORM的理解 7 rest_framework 认证组件的流程 8 什么是中间件并简述其作用 9 django 中间件生命周期 10 django中怎么写原生SQL 11 如何使用django orm批量创建数据 12 命令migrate 和makemigrations的差别 14 常用视图响应的方式是什么? 15 HTTP响应常见状态码分类 16 路由匹配原则是什么? 17 缓存系统类型有哪些 18 解决跨域的常用方式是什么? 19 信号的作用是什么? 20 Django的Model的继承有几种形式,分别是什么 21 Django中查询queryset时什么情况下用Q 22 Django中想验证表单提交是否格式正确需要用到Form中的哪个函数 23 orm如何取消级联 24 Django中如何读取和保存session,整个session的运行机制是什么 25 简述Django对http请求的执行流程 25

MySQL灵魂五十问

给你一囗甜甜゛ 提交于 2020-01-06 17:14:36
1、MySQL 中有哪几种锁? 表级锁:开销小,加锁快;不会出现死锁;锁定粒度大,发生锁冲突的概率最高,并发度最低。 行级锁:开销大,加锁慢;会出现死锁;锁定粒度最小,发生锁冲突的概率最低,并发度也最高。 页面锁:开销和加锁时间界于表锁和行锁之间;会出现死锁;锁定粒度界于表锁和行锁之间,并发度一般。 2、MySQL 中有哪些不同的表格? 共有 5 种类型的表格: MyISAM Heap Merge INNODB ISAM 3、简述在 MySQL 数据库中 MyISAM 和 InnoDB 的区别 MyISAM: 不支持事务,但是每次查询都是原子的; 支持表级锁,即每次操作是对整个表加锁; 存储表的总行数; 一个 MYISAM 表有三个文件:索引文件、表结构文件、数据文件; 采用菲聚集索引,索引文件的数据域存储指向数据文件的指针。辅索引与主索引 基本一致,但是辅索引不用保证唯一性。 InnoDb: 支持 ACID 的事务,支持事务的四种隔离级别; 支持行级锁及外键约束:因此可以支持写并发; 不存储总行数: 一个 InnoDb 引擎存储在一个文件空间(共享表空间,表大小不受操作系统控制, 一个表可能分布在多个文件里),也有可能为多个(设置为独立表空,表大小受操作系统文件大小限制,一般为 2G),受操作系统文件大小的限制; 主键索引采用聚集索引(索引的数据域存储数据文件本身)

MySQL基础篇(04):存储过程和视图,用法和特性详解

こ雲淡風輕ζ 提交于 2020-01-06 14:54:40
本文源码: GitHub·点这里 || GitEE·点这里 一、存储过程 1、概念简介 存储程序是被存储在服务器中的组合SQL语句,经编译创建并保存在数据库中,用户可通过存储过程的名字调用执行。存储过程核心思想就是数据库SQL语言层面的封装与重用性。使用存储过程可以较少应用系统的业务复杂性,但是会增加数据库服务器系统的负荷,所以在使用时需要综合业务考虑。 2、基本语法格式 CREATE PROCEDURE sp_name ([proc_parameter[,...]]) [characteristic ...] routine_body 案例一:计算消费折扣 -- 创建存储过程 DROP PROCEDURE IF EXISTS p01_discount ; CREATE PROCEDURE p01_discount(IN consume NUMERIC(5,2),OUT payfee NUMERIC(5,2)) BEGIN -- 判断收费方式 IF(consume>100.00 AND consume<=300.00) THEN SET payfee=consume*0.8; ELSEIF (consume>300.00) THEN SET payfee=consume*0.6; ELSE SET payfee = consume; END IF; SELECT payfee AS

MySQL基础篇(04):存储过程和视图,用法和特性详解

天大地大妈咪最大 提交于 2020-01-06 08:01:18
本文源码: GitHub·点这里 || GitEE·点这里 一、存储过程 1、概念简介 存储程序是被存储在服务器中的组合SQL语句,经编译创建并保存在数据库中,用户可通过存储过程的名字调用执行。存储过程核心思想就是数据库SQL语言层面的封装与重用性。使用存储过程可以较少应用系统的业务复杂性,但是会增加数据库服务器系统的负荷,所以在使用时需要综合业务考虑。 2、基本语法格式 CREATE PROCEDURE sp_name ([proc_parameter[,...]]) [characteristic ...] routine_body 案例一:计算消费折扣 -- 创建存储过程 DROP PROCEDURE IF EXISTS p01_discount ; CREATE PROCEDURE p01_discount(IN consume NUMERIC(5,2),OUT payfee NUMERIC(5,2)) BEGIN -- 判断收费方式 IF(consume>100.00 AND consume<=300.00) THEN SET payfee=consume*0.8; ELSEIF (consume>300.00) THEN SET payfee=consume*0.6; ELSE SET payfee = consume; END IF; SELECT payfee AS

Oracle中视图的创建和处理方法

泪湿孤枕 提交于 2020-01-04 13:35:16
本文转载自: https://www.cnblogs.com/mr-guo/p/3350109.html 作者:MR-Guo 转载请注明该声明。 http://www.blogjava.net/caizh2009/articles/287787.html Oracle中视图的创建和处理方法 图是基于一个表或多个表或视图的逻辑表,本身不包含数据,通过它可以对表里面的数据进行查询和修改。视图基于的表称为基表,Oracle的数据库对象分为五种:表,视图,序列,索引和同义词。 视图是存储在数据字典里的一条select语句。通过创建视图可以提取数据的逻辑上的集合或组合。 视图的优点: 1.对数据库的访问,因为视图可以有选择性的选取数据库里的一部分。 2.用户通过简单的查询可以从复杂查询中得到结果。 3.维护数据的独立性,试图可从多个表检索数据。 4.对于相同的数据可产生不同的视图。 视图分为简单视图和复杂视图: 1、简单视图只从单表里获取数据,复杂视图从多表; 2、简单视图不包含函数和数据组,复杂视图包含; 3、简单视图可以实现DML操作,复杂视图不可以。 视图的创建: CREATE [OR REPLACE] [FORCE|NOFORCE] VIEW view_name [(alias[, alias]...)] AS subquery [WITH CHECK OPTION

用户注册(一)之注册页面以及图形验证码

我怕爱的太早我们不能终老 提交于 2020-01-04 01:32:43
一、用户模型设计(用户表的设计)   1. 用户表字段分析     1)用户名     2)密码     3)手机号     4)邮箱     5)邮箱是否有效   2. 用户模型设计     django设计模型开发效率极高,内置了许多功能,包括权限验证等等,也有自定义的User模型。     因此我们需要继承已经写好的抽象模型类AbstractBaseUser,它有已经封装好的各种方法,约定俗成的凡是抽象模型类起名都以Abstract来开头,但是判断该模型类是否是抽象模型类的依据是,类中需要定义 class Meta: abstract = True     这才证明它是一个抽象模型类。               在我们继承了django自带的用户模型类之后,我们使用时进行扩充字段即可。   3. 在User这个app中的models.py页面来填写我们的需要的User模型类     1) 继承抽象模型类 ,添加用户新字段,重写管理器,方便我们创建用户,并制定我们的User模型使用我们自定义的管理器 # user/models.py 文件from django.db import models from django.contrib.auth.models import AbstractUser, UserManager as _UserManager # Create

Django学习第二天

佐手、 提交于 2020-01-03 11:09:46
一、Django的特点 创建Django项目: django-admin startproject 项目名 (只是创建项目,后面的命令都是用以下命令) 创建Django应用: python manage.py startapp 应用名 启动一个Django项目: python manage.py runserver IP PORT 后面不加IP端口,默认是本机IP和8000端口 django在web框架里面是功能最全的一个框架,封装的功能多。目前市面上用得最多的就是django和flask django是大而全。功能多,它没一个非常明确的需求,我们则要根据自己的需求来自己设定,所以自定义的内容很多。所有的东西都为你准备好了,直接用它的就好了。 flask是小而精。属于组装式的一个web框架,它没自己的ORM,但是它所有的功能都可以通过其它的插件组装起来,它就像积木一样,你想用哪部分就拼哪部分。所有的接口都组装好了,只要你自己拼凑就可以了 两个框架都各有优点,精通一个框架则自然会理通其它的web框架,各个框架都是相通的,只是语法不一样。django它给我们提供的功能,我们都不需要自己去自定义了,只要去django里调用就可以了。我们只需要学会怎么用django,不必去纠结它的底层实现的原理。不懂的可以去查阅django官方的中文文档,那个是django最全的文档。 二

SQL Server查询优化与事务处理

早过忘川 提交于 2020-01-03 08:05:28
博文目录 一、索引 二、视图 三、存储过程 四、系统存储过程 五、触发器 六、事务 七、锁 一、索引 索引提供指针以指向存储在表中指定列的数据值,然后根据指定的次序排列这些指针,再跟随指针到达包含该值的列。 1、什么是索引 数据库中的索引与书籍中的目录相似。在一本书中,无需阅读整本书,利用目录就可以快速的查找到所需的信息。在数据库中,索引使数据库程序无须对整个表进行扫描,就可以在其中找到所需的数据。书中的目录就是一个词语列表,其中注明了包含各个词的页码。而数据库中的索引是某个表中一列或若干列值的集合,以及物理表示这些值得数据业的逻辑指针清单。 索引是SQL Server编排数据的内部方法,它为SQL Server提供一种方法来编排查询数据的路由。 索引页是数据库中存储索引的数据页。索引页存放检索数据行的关键字页以及该数据行的地址指针。通过使用索引,可以大大提高数据库的检索速度,改善数据库性能。 2、索引分类 1)唯一索引 唯一索引不允许两行具有相同的索引值。 如果现有数据中存在重复的键值,则一般情况下大多数数据库不允许创建唯一索引。当新数据使表中的键值重复时,数据库也拒绝接收此数据。创建了唯一约束,将自动创建唯一索引。尽管唯一索引有助于找到信息,但是为了获得最佳性能,建议使用主键约束。 2)主键索引 在数据库关系图中为表定义一个主键将自动创建主键索引,主键索引是唯一索引的特殊类型。