触发器

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

限于喜欢 提交于 2019-11-28 08:29:42
一、视图   1:什么是视图:       一个查询语句的结果是一张虚拟表,将这种虚拟表保存下来,就形成了一张虚拟表   2:为什么要用视图:       当频繁需要用到多张表的连表结果时,就可以事先生成好视图,基于这张视图的前提上之后的查找直接调用即可,避免了反复写连表操作的mysql语句   3:如何使用视图:     语法:create view 视图名称 as MySQL语句 eg:caeate view teacher_view as select tid from teacher where tname='李平老师' # 如何使用视图 create view teacher2course as select * from teacher inner join course on teacher.tid = course.teacher_id;  4:使用视图注意事项:    (1):视图只是表结果,视图中的数据还是来源于原来的表     (2):创好的视图就不要轻易的改动视图表中的数据,因为它的数据来自原来的表中     (3):一般情况下不会频繁的使用视图来写业务逻辑,数据量过大时消耗空间资源,效率不高 视图是存放到数据库中去的,过分的依赖于数据库中存放的视图,一旦涉及sql语句的修改,就必须去数据库进行修改,通常数据是由专门的DBA来管理的,这样操作起来及其的不便

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

℡╲_俬逩灬. 提交于 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 (

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:47
数据库基本操作(触发器) ##触发器的目的 当你执行一句sql命令后,让mysql自动去完成一件事情 ##触发器应用场景: 转账 这边扣钱了 那么自动加钱 ##触发器创建语法四要素: 1).监视地点(table) :基于表,表示对哪张表进行监控 2).监视事件(insert/update/delete) :用来监听 你执行的语句 3.)触发时间(after/before) :在我执行我的命令之后/之前执行我预设好的命令 4).触发事件(insert/update/delete) :可以有多条语句 ##修改命令结束标识符(这个命令结尾不用分号,直接回车): delimiter $ ##触发器的使用: delimiter $ create trigger tri_1 after insert on `order` for each row begin update commodity set c_num=c_num-new.o_num where c_id=new.o_cid; end$ delimiter ; ##触发器new old(代表新增或者刚刚删除的那条记录) 1)insert语句,只有new是合法的。 2)delete语句,只有old是合法的。 3)update语句,new和old可以同时使用(new代表更新前的数据,old代表更新后的数据) ##查看所有触发器: show

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

蹲街弑〆低调 提交于 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

视图等

拈花ヽ惹草 提交于 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

视图 触发器 事务 存储过程 内置函数 流程控制 索引

一笑奈何 提交于 2019-11-28 07:59:10
视图 一个查询语句的结果是一张虚拟表,将这种虚拟表保存下来,它就变成了一个视图 当频繁需要用到多张表的连表结果,你就可以事先生成好视图,之后直接调用即可,避免了反复写连表操作的sql语句。 create view teacher_course as select * from teacher INNER JOIN course on teacher.tid = course.teacher_id;  1.视图只有表结构,视图中的数据还是来源于原来的表 2.不要改动视图表中的数据 3.一般情况下不会频繁的使用视图来写业务逻辑 触发器 到达某个条件自动触发, 当你在对数据进行增 删 改的情况下会自动触发触发器的运行 触发器分为六种情况 固定语法结构:     create trigger 触发器的名字 after/before insert /update/delete on 表名 for each row     begin       sqly语句     end     create trigger tri_brfore/after_insert /update/delete_t1 after/before insert/update/delete on t1 for each row     begin       sql语句     end 增前

数据库的一些概念

淺唱寂寞╮ 提交于 2019-11-28 07:57:13
视图   什么是视图   视图是一张虚拟表,比如内连接产生的虚拟表   保存下来,下次可以直接使用,而不是下次再重复写一下内连接​​​    为什么要用视图   如果要频繁使用一张虚拟表,使用视图就不用重复查询    如何使用视图   关键字view 和as   ​create view teacher2course as   select * from teacher inner join course on teacher_id = teacher.tid​    强调   1. 在硬盘中,视图只有表结构文件,没有表数据文件   2. 视图通常适用于查询,尽量不要修改视图中的数据   3. 一般情况下不会频繁使用视图:   开发过程中如果项目中大量使用到了视图,   ​那意味着后期想扩张某个功能的时候,恰巧有需要对视图进行修改​​​;   也就意味着需要先在驶入修改,再去SQL语句修改;​   也就意味着涉及跨部门沟通。   所以通常不会使用视图,而是通过重新修改SQL语句来扩展功能​​ 触发器   什么是触发器   达到某种条件,自动触发的功能   例如对某张表的增删改时,自动触发SQL代码执行​    触发器语法     固定语法结构 create trigger 触发器的名字 ​ after/before insert/update/delete ​on 表名 for

视图,触发器,事物...

半腔热情 提交于 2019-11-28 07:46:57
3 视图 触发器 事务 存储过程 内置函数 流程控制 索引 视图 1、什么是视图 视图就是通过查询得到一张虚拟表,然后保存下来,下次直接使用即可 2、为什么要用视图 如果要频繁使用一张虚拟表,可以不用重复查询 3、如何用视图 create view teacher2course as select * from teacher inner join course on teacher.tid = course.teacher_id;    思考:开发过程中会不会去使用视图? 不会!视图是mysql的功能,如果你的项目里面大量的使用到了视图,那意味着你后期想要扩张某个功能的时候这个功能恰巧又需要对视图进行修改,意味着你需要先在mysql这边将视图先修改一下,然后再去应用程序中修改对应的sql语句,这就涉及到跨部门沟通的问题,所以通常不会使用视图,而是通过重新修改sql语句来扩展功能 触发器 在满足对某张表数据的增、删、改的情况下,自动触发的功能称之为触发器 为何要用触发器 触发器专门针对我们对某一张表数据增insert、删delete、改update的行为,这类行为一旦执行 ​ 就会触发触发器的执行,即自动运行另外一段sql代码 创建触发器语法 # 针对插入 create trigger tri_after_insert_t1 after insert on 表名 for each