数据库视图

视图、触发器、事务、存储过程、函数、流程控制、索引与慢查询优化等

℡╲_俬逩灬. 提交于 2019-11-28 08:23:25
视图 什么是视图? 视图就是一张虚拟表,然后保存下来,以后可以直接使用。 为什么使用视图? 当sh用一张虚拟表表比较频繁的时候,不用重复查询连接多张表。 如何使用视图? create view teacher2course as select *from teacher inner join course on teacher.tid = course.teacher_id; 强调: 1、在硬盘中,视图只有表结构文件没有表数据文件,因为它是虚拟表,数据来自于其他表。 2、视图主要用于查询,尽量不要修改视图中的数据,因为涉及其他表数据的修改。 触发器: 在满足对某张表数据的增、删、改的情况下,自动触发的功能称之为触发器。 为何使用触发器: 触发器专门针对我们对某一张表数据增insert、删delete、改update的行为,这类行为一旦执行 ​ 就会触发触发器的执行,即自动运行另外一段sql代码。 创建触发器的实例: CREATE TABLE cmd ( id INT PRIMARY KEY auto_increment, USER CHAR (32), priv CHAR (10), cmd CHAR (64), sub_time datetime, #提交时间 success enum ('yes', 'no') #0代表执行失败 ); CREATE TABLE errlog (

3 Django视图层

℡╲_俬逩灬. 提交于 2019-11-28 08:22:58
视图函数 一个视图函数,简称视图,是一个简单的Python 函数,它接受Web请求并且返回Web响应。响应可以是一张网页的HTML内容,一个重定向,一个404错误,一个XML文档,或者一张图片. . . 是任何东西都可以。无论视图本身包含什么逻辑,都要返回响应。代码写在哪里也无所谓,只要它在你的Python目录下面。除此之外没有更多的要求了——可以说“没有什么神奇的地方”。为了将代码放在某处,约定是将视图放置在项目或应用程序目录中的名为 views.py 的文件中。 下面是一个返回当前日期和时间作为HTML文档的视图: from django.shortcuts import render, HttpResponse, HttpResponseRedirect, redirect import datetime def current_datetime(request): now = datetime.datetime.now() html = "<html><body>It is now %s.</body></html>" % now return HttpResponse(html) 让我们逐行阅读上面的代码: 首先,我们从 django.shortcuts 模块导入了 HttpResponse 等类,以及Python的 datetime 库。 接着,我们定义了

mysql(6)视图、事务、流程控制

假如想象 提交于 2019-11-28 08:22:56
目录 视图 触发器 事务 存储过程 内置函数 流程控制 索引 视图 (尽量少用) 工作用的不是很多 原因:1.创建过多" 视图 ",占用硬盘资源和数据库资源 ​ 2.无法改表 1、什么是视图 ​ 视图就是通过查询得到一张虚拟表,然后保存下来,下次直接使用即可 2、为什么要用视图 ​ 当频繁需要用到多张表的连表结果,你就可以事先生成好视图 ​ 之后直接调用即可,避免了反复写连表操作的sql语句 2 3、如何用视图 create view teacher_course as select * from teacher inner join course on teacher.tid = course.teacher_id; 视图存在于“视图”中 强调 1、在硬盘中,视图只有表结构文件,没有表数据文件, 视图中的数据还是来源于原来的表 2、视图通常是用于查询,尽量不要修改视图中的数据 3、一般情况下不会频繁的使用视图来写业务逻辑 drop view teacher2course; 视图 只有表结构文件: 不要 修改 视图中的数据(默认也不让修改): 思考:开发过程中会不会去使用视图? 不会!视图是mysql的功能,如果你的项目里面大量的使用到了视图,那意味着你后期想要扩张某个功能的时候这个功能恰巧又需要对视图进行修改,意味着你需要先在mysql这边将视图先修改一下

数据库基本操作(视图)

会有一股神秘感。 提交于 2019-11-28 08:20:51
数据库基本操作(视图) ##定义: 视图是一个虚拟表,是从数据库中一个或者多个表中导出来的表。视图还可以从已经存在的视图的基础上定义 ##视图的作用 1)简单性:封装复杂的sql语句 2)安全性:隐藏某些字段,保存敏感信息 3)逻辑数据独立性 ##创建视图:CREATE VIEW 视图名 AS ; 例子:create view view_sellSet as select c.c_name as 商品名称,c.c_madein as 商品产地,ct.ct_name as 商品类型,c.c_outprice as 商品售价 from commodity as c inner join commoditytype as ct on c.c_type=ct.ct_id where c.c_outprice is not null; 注意:视图名命名规范:view_别名/数字序号 ##对视图的操作和对实表的操作相同: 1)视图的修改会直接影响实表的数据(update,select) update view_sellSet set 商品售价 100 where 商品名称=‘红楼梦’; 注意: 对视图进行操作的时候,列名为生成视图时候给定的列名称(as后面的字段) 2)视图和实表一样,存储在硬盘中(不过视图存储的仅仅是映射,不是具体的表) ##删除视图:(删除视图时必须拥有DROP权限)

视图、触发器、事务、存储过程、函数、流程控制

蹲街弑〆低调 提交于 2019-11-28 08:07:00
一、视图 1.什么是视图 一个查询语句的结果是一张虚拟表,将这种虚拟表保存下来 它就变成了一个视图 2.为什么要用视图 当频繁需要用到多张表的连表结果,你就可以事先生成好视图 之后直接调用即可,避免了反复写连表操作的sql语句 3.如何使用视图 创建视图语句: create view teacher_course as select * from teacher INNER JOIN course on teacher.tid = course.teacher_id; 注意: 1.视图只有表结构,视图中的数据是来源于原来的表 2.不要改动视图表中的数据 3.一般情况下不会频繁的使用视图来写业务逻辑 二、触发器 1.什么是触发器 触发器是达到某个条件自动触发, 当对数据进行增、删、改的情况下会自动触发触发器的运行 2.为何要使用触发器 触发器专门针对我们对某一张表数据增insert、删delete、改update的行为,这类行为一旦执行 就会触发触发器的执行,即自动运行另外一段sql代码 3.固定语法结构 create trigger 触发器的名字 after/before insert/update/delete on 表名 for each row begin sql语句 end 如下: t1为表名 触发器名:tri_befor_t1 在触发器之前或者之后进行插入或更改或删除t1

latch free 等待事件说明

非 Y 不嫁゛ 提交于 2019-11-28 08:06:57
当进程想要获取锁存器而此时该锁存器正被其他进程持有时产生Latch Free(锁存器空闲)等 待事件,类似于排队,Oracle使用锁存器来保护数据结构。一次只能在一个进程在获得锁存器后 修改或检查数据结构。其他需要访问该数据结构的进程必须等到它们获得锁存器后。不同于排队 的是,请求锁存器的进程不需要在队列中等待。如果获取锁存器失败,则进程仅仅等待一小段时 间就可以再次请求锁存器。这一小段等待时间成为“自旋”(spin)。如果在一次或多次自旋重复 (spin iterations)之后还没获取锁存器,进程就休眠一小段时间,然后再次尝试获取锁存器, 接下来休眠更长一段时间,直到获得锁存器。 最常见的锁存器有:cache buffer chains(高速缓存缓冲区链)、library cache(高速缓存) 和shared pool(共享池)。 1、等待参数 latch free的等待参数描述如下: ◎ P1 进程等待的锁存器地址。 ◎ P2 锁存器号,同v$latchname.latch# 要查找等待锁存器的名称,可以是哟功能如下SQL语句: SELECT * FROM v$latchname WHERE latch# = & 2_Value; ◎ P3 尝试的次数;显示进程试图获取锁存器的次数计数器。 2、等待时间 该时间的等待时间呈指数级增长。他不包含进程为锁存器自旋(spin)

数据库join解释 与视图

泪湿孤枕 提交于 2019-11-28 08:06:39
数据库的视图是表运算的结果。 数据库的表是数据单元; join是运算符; 视图是运算结果。 数据库join解释 1、join:将两个表结构连接成一个视图 2、left、right、inner: 从基准表(left、right)中取出一条记录放到内存中(基准记录) 3、on:根据连接条件扫描连接表,有符合条件的记录(匹配记录),将基准记录与匹配记录合并成一个记录,放入连接视图; 基准记录需要与所有匹配记录连接,所以一条基准记录可以与多条匹配记录生成多条视图记录; 4、如果是内连接,无匹配记录的基准记录不计入连接视图;其它两种方式记入连接视图。 join是数据库表的运算,所以可以进行级联操作。 sql语句如下: select * from A left join B on A.aID = B.bID 来源: https://www.cnblogs.com/feng9exe/p/11401218.html

关于SSH与SSM的组成及其区别

痴心易碎 提交于 2019-11-28 08:05:12
前言   当下SpringBoot盛行,咱再聊聊SpringBoot盛行之前的框架组合,当做复习巩固哈。   在聊之前,得先说说MVC,MVC全名是Model View Controller,是模型(model)--视图(view)--控制器(controller)的缩写。M是指业务模型,V是指用户界面,C则是控制器。   一种软件设计典范,用一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑。   本人是在学校的时候学过SSH和SSM,并用该框架组合做了几个私单,算是给大学生活餐加点外快吧,哈哈 一、SSH和SSM的定义:   SSH:指的是Struts2(做前端控制器),Spring(管理各层的组件),Hibernate(负责持久化层)   SSM:指的是SpringMVC(做前端控制器),Spring(管理各层的组件),Mybatis(负责持久化层) 二、SSH和SSM的实现原理:      1、Struts2的原理:       Struts2框架执行过程:   1)、客户端初始化一个指向Servlet容器(例如tomcat)的请求;   2)、这个请求经过一系列的过滤器(Filter),这些过滤器中有一个叫做ActionContextCleanUp的可选过滤器

视图等

拈花ヽ惹草 提交于 2019-11-28 08:02:20
一、视图   1.什么是视图     视图就是通过查询得到一张虚拟表,然后保存下来,下次直接使用即可   2.为什么要用视图     如果要频繁使用一张虚拟表,可以不用重复查询   3.如何用视图 create view teacher2course as select * from teacher inner join course on teacher.tid = course.teacher_id;   强调     1.在硬盘中,视图只有表结构文件,没有表数据文件     2.视图通常是用于查询,尽量不要修改视图中的数据 drop view teacher2course;   思考:开发过程中会不会去使用视图?   不会!视图是mysql的功能,如果你的项目里面大量的使用到了视图,那意味着你后期想要扩张某个功能的时候这个功能恰巧又需要对视图进行修改,意味着你需要先在mysql这边将视图先修改一下,然后再去应用程序中修改对应的sql语句,这就涉及到跨部门沟通的问题,所以通常不会使用视图,而是通过重新修改sql语句来扩展功能 二、触发器   1.什么是触发器     在满足对某张表数据的增、删、改的情况下,自动触发的功能称之为触发器   2.为何要用触发器     触发器专门针对我们对某一张数据增insert、删delete、改update的行为

MySQL 了解知识点

ぐ巨炮叔叔 提交于 2019-11-28 08:01:46
一 视图 二 触发器 三 事务 四 存储过程 五 函数 六 流程控制 一 视图 视图是一个虚拟表(非真实存在),其本质是【根据SQL语句获取动态的数据集,并为其命名】,用户使用时只需使用【名称】即可获取结果集,可以将该结果集当做表来使用。 使用视图我们可以把查询过程中的临时表摘出来,用视图去实现,这样以后再想操作该临时表的数据时就无需重写复杂的sql了,直接去视图中查找即可,但视图有明显地效率问题,并且视图是存放在数据库中的,如果我们程序中使用的sql过分依赖数据库中的视图,即强耦合,那就意味着扩展sql极为不便,因此并不推荐使用 临时表应用举例 一 创建视图 View Code 二 使用视图 #修改视图,原始表也跟着改 mysql> select * from course; +-----+--------+------------+ | cid | cname | teacher_id | +-----+--------+------------+ | 1 | 生物 | 1 | | 2 | 物理 | 2 | | 3 | 体育 | 3 | | 4 | 美术 | 2 | +-----+--------+------------+ 4 rows in set (0.00 sec) mysql> create view course_view as select * from