数据库视图

第六篇:视图、触发器、事务、存储过程、函数

余生长醉 提交于 2019-12-04 03:31:58
阅读目录 一 视图 二 触发器 三 事务 四 存储过程 五 函数 六 流程控制 一 视图 视图是一个虚拟表(非真实存在),其本质是【根据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 | +-----+-----

springMvc01

ぃ、小莉子 提交于 2019-12-04 01:49:53
spring01 概述 springMvc是一种基于Java实现MVC设计模式的请求驱动类型的轻量级web框架 它通过一套注解, 让一个简单的Java类成为处理请求的控制器, 而无需实现任何接口 支持REST编程风格 它在MVC三层架构中处于 表现层 springMvc和struts2优劣分析 共同点: 它们都是表现层框架,都是基于 MVC 模型编写的。 它们的底层都离不开原始 ServletAPI。 它们处理请求的机制都是一个核心控制器。 区别: Spring MVC 的入口是 Servlet, 而 Struts2 是 Filter Spring MVC 是基于方法设计的,而 Struts2 是基于类,Struts2 每次执行都会创建一个动作类。所以 Spring MVC 会稍微比 Struts2 快些。 Spring MVC 使用更加简洁,同时还支持 JSR303, 处理 ajax 的请求更方便 JSR303 是一套 JavaBean 参数校验的标准,它定义了很多常用的校验注解,我们可以直接将这些注解加在我们 JavaBean 的属性上面,就可以在需要校验的时候进行校验了。 Struts2 的 OGNL 表达式使页面的开发效率相比 Spring MVC 更高些,但执行效率并没有比 JSTL 提升,尤其是 struts2 的表单标签,远没有 html 执行效率高。

SQL-W3School-高级:SQL VIEW(视图)

本小妞迷上赌 提交于 2019-12-04 01:44:21
ylbtech-SQL-W3School-高级:SQL VIEW(视图) 1. 返回顶部 1、 视图是可视化的表。 本章讲解如何创建、更新和删除视图。 SQL CREATE VIEW 语句 什么是视图? 在 SQL 中,视图 是基于 SQL 语句 的 结果集 的 可视化的表 。 视图包含行和列,就像一个真实的表。视图中的字段就是来自一个或多个数据库中的真实的表中的字段。我们可以向视图 添加 SQL 函数、WHERE 以及 JOIN 语句 ,我们也可以 提交数据 ,就像这些来自于某个单一的表。 注释:数据库的设计和结构不会受到视图中的函数、where 或 join 语句的影响。 SQL CREATE VIEW 语法 CREATE VIEW view_name AS SELECT column_name(s) FROM table_name WHERE condition 注释:视图 总是显示最近的数据 。每当用户查询视图时,数据库引擎通过 使用 SQL 语句来重建数据 。 SQL CREATE VIEW 实例 可以 从某个查询内部、某个存储过程内部 ,或者 从另一个视图内部来使用视图 。通过向视图添加函数、join 等等,我们可以向用户精确地提交我们希望提交的数据。 样本数据库 Northwind 拥有一些被默认安装的视图。视图 "Current Product List" 会从

MySQL之视图

好久不见. 提交于 2019-12-03 22:57:45
1、概念: 视图,虚拟表,从一个表或多个表中导出来的表,作用和真实表一样,包含一系列带有行和列的数据 视图中,用户可以使用SELECT语句查询数据,也可以使用INSERT,UPDATE,DELETE修改记录,视图可以使用户操作方便,并保障数据库系统安全。 2、语法 创建方法: CREATE [OR REPLACE] [ALGORITHM = {UNDEFINED | MERGE | TEMPTABLE}] [DEFINER = { user | CURRENT_USER }] [SQL SECURITY { DEFINER | INVOKER }] VIEW view_name [(column_list)] AS select_statement [WITH [CASCADED | LOCAL] CHECK OPTION] 删除视图: DROP VIEW [IF EXISTS] view_name [, view_name] ... [RESTRICT | CASCADE] 3、优缺点 优点:   简单化,数据所见即所得   安全性,用户只能查询或修改他们所能见到得到的数据   逻辑独立性,可以屏蔽真实表结构变化带来的影响 缺点:   性能相对较差,简单的查询也会变得稍显复杂   修改不方便,特变是复杂的聚合视图基本无法修改 4、举例 查看主表信息 mysql > SELECT

oracle学习篇:八、等待事件

冷暖自知 提交于 2019-12-03 22:44:40
当一个进程连接到数据库之后,进程所经历的种种等待就开始被记录,并且通过一系列的动态性能视图进行展现。通过等待事件用户可以很快地发现数据库的性能瓶颈,从而进行针对性能的优化和分析。 8.1 等待事件的源起 查询数据库版本: select * from v$version; 查询等待事件数量: select * from v$event_name; oracle的等待事件,主要可以分为两类,即空闲idle等待事件和非空闲non-idle等待事件。空闲等待事件指oracle正等待某种工作,在诊断和优化数据库的时候,不用过多注意这部分事件。非空闲等待事件专门针对oracle的活动,指数据库任务或应用运行过程中发生的等待,这些等待事件是,在调整数据库的时候应该关注和研究的。 查询空闲等待事件: select * from v$event_name where name like '%idle%'; 也可以通过查询v$system_wait_class视图获得各类主要等待事件的等待时间和等待次数等信息。 select * from v$system_wait_class; 8.2 从等待发现瓶颈 v$session视图:记录数据库当前连接的session信息,和session的生命周期相关,并不记录历史信息; v$session_wait视图

Django创建应用以及路由的配置

若如初见. 提交于 2019-12-03 21:25:49
Django简介:是一个开放源代码的web 应用框架,由python 写成。初次发布于2005年7月,并于2008年9月发布了第一个正式版本1.0. 文件说明: manage.py:一个命令行工具,可以使我们用多种方式对Django的工程进行交互。 project: __init__.py:一个空文件,告诉python这个目录应该被看成一个包 settings.py:工程的配置文件 urls.py:工程的URL声明(主URL控制器) wsgi.py:工程与WSGI兼荣的web服务器入口 数据库的配置:注意:Django 默认使用SQLite数据库 在settings.py文件中,通过DATABASES,选项进行数据库的配置 启动服务:python manage.py runserver 1.dj 创建子应用 2.创建完成子应用后,还要进行注册才可以 1.找到settings.py 文件 2.注册子应用 注意:其实导入的就是apps 的 ProjectsConfig 类 3.注册视图 1.在views.py 里面注册视图 from django.http import HttpResponse # Create your views here. def index(request): """ 第一个视图函数 :return: """ return HttpResponse("<h1

java web牛刀小试之spring mvc

廉价感情. 提交于 2019-12-03 16:49:36
1.Spring MVC工作原理:   springMVC是一个MVC的开源框架,springMVC=struts2+spring,springMVC就相当于是Struts2加上sring的整合,但是这里有一个疑惑就是,springMVC和spring是什么样的关系呢?这个在百度百科上有一个很好的解释:意思是说,springMVC是spring的一个后续产品,其实就是spring在原有基础上,又提供了web应用的MVC模块,可以简单的把springMVC理解为是spring的一个模块(类似AOP,IOC这样的模块),网络上经常会说springMVC和spring无缝集成,其实springMVC就是spring的一个子模块,所以根本不需要同spring进行整合。 借助于注解,Spring MVC提供了几乎是POJO的开发模式,使得控制器的开发和测试更加简单。这些控制器一般不直接处理请求,而是将其委托给Spring上下文中的其他bean,通过Spring的依赖注入功能,这些bean被注入到控制器中。 2.SpringMVC流程 1、 用户发送请求至前端控制器DispatcherServlet。 2、 DispatcherServlet收到请求调用HandlerMapping处理器映射器。 3、 处理器映射器找到具体的处理器(可以根据xml配置、注解进行查找)

springMVC概念

非 Y 不嫁゛ 提交于 2019-12-03 13:52:38
MVC全名Model View Controller,是模型-视图-控制器的缩写,是一种软件设计模式,其具体实现称之为MVC框架。 MVC采用将业务逻辑、数据与界面显示分离的方法来组织代码 ,将众多的业务逻辑聚集到一个部件里面,在需要改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑,达到减少编码的时间。 模型(Model) 模型表示企业数据和业务规则。在MVC的三个部件中,模型拥有最多的处理任务。它可以用MyBatis、Hibernate等这样的ORM框架来处理数据库,被模型返回的数据是中立的,就是说模型与数据格式无关,这样一个模型能为多个视图提供数据,由于应用于模型的代码只需要写一次就可以被多个视图重用,所以减少了代码的重复性。 视图(View) 视图是用户看到并与之交互的界面。对于老式的Web应用程序来说,视图就是有HTML元素组成的界面,在新式的Web应用程序中,HTML依旧在视图中扮演着重要的角色,但一些新的技术层出不穷,它们包括Adobe Flash 和像XHTML,XML/XSL,WML等一些标识语言和Web services。 控制器(Controller) 控制器接受用户的输入并调用模型和视图去完成用户的需求,所以当单击Web页面中的超链接和发送HTML表单时,控制器本身不输出任何东西和做任何处理。它只是接收请求并决定那个模型构件去处理请求

数据库进阶

和自甴很熟 提交于 2019-12-03 13:08:27
一 . rowid和rownum 1. rowid相当于对象的地址,在数据插入到表中时候已经存在,rowid不是地址,根据地址转换的. rowid是伪列. --项目数据值保留唯一的,删除重复的 --查询到要保留的数据 select deptno,dname,rowid from dept; select name,course,score,min(rowid) from tb_student group by name,course,score; --要删除的数据 select * from tb_student where not rowid in(select min(rowid) from tb_student group by name,course,score); --删除数据 delete from tb_student where not rowid in(select min(rowid) from tb_student group by name,course,score) 2.rownum rownum 是伪列 . --分页 rownum 结果集的序号 从1开始 --如果按照主键进行排序,先排序后确定rownum --如果根据非主键进行排序,先确定rownum再排序 select deptno,dname,rownum from dept order by

MySql学习笔记06

易管家 提交于 2019-12-03 11:51:09
课程回顾 一对一关联 案例1:查询每个员工的名字和主管领导的名字 select e.ename 员工姓名,m.ename 领导姓名from emp e join emp mon e.mgr=m.empno; 案例2: 查询主管领导名字为blake的所有员工名字 select e.ename 员工姓名,m.ename 领导姓名 from emp e join emp m on e.mgr=m.empno where m.ename='blake' 案例3:查询有商品的分类信息及上级分类信息 往t item category表内部插入以下数据 id 162 name 办公用品 id 229 name 文具 id 913 name 户外用品 -插入数据 insert into t item category (id,name) values(162,'办公用品'),(229,'文具'),(913,'户外用品'); -查询所有有商品的分类id SELECT DISTINCT category id FROM t item WHERE category id IS NOT NULL -查询分类详情 select * from t item category where id in (SELECT DISTINCT category id FROM t item WHERE category