数据库视图

mysql的 视图、触发器、事务、存储过程、函数、索引与慢查询优化

試著忘記壹切 提交于 2020-02-08 04:32:37
视图假设有两张表学生和老师,学生表(sid,name,tid)关联老师表(tid,tname)创建视图的语法: create view 视图名 as SQL语句 实例:create view student2teacher as select * from student inner join teacher on student.tid=teacher.tid; 创建视图后会产生一个名为 student2teacher 的表,可以直接调用。 思考:开发过程中会不会去使用视图? 不会!视图是mysql的功能,如果你的项目里面大量的使用到了视图,那意味着你后期想要扩张某个功能的时候这个功能恰巧又需要对视图进行修改, 意味着你需要先在mysql这边将视图先修改一下,然后再去应用程序中修改对应的sql语句,这就涉及到跨部门沟通的问题,所以通常不会使用视图, 而是通过重新修改sql语句来扩展功能 强调 1、在硬盘中,视图只有表结构文件,没有表数据文件 2、视图通常是用于查询,尽量不要修改视图中的数据 然后说一个关于删除视图的方法 语法:DROP VIEW 视图名称 DROP VIEW student2teacher 触发器 在某张表对数据进行增删改时自动触发的功能称之为触发器 这类行为一旦执行了就会触发触发器的执行,自动运行另一段的sql代码 创建触发器的语法 # 创建两张表create

mysql数据库-进阶-长期维护

雨燕双飞 提交于 2020-02-08 01:49:08
############### 视图 ############## """ 1.视图 视图:是一个虚拟表,其内容由查询定义。同真实的表一样,视图包含一系列带有名称的列和行数据 视图有如下特点; 1. 视图的列可以来自不同的表,是表的抽象和逻辑意义上建立的新关系。 2. 视图是由基本表(实表)产生的表(虚表)。 3. 视图的建立和删除不影响基本表。 4. 对视图内容的更新(添加、删除和修改)直接影响基本表。 5. 当视图来自多个基本表时,不允许添加和删除数据。 1.创建视图 create view 视图名称 as sql 查询语句 2.使用视图 select * from 视图名称; 3.更新视图 alter view 视图名称 AS SQL语句 4. 删除视图 drop view ren_view; """ ############### 触发器 ############## """ 2.触发器-trigger 触发器:监视某种情况,并触发某种操作。 触发器创建语法四要素: 1.监视地点(table) 2.监视事件(insert/update/delete) 3.触发时间(after/before) 4.触发事件(insert/update/delete) 1.创建触发器语法 create trigger triggerName after/before insert/update

SpringMVC总结

无人久伴 提交于 2020-02-07 11:22:57
SpringMVC也总结完成了,费尽心血啊。。接下来就会将Mybatis、Spring、SpringMVC整合起来,搭建一个SSM项目模型了,我会尽快完成。 希望大家多多支持,点赞关注哦~~ 文章目录 一、SpringMVC:回顾MVC 1、回顾MVC 1.1、什么是MVC 1.2、Model1时代 1.3、Model2时代 1.4、回顾练习Servlet 二、SpringMVC:什么是SpringMVC 2、SpringMVC 2.1、概述 2.2、中心控制器 2.3、SpringMVC执行原理 三、SpringMVC:Hello,SpringMVC 3、HelloSpringMVC 3.1、配置版实现 3.2、注解版实现 3.3、小结 四、SpringMVC:Controller 及 RestFul风格 4、Controller 4.1、控制器Controller 4.2、实现Controller接口 4.3、使用注解@Controller 4.4、RequestMapping 5、RestFul 风格 5.1、RestFul 风格 5.2、小黄鸭调试法 五、SpringMVC:结果跳转方式 6、结果跳转方式 6.1、ModelAndView方式 6.2、ServletAPI方式 6.3、SpringMVC方式 六、SpringMVC:数据处理 7、数据处理 7.1

UML学习笔记(1)

最后都变了- 提交于 2020-02-07 08:49:52
1.建模 1.1 为什么要建模 建立大厦和建立狗窝的区别是建设狗窝不需要设计。要生产合格的软件就要有一套关于体系结构、过程和工具的规范。 建模的定义:建模是对现实的简化。 建模的目标: 1)模型帮助我们按照实际情况或按照我们所需要的样式对系统进行可视化。 2)模型允许我们详细说明系统的结构和行为。 3)模型给出一个知道我们构造系统的模板。 4)模型对我们的决策进行文档化。 建模就是把复杂的系统变成小的系统,采用“各个击破”的原则逐一解决。 1.2 建模原理 1)选择创建什么模型很重要,模型要反映你难于处理的开发问题。 2)模型要在不同的精度级别上来表示。你可以根据观察的角色和观察的原因来选择精度。 3)建造模型要和现实相连。 4)重要的系统需要用一组独立的模型去处理。在面向对象的软件体系中,为了理解系统的体系结构,你需要几个互补和连锁的视图:用例图、设计视图、进程视图、实现视图和实施视图。 1.3 面向对象的建模 面向算法的建模在需求发生变化或者系统增长后就变得难以维护。 面向对象的建模把对象和类作为其主要构造块。例如,在三层结构中,我们可以在用户接口层、中间层和数据库层中找到你想要的对象。 2 UML介绍 2.1 概述 UML可以对软件密集型系统的制品进行可视化、详述、构造和文档化。最好把它用于以用况(用例)为驱动、以体系结构为中心、跌代及增量的过程中。 UML是一种语言

MySQL学习笔记——〇四

妖精的绣舞 提交于 2020-02-06 01:15:42
今天我们继续对MySQL内容进行一些补充,但是今天所讲的内容已经不是平时常用的了。 先穿插一条指令贯穿了今天所讲的所有知识点: MySQL结束符 结束符delimiter其实就是告诉mysql解释器,该段命令是否已经结束了,mysql是否可以执行了。默认情况下,delimiter是分号;。在命令行客户端中,如果有一行命令以分号结束,那么回车后,mysql将会执行该命令。 但是在今天的知识点中我们经常需要用到begin...end这种结构体,那么在结构体中的sql语句后的分号就不能作为结束符了,我们需要随便设置一个结束符,在结构体结束后再换回分号。 MySQL视图(View) 如果我们在日常进行数据库维护过程中需要一个重复的虚拟表,这个虚拟表的构建过程我们要敲很多次,MySQL给我们提供了一个对齐进行优化的方法_视图(View)。 视图的创建 比方我们今天需要对一个用户表中id>10的用户进行操作,这个操作要重复好多好多次,那么我们就要写好多次这样的代码 select *from (select * from table where id>10) as t; 这个时候,为了提高效率,我们就可以创建一个视图 create view v1 as select * from table where id>10; 这个时候我们只需要调用v1就可以了。 注意:视图是一个虚拟的表,是动态的

.NET工程师必须掌握的知识点

风格不统一 提交于 2020-02-05 21:00:45
Microsoft SQL Server 数据库 一、创建和维护数据库 1、数据库   SQL Server 数据库的组成部分?(参见联机丛书)   如何保证数据库的完整性、安全性、并发性?   数据库设计创建步骤?(参见联机丛书 - 创建数据库计划)   数据库设计考虑的事项?(参见联机丛书) 2、SQL Server 表   设计表时应注意哪些?   如何创建和使用约束、默认值和空值?   数据完整性分类有哪些?并且它们分别包括哪些约束?   约束有哪些?语法?   如何添加、修改和删除列? 在哪些情况下不可删除列?   创建和修改表 3、SQL Server 索引   索引的概念   索引的体系结构   索引的特性   索引的优点   索引的缺点   索引语法结构   主键、约束和索引   索引创建基本准则   索引的实际应用   重建索引? 4、SQL Server 视图   http://hi.baidu.com/ztf704/blog/item/9274cefc64a93ffffc037fb4.html   视图概念   功能特性   视图的几大优点   在创建视图前请考虑则   索引视图   索引视图必须满足下列要求   分区视图   可更新分区视图   可更新的分区视图规则   可更新的分区视图数据修改规则   分布式分区视图规则   视图使用时机 5、SQL

django入门-表单-part4

蹲街弑〆低调 提交于 2020-02-05 14:36:00
尊重作者的劳动,转载请注明作者及原文地址 http://www.cnblogs.com/txwsqk/p/6514113.html 完全翻译自官方文档 https://docs.djangoproject.com/en/1.10/intro/tutorial04/ 本节内容讲表单 让我们更新一下pools/detail.html,添加html表单的展示 <h1>{{ question.question_text }}</h1> {% if error_message %}<p><strong>{{ error_message }}</strong></p>{% endif %} <form action="{% url 'polls:vote' question.id %}" method="post"> {% csrf_token %} {% for choice in question.choice_set.all %} <input type="radio" name="choice" id="choice{{ forloop.counter }}" value="{{ choice.id }}" /> <label for="choice{{ forloop.counter }}">{{ choice.choice_text }}</label><br /> {%

django 官方教程翻译-part4

我们两清 提交于 2020-02-05 09:10:07
写一个简单的表单 更新detail.html,代码: <h1>{{ poll.question }}</h1> {% if error_message %}<p><strong>{{ error_message }}</strong></p>{% endif %} <form action="{% url 'polls:vote' poll.id %}" method="post"> {% csrf_token %} {% for choice in poll.choice_set.all %} <input type="radio" name="choice" id="choice{{ forloop.counter }}" value="{{ choice.id }}" /> <label for="choice{{ forloop.counter }}">{{ choice.choice_text }}</label><br /> {% endfor %} <input type="submit" value="Vote" /> </form> 解释一下上面的代码: 1 上面代码为poll对象的每个choice对应一个单选按钮,每个单选按钮的value就是choice的id号,name为choice,也就是说,按下提交按钮,发送的POST数据是这样的choice=3. 2

Oracle(创建视图)

◇◆丶佛笑我妖孽 提交于 2020-02-04 21:25:16
概念: 视图:所谓视图就是提取一张或者多张表的数据生成一个映射,管理视图可以同样达到操作原表的效果,方便数据的管理以及安全操作。 视图其实就是一条查询 sql 语句,用于显示一个或多个表或其他视图中的相关数据。视图将一个查询的结果作为一个表来使用,因此视图可以被看作是存储查询结果的一个虚拟表。视图来源于表,所有对视图数据的修改最终都会被反映到视图的基表中,这些修改必须服从基表的完整性约束。 视图的存储 与表不同,视图不会要求分配存储空间,视图中也不会包含实际的数据。视图只是定义了一个查询,视图中的数据是从基表中获取,这些数据在视图被引用时动态的生成。由于视图基于数据库中的其他对象,因此一个视图只需要占用数据字典中保存其定义的空间,而无需额外的存储空间。 视图的优势: 1. 信息隐藏 比如 s_emp 表中有工资,可以创建视图,隐藏工资信息。(可以配合权限,让某个用户只能查看视图,不能查看表。) 2. 使复杂查询变得简单。 3. 数据独立 4. 相同数据的不同展示形式。 视图的分类: 1. 简单视图 2. 复杂视图 比较: 简单视图 复杂视图 涉及到的表个数 1 1 个或多个 包含函数 不包含 包含 包含组数据 不包含 包含 通过视图使用 DML 可以 不可以 视图的创建: CREATE [OR REPLACE] [FORCE|NOFORCE] VIEW view_name [

[mysql]索引和视图

风流意气都作罢 提交于 2020-02-04 19:31:39
索引和视图 索引:可以加快查询速度 视图:是一种虚拟存在的表 导入:从文件中导入数据到表 导出:从表中导出到文件中 备份:mysqldump 备份数据库到文件 恢复:从文件恢复数据库 #索引 alter table tbname add index indexname (colname); create index indexname on tbname (colname); show index from tbname; 在使用SELECT语句查询的时候,语句中WHERE里面的条件,会自动判断有没有可用的索引 #视图 1.数据库中只存放了视图的定义,而没有存放视图中的数据,这些数据存放在原来的表中; 2.使用视图查询数据时,数据库系统会从原来的表中取出对应的数据; 3.视图中的数据依赖于原来表中的数据,一旦表中数据发生改变,显示在视图中的数据也会发生改变; 在使用视图的时候,可以把它当作一张表。 create view viewname(colname1,colname2...) as select col1, col2...from tbname; #导入操作 LOAD DATA INFILE '文件路径和文件名' INTO TABLE 表名字; #导出操作 SELECT 列1,列2 INTO OUTFILE '文件路径和文件名' FROM 表名字; 备份与导出的区别