数据库视图

mySQL基础

爷,独闯天下 提交于 2020-03-17 07:45:03
mySQL 一、为什么要学习数据库 二、数据库的相关概念 DBMS、DB、SQL 三、数据库存储数据的特点 四、初始MySQL MySQL产品的介绍 MySQL产品的安装 ★ MySQL服务的启动和停止 ★ MySQL服务的登录和退出 ★ MySQL的常见命令和语法规范 五、DQL语言的学习 ★ 基础查询 ★ 条件查询 ★ 排序查询 ★ 常见函数 ★ 分组函数 ★ 分组查询 ★ 连接查询 ★ 子查询 √ 分页查询 ★ union联合查询 √ 六、DML语言的学习 ★ 插入语句 修改语句 删除语句 七、DDL语言的学习 库和表的管理 √ 常见数据类型介绍 √ 常见约束 √ 八、TCL语言的学习 事务和事务处理 九、视图的讲解 √ 十、变量 十一、存储过程和函数 十二、流程控制结构 数据库的好处 1.持久化数据到本地 2.可以实现结构化查询,方便管理 数据库相关概念 1、DB:数据库,保存一组有组织的数据的容器 2、DBMS:数据库管理系统,又称为数据库软件(产品),用于管理DB中的数据 3、SQL:结构化查询语言,用于和DBMS通信的语言 数据库存储数据的特点 1、将数据放到表中,表再放到库中 2、一个数据库中可以有多个表,每个表都有一个的名字,用来标识自己。表名具有唯一性。 3、表具有一些特性,这些特性定义了数据在表中如何存储,类似java中 “类”的设计。 4、表由列组成

MySQL-视图和索引

纵然是瞬间 提交于 2020-03-16 09:52:44
一、视图 视图是从一个或多个表中导出的表,是一种虚拟的表,其内容由查询语句定义。 视图是逻辑上来自一个或多个表的数据集合 视图一旦定义,就可以像表一样进行查询、修改和删除。 对视图引用的基础表来说,视图的作用类似于筛选。 视图的数据来自定义视图查询时引用的表,且在引用视图时动态生成。 为什么使用视图? 限制其他用户对数据库表的访问,因为视图可以有选择性的显示数据库表的一部分 容易实现复杂的查询 对于相同的数据可以产生不同的视图 1 、创建视图 Create view 视图名 [(列名1,列名2)] as select语句 创建视图时,所引用的表尽量<=3,为保证执行效率 范例1:CREATE VIEW emp11 AS SELECT * FROM emp; 范例2:CREATE VIEW emp10 as SELECT * FROM emp WHERE deptno=10; 范例3:CREATE VIEW emp20(no,name) as SELECT empno, ename FROM emp; 范例4:CREATE VIEW emp02(no,name,deptno,dname) as SELECT empno, ename, d.deptno,dname FROM emp e, dept d WHERE e.deptno = d.deptno AND loc =

ASP.Net MVC开发基础学习笔记(1):走向MVC模式

橙三吉。 提交于 2020-03-15 16:10:05
一、ASP.Net的两种开发模式 1.1 ASP.Net WebForm的开发模式 (1)处理流程 在传统的WebForm模式下,我们请求一个例如 http://www.aspnetmvc.com/blog/index.aspx 的URL,那么我们的WebForm程序会到网站根目录下去寻找blog目录下的index.aspx文件,然后由index.aspx页面的CodeBehind文件(.CS文件)进行逻辑处理,其中或许也包括到数据库去取出数据(其中的经过怎样的BLL到DAL这里就不谈了),然后再由index.aspx页面来呈现给用户。 综上所述,在WebForm模式下: 一个URL请求的是在服务器与该URL对应路径上的物理文件(ASPX文件或其他),然后由该文件来处理这个请求并返回结果给客户端。 (2)开发方式 • 服务器端控件 • 一般处理程序+Html静态页+Ajax • 一般处理程序+Html模板引擎 1.2 ASP.Net MVC的开发模式 (1)处理流程 在ASP.Net MVC中,客户端所请求的URL是被映射到相应的Controller去,然后由Controller来处理业务逻辑,或许要从Model中取数据,然后再由Controller选择合适的View返回给客户端。再说回前面我们运行的ASP.NET MVC程序访问的 http://www.aspnetmvc.com

EF + SqlServer 表没有常规主键,无法更新 EntitySet

坚强是说给别人听的谎言 提交于 2020-03-14 15:20:56
错误描述: 1. U811.1 SqlServer数据库CurrentStock表,没有常规主键,对接系统时使用EF Code First提示: 生成过程中发现错误: 警告 6002: 表/视图“***.dbo.CurrentStock”未定义主键。已推断出该键,并将定义创建为只读的表/视图。 2. 调用EF处理材料出库时,提示: 无法更新 EntitySet“CurrentStock”,因为它有一个 DefiningQuery,而 <ModificationFunctionMapping> 元素中没有支持当前操作的 <UpdateFunction> 元素。 解决方法: 在edmx文件中找到CurrentStock的EntitySet节点,将节点内的DefiningQuery内容删除 来源: https://www.cnblogs.com/lnvc/p/12491959.html

子查询/联合分组/all与any/视图/事务

纵然是瞬间 提交于 2020-03-14 03:41:14
子查询 将一条查询sql的结果作为另一条sql的条件 使用方法总结: # 增:insert into 表 select子查询 # 删:delete from 表 条件是select子查询(表不能与delete表相同) # 查:select 字段 from 表 条件是select子查询 # 改:update 表 set 字段=值 条件是select子查询(表不能与update表相同) 联合分组: 按多个字段综合结果进行分组 使用方法总结: # 按 area与port组合后的结果进行分组,只有组合后的结果还一致,才认为是一组 select group_concat(name),area,port from emp group by area,port; 区间修饰条件(all与any): 使用方法总结: # 语法规则 # where id in (1, 2, 3) => id是1或2或3 # where id not in (1, 2, 3) => id不是1,2,3 # where salary < all(3, 6, 9) => salary必须小于所有情况(小于最小) # where salary > all(3, 6, 9) => salary必须大于所有情况(大于最大) # where salary < any(3, 6, 9) => salary只要小于一种情况(小于最大)

索引、视图、事务

谁都会走 提交于 2020-03-13 21:56:45
索引     是一个数据结构,用来查询数据库表的数据     主键索引:       primary key       作用:确认表中一条特定数据记录的位置,不能为空,一个表只有一个主键     外键索引:表中的一个字段(非主键)指向另一张表中的主键,称该字段为主键。       foreign key(外键名) references 主表(主键) ;       作用:多表查询时方便联系两表数据。限制:表类型必须是innodb(有约束效果)     唯一索引:确定某一列不能出现重复的值       unique     普通索引:       create index 索引名 on 表名(列名)     索引操作:       创建:create index 索引名 on 表名(列名)       查看:show index from 表名       删除:drop index 索引名 on 表名    视图     是一个虚拟的表,不占用物理内存、不存放数据,数据只存在基表中,相互影响     优点:简单、方便,查看数据更清楚;安全性:保护数据;不占物理内存     缺点:性能差;查询效率偏低,需要转换;修改限制:对于复杂视图(多表查询)修改是麻烦的     创建:create view 视图名 as select语句     查询:show creaw view 视图名

T-SQL查询进阶--深入浅出视图

纵然是瞬间 提交于 2020-03-13 12:58:11
视图可以看作定义在SQL Server上的虚拟表.视图正如其名字的含义一样,是另一种查看数据的入口.常规视图本身并不存储实际的数据,而仅仅存储一个Select语句和所涉及表的metadata. 视图简单的理解如下: 通过视图,客户端不再需要知道底层table的表结构及其之间的关系。视图提供了一个统一访问数据的接口。 为什么要使用视图(View) 从而我们不难发现,使用视图将会得到如下好处: 视图隐藏了底层的表结构,简化了数据访问操作 因为隐藏了底层的表结构,所以大大加强了安全性,用户只能看到视图提供的数据 使用视图,方便了权限管理,让用户对视图有权限而不是对底层表有权限进一步加强了安全性 视图提供了一个用户访问的接口,当底层表改变后,改变视图的语句来进行适应,使已经建立在这个视图上客户端程序不受影响 视图(View)的分类 视图在SQL中可以分为三类 普通视图(Regular View) 索引视图(Indexed View) 分割视图(Partitioned View) 下面从这几种视图类型来谈视图 普通视图(Rugular View) 普通视图由一个Select语句所定义,视图仅仅包含其定义和被引用表的metadata.并不实际存储数据。MSDN中创建视图的模版如下: CREATE VIEW [ schema_name . ] view_name [ (column [ ,..

《Django By Example》第二章 中文 翻译 (个人学习,渣翻)

对着背影说爱祢 提交于 2020-03-13 10:07:14
书籍出处:https://www.packtpub.com/web-development/django-example 原作者:Antonio Melé 2016年12月13日发布(3天完成第二章的翻译,但没有进行校对,有很多错别字以及模糊不清的语句,请大家见谅) 2017年2月17日校对完成(不是精校,希望大家多指出需要修改的地方) 2017年3月6日精校完成(感谢大牛 @kukoo 的精校!) 2017年3月21日再度精校(感谢大牛 @妈妈不在家 的精校!初版我已经不敢再看!) (译者注:翻译完第一章后,发现翻译第二章的速度上升了不少,难道这就是传说中的经验值提升了?) 第二章 用高级特性来增强你的blog 在上一章中,你创建了一个基础的博客应用。现在你将利用一些高级的特性例如通过email来分享帖子,添加评论,给帖子打上tag,检索出相似的帖子等将它改造成为一个功能更加齐全的博客。在本章中,你将会学习以下几点: 通过Django发送email 在视图(views)中创建并操作表单 通过模型(models)创建表单 集成第三方应用 构建复杂的查询集(QuerySets) 通过email分享帖子 首先,我们会允许用户通过发送邮件来分享他们的帖子。让我们花费一小会时间来想下,根据在上一章中学到的知识,你该如何使用views,urls和templates来创建这个功能。现在

Django学习笔记〇六——MCV和MTV框架介绍

大兔子大兔子 提交于 2020-03-12 12:00:03
MVC,全名是Model View Controller,是Web服务开发的最著名的模式( 架构模式 ),是软件工程的一种软甲架构模式,他把软件系统分成了三个基本部分:模型(Model),视图(View)以及控制器(Controller),具有耦合性低,复用性高,生命周期成本高等优点。MCV架构可以用下面的图来表示 可以从这个图看出来,最上面的一层应该是视图层(从网上截的这个图可能有些问题,视图层是直接面向使用对象的),视图层提供了用户的操作界面,是程序的外壳。 最底层是操作数据的模型层Model 中间的一层是控制层Controller,负责根据用户从视图层输入的指令,通过模型层获取数据后进行相应的操作,最终产生结果返回给视图层。 这三层是紧密联系在一起但又互相独立,每一层的变化都不影响到其他层,每一层都对外提供借接口供其他层调用。这样一来,软件就可以实现模块化,修改外观或数据都不用修改其他层,方便了维护和升级。 ------------恢复内容开始------------ 通过前面做的那个用户管理的Web服务,我们可以大致的了解一下Django是如何实现功能的,今天就结合前面的知识我们来聊一聊Web开发最经典的MVC架构模式和Django的架构模式。 MVC架构模式 MVC,全名是Model View Controller,是Web服务开发的最著名的模式( 架构模式 )

视图比简单查询快吗?

只谈情不闲聊 提交于 2020-03-11 21:31:09
是一个 select * from myView 创建视图的速度比查询本身快(以便具有相同的resultSet): select * from ([query to create same resultSet as myView]) ? 对于视图来说,是否使用某种类型的缓存使其比简单查询更快,这对我来说还不是很清楚。 #1楼 一切都取决于情况。 MS SQL索引视图比普通视图或查询快,但是索引视图不能在镜像数据库环境(MS SQL)中使用。 任何形式的循环中的视图都会导致严重的减速,因为每次在循环中调用该视图时都会重新填充该视图。 与查询相同。 在这种情况下,使用#或@来保存要循环通过的数据的临时表比视图或查询要快。 因此,这完全取决于情况。 #2楼 从视图或表中选择不会有太大的意义。 当然,如果View没有不必要的联接,字段等。您可以检查用于提高View性能的查询,联接和索引的执行计划。 您甚至可以在视图上创建索引,以加快搜索需求。 http://technet.microsoft.com/zh-CN/library/cc917715.aspx 但是,如果您要像'%...%'一样进行搜索,则sql引擎将无法从文本列索引中受益。 如果您可以强迫用户进行“ ...%”之类的搜索,那将很快 提到在ASP论坛上的答案: https : //forums.asp.net/t/1697933