数据库视图

一 视图

情到浓时终转凉″ 提交于 2020-01-20 22:17:00
一 视图 视图是一个虚拟表(非真实存在),其本质是【根据SQL语句获取动态的数据集,并为其命名】,用户使用时只需使用【名称】即可获取结果集,可以将该结果集当做表来使用。 使用视图我们可以把查询过程中的临时表摘出来,用视图去实现,这样以后再想操作该临时表的数据时就无需重写复杂的sql了,直接去视图中查找即可,但视图有明显地效率问题,并且视图是存放在数据库中的,如果我们程序中使用的sql过分依赖数据库中的视图,即强耦合,那就意味着扩展sql极为不便,因此并不推荐使用 #两张有关系的表 mysql> select * from course; +-----+--------+------------+ | cid | cname | teacher_id | +-----+--------+------------+ | 1 | 生物 | 1 | | 2 | 物理 | 2 | | 3 | 体育 | 3 | | 4 | 美术 | 2 | +-----+--------+------------+ 4 rows in set (0.00 sec) mysql> select * from teacher; +-----+-----------------+ | tid | tname | +-----+-----------------+ | 1 | 张磊老师 | | 2 | 李平老师 |

Django-REST-framework使用技巧(一)

不羁岁月 提交于 2020-01-19 22:48:21
1.Quickstart 1.1 项目搭建 1.2 序列化 1.3 视图 1.4 URLs 1.5 设置 2.Serialization 2.1 创建一个模型 2.2 创建一个序列化类 2.3 使用Serializers 2.4 使用ModelSerializers 2.5 使用Serializer编写常规的Django视图 3.测试我们在Web API上的第一次访问 1、Quickstart 环境 Python 3.7.2 MacOS High Sierra django-2.2.1 djangorestframework-3.9.4 1.1 项目 我们将创建一个简单的API来允许管理员用户查看和编辑和系统中的用户和组。 项目创建 创建目录 mkdir tutorial cd tutorial 创建virtualenv,环境隔离我们本地的依赖包关系 virtualenv env # 会得到下面结果回应 Using base prefix '/usr/local/Cellar/python/3.7.2_2/Frameworks/Python.framework/Versions/3.7' New python executable in /Users/administrator/Desktop/Django-REST-Framework/tutorial/env/bin

springmvc

 ̄綄美尐妖づ 提交于 2020-01-19 18:50:02
SpringMVC 第一章 1.1 三层架构 表现层:web层,用来和客户端进行数据交互的,一般采用MVC的设计模式 业务层:处理公司具体的业务逻辑的 持久层:操作数据库的 1.2 MVC模型 Model:用来进行数据封装 View:用来展示数据给用户 Controller:用来接收用户请求,整个流程的控制器,进行数据校验等 1.3 SpringMVC的优势 清晰的角色划分 前端控制器(DispatcherServlet) 控制流程的中心,有它调用其他组件处理用户的请求,解耦 请求到处理器映射(HandlerMapping) 负责根据用户请求找到Handler即处理器,SpringMVC 提供了不同的映射器实现不同的 映射方式,例如:配置文件方式,实现接口方式,注解方式等 处理器(Handler) 由DispatcherServlet把用户请求转发到Handler,由Handler对具体的用户请求进行处理 处理器适配器(HandlerAdapter) 充当接口作用 视图解析器(ViewResolver) 负责将处理结果生成 View 视图,View Resolver 首先根据逻辑视图名解析成物理视图名 即具体的页面地址,再生成 View 视图对象,最后对 View 进行渲染将处理结果通过页面展示给用户 视图(view) SpringMVC 框架提供了很多的 View 视图类型的支持

MVC 项目中为什么会有两个web.config

百般思念 提交于 2020-01-19 17:05:22
MVC 项目中为什么会有两个web.config 我们对MVC 并不陌生, 在创建MVC项目时,总会发现,在工程目录 中有两个 web.config 文件,一个是在工程的根目录下,一是在 views 下,两个web.config 中的内容也不尽相同,那么为什么会有两个 web.config 文件,这就是这篇随笔将要说明的。 根目录下的 web.config 文件    根目录下的web.config 文件是对根目录下的所有文件起作用 ,在打开根目录下的 web.config 文件时,你会发现web.config 为所有的路径或动作注册了  HttpNotFoundHandler, 1 <add path= "*" verb= "*" type= "System.Web.HttpNotFoundHandler" />    或者在 IIS7中,它可能是这么定义的 1 2 <add name= "BlockViewHandler" path= "*.aspx" verb= "*" preCondition= "integratedMode" type= "System.Web.HttpNotFoundHandler" />    另外,你还可以添加自定义出错页面,或一些配置信息,如数据库的连接,键-值对等,工程中的一些配置就是从根目录下的 web.config 中读取的

mysql视图

一个人想着一个人 提交于 2020-01-19 15:11:07
mysql视图的作用(详细) 测试表:user有id,name,age,sex字段 测试表:goods有id,name,price字段 测试表:ug有id,userid,goodsid字段 视图的作用实在是太强大了,以下是我体验过的好处: 作用一: 提高了重用性,就像一个函数。如果要频繁获取user的name和goods的name。就应该使用以下sql语言。示例: select a.name as username, b.name as goodsname from user as a, goods as b, ug as c where a.id=c.userid and c.goodsid=b.id; 但有了视图就不一样了,创建视图other。示例 create view other as select a.name as username, b.name as goodsname from user as a, goods as b, ug as c where a.id=c.userid and c.goodsid=b.id; 创建好视图后,就可以这样获取user的name和goods的name。示例: select * from other; 以上sql语句,就能获取user的name和goods的name了。 作用二: 对数据库重构,却不影响程序的运行。假如因为某种需求

Odoo treeView列表视图详解

吃可爱长大的小学妹 提交于 2020-01-18 15:58:02
转载请注明原文地址: https://www.cnblogs.com/ygj0930/p/10826414.html TreeView:列表视图 1:<tree>标签的属性 【tree标签内的属性,就是界面上的表现、行为,可以通过视图继承,往tree标签增加属性来自定义tree视图的按钮。】 列表视图的根元素是 <tree> ,它可以有以下几种属性: 1)editable 默认情况下选择单行记录时会打开对应记录的表单,该属性让数据可以在列表内进行编辑,有效的值是top和bottom,可在列表的顶部或底部添加新记录。 2)default_order 重定义视图的排序规则, 以逗号分隔多个字段 ,可使用desc来进行倒序 <tree default_order="sequence,name desc"> 3)decoration-样式名 样式可为 bf加粗, it斜体 或 其他bootstrap样式如:danger红色, info, muted, primary, success绿色,warning橙色等等 , 值为python表达式 ,对每条记录执行相应表达式判断,当结果为true的时候将对应的样式应用。 也可以直接在标签的css样式值中使用表达式来动态设置,如设置颜色: colors="gray:state=='cancel';red:state=='audit';green

Oracle学习笔记—connect、resource和dba三种权限(转载)

Deadly 提交于 2020-01-18 09:10:08
一、Oracle数据字典   数据字典是Oracle存放有关数据库信息的地方,其用途是用来描述数据的。比如一个表的创建者信息,创建时间信息,所属表空间信息,用户访问权限信息等。当用户在对数据库中的数据进行操作时遇到困难就可以访问数据字典来查看详细的信息。   Oracle中的数据字典有静态和动态之分。静态数据字典主要是在用户访问数据字典时不会发生改变的,但动态数据字典是依赖数据库运行的性能的,反映数据库运行的一些内在信息,所以在访问这类数据字典时往往不是一成不变的。以下分别就这两类数据字典来论述。   1.静态数据字典   这类数据字典主要是由表和视图组成,应该注意的是,数据字典中的表是不能直接被访问的,但是可以访问数据字典中的视图。静态数据字典中的视图分为三类,它们分别由三个前缀够成:user_*、 all_*、 dba_*。   user_*:该视图存储了关于当前用户所拥有的对象的信息。(即所有在该用户模式下的对象)   all_*:该试图存储了当前用户能够访问的对象的信息。(与user_*相比,all_* 并不需要拥有该对象,只需要具有访问该对象的权限即可)   dba_*:该视图存储了数据库中所有对象的信息。(前提是当前用户具有访问这些数据库的权限,一般来说必须具有管理员权限)   从上面的描述可以看出,三者之间存储的数据肯定会有重叠,其实它们除了访问范围的不同以外

Oracle对象(视图、序列、索引)

时光毁灭记忆、已成空白 提交于 2020-01-17 13:39:43
数据库对象 :表、视图、序列、索引、同义词 创建视图 :create view 名 as 子查询 描述结构 :describe 对象名 修改视图 :create or replace view 名 as 子查询 视图中使用DML的规定 : 当视图定义中包含以下元素之一时不能使用 delete : 组函数 GROUP BY 子句 DISTINCT 关键字 ROWNUM 伪列 当视图定义中包含以下元素之一时不能使用 update : 组函数 GROUP BY子句 DISTINCT 关键字 ROWNUM 伪列 列的定义为表达式 当视图定义中包含以下元素之一时不能使用 insert : 组函数 GROUP BY 子句 DISTINCT 关键字 ROWNUM 伪列 列的定义为表达式 表中非空的列在视图定义中未包括 with read only :只读 drop 对象类型 对象名: 删除某一个对象 定义序列 :create sequence 名 【increment by n】【start with n】【maxvalue n | nomaxvalue】【minvalue n | nominvalue】【cycle | nocycle】【cache | nocache】 NEXTVAL :返回序列中下一个有效的值,任何用户都可以引用 CURRVAL :中存放序列的当前值 修改对象 :

软件架构要设计到什么程度?

半腔热情 提交于 2020-01-17 00:59:10
本文节录温昱先生《软件架构设计》第8章 软件架构要做到什么程度,并将自己的理解在节录后做出描述。希望节录部分能给大家带来收获和感悟。并对我的理解部分提出建议和想法。 OK,让我们开始吧.解决软件架构到底要设计到什么程度? * 首先,对软件架构的设计程度问题展开探讨,得出基本结论。从对“分而治之”的讨论入手,说明软件架构是团队开发的基础,从而,软件架构必须设计到“能为开发人员提供足够的指导和限制”的程度; * 之后,从问题入手,认识高来高去式架构设计的“症状”。主要分析实际工作中常见的架构设计不足的几种表现,找到要解决的问题; * 然后,说明如何解决架构设计高来高去、指导不足的问题; * 最后,结合案例,说明如何一步步地将架构设计落实到实处。 ------------------------------------------------------------------------------------- 8.1 软件架构要设计到什么程度 软件架构必须设计到“能为开发人员提供足够的指导和限制”的程度。 8.1.1 分而治之的两种方式 为什么要分而治之?简单说,就是问题太复杂了,超出了人们能够“一蹴而就”的范围。 面对一个复杂的问题,我们如何进行分而治之呢?策略有二: 一、先不把问题研究得那么深,那么细,浅尝辄止,见好就收。这种分而治之的方式称为“按问题深度分而治之”。 二

mysql复习(2)

和自甴很熟 提交于 2020-01-16 19:38:24
一、数据定义:   SQL数据的定义包括模式的定义、表定义、视图定义和索引的定义。   1.基本的模式定义情况如下表。      2.一个关系数据库管理系统的实例中可以创建多个数据库,一个数据库中可以建立多个模式,一个模式下面通常包括多个表、视图和数据库对象。 二、模式的定义与删除   1.定义模式:CREATE SCHEMA <模式名> AUTHORIZATION<用户名>;     (1)要创建模式,要调用该命令的数据库管理员权限,获得数据库管理员授予的CREATE SCHEMA的权限     (2)为用户WANG定义一个学生-课程模式S-T       CREATE SCHEMA AUTHORIZATION WANG     2.删除模式:     (1)DROP SCHEMA <模式名><CASCADE|DESTRICT>       DROP SCHEMA ZHANG SCACADE       在语句中删除了模式的通式,该模式中定义的表也会被删除 三、基本表的定义与删除   1.定义基本表     CREATE TABLE<表名>(<列名><数据类型>[列级完整性约束条件]     [,<列名<数据类型>[列级完整性约束条件]]     。。。。     [,<表级完整性约束条件>] );     (1)创建一个“学生”表Student,列级完整性约束条件,Sno是主码