mysql事务

第三十九天

删除回忆录丶 提交于 2019-11-28 08:36:33
视图 什么是视图?   一个查询语句的结果是一张虚拟表,将这种虚拟表保存下来,它就变成了一个视图 为什么要用视图? 当频繁需要用到多张表的连表结果,你就可以事先生成号视图之后直接调动即可,避免了反复写连表操作的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 sql语句 end # 详细版本 create trigger tri_before/after_insert/update/delete_t1 after/before insert/update/delete on t1 for each row begin sql语句 end 增前   可以修改MySQL默认的结束符(;)

视图,触发器,事务

∥☆過路亽.° 提交于 2019-11-28 08:34:30
视图   一个SQL查询语句的结果是一张虚拟表,将这种虚拟表保存下来,它就变成了一个视图。   我我们之所以使用视图,是因为当你频繁需要用到多张表的连表结果的时候,你就可以事先生成好视图,之后直接调用即可,避免了反复写连表操作的sql语句。   视图只有表结构,视图中的数据还是来源于原来的表,不要改动视图表中的数据,因为会影响到其它表中的数据 一般情况下不会频繁的使用视图来写业务逻辑。   固定语句     create view 跟视图的名字 as 后面跟虚拟表的名字(就是SQL语句拿到的表) 触发器   到达某个条件自动触发,当你在对数据进行增 删 改的情况下会自动触发触发器的运行,类似一个警报系统,就是你一旦做了某个操作,我就立马执行什么东西。 触发器分为六种情况: 增前; 增后; 改前; 改后; 删前; 删后。   固定语法结构:   create trigger 触发器的名字 after/before insert/update/delete on 表名 for each row   begin   sql语句   end # ror each row 是实时在监测的意思,只要有一条数据被增了,改了或者删了就立马触发 增前   create trigger tri_before/after_insert/update/delete_t1 after/before

Redis入门-第七章 Redis的事务

牧云@^-^@ 提交于 2019-11-28 08:33:13
第七章 Redis的事务 1.redis多数据库: 一个redis可以有多个数据库,可以选择连接不同的数据库,如select 1 连接1号数据库 Move myset 1 从默认数据库移动至1号数据库 2.事务 事务机制,multi exec discard 事务中所有命令串行化顺序执行,执行期间,不会为其他客户端提供任何服务,保证了原子操作。某一命令执行失败,后边的命令依然会被执行。 Multi来开启一个事务,认为是mysql里的aaa,这个命令执行之后,之后执行的命令都被视为是事务里的相关操作。 Exec相当于提交。 Discard相当于回滚。 Multi:开启事务,将后边执行的命令放入命令队列当中,直到执行exec,之后就原子化地执行。 Exec相当于comii Discard相当于roll back? 实际测试 打开多个窗口,开启两个客户端 A窗口:Set num 1 B窗口:Incr num A:multi //开启事务 Incr num Incr num B:get num #依然没有变化 A:exec #提交事务 B:数据发生变化 A:set user tom A:multi A:set user jerry A:discard #发现回滚回了tom 来源: https://blog.csdn.net/sinat_27680127/article/details

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

浪子不回头ぞ 提交于 2019-11-28 08:30:56
day39 1.视图 1.视图.png 1 """""" 2 """ 3 '''视图''' 4 1.什么是视图? 5 一个查询语句的结果是一张虚拟表,将这种虚拟表保存下来 6 它就变成了一个视图 7 8 2.为什么要使用视图? 9 当频繁需要用到多张表的连表结果,那你就可以事先生成好视图 10 之后直接调用即可,避免了反复写连表操作的sql语句 11 12 3.如何使用? 13 create view teacher_course as select * from teacher inner join course on teacher.id = course.teacher_id; 14 15 4.视图的特点? 16 1.视图只有表结构,视图中的数据还是来源于原来的表 17 2.不要改动视图表中的数据 18 3.一般情况下不会频繁的使用视图来写业务逻辑(防止资源消耗) 19 20 """ 1.视图.py 2.触发器 """""" """ 创建表 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代表执行失败 );

Day39 数据库(六) 数据库中的视图、触发器、事务、存储过程、内置函数、流程控制、索引

北城以北 提交于 2019-11-28 08:30:21
一.视图 1.什么是视图   视图就是通过查询得到一张虚拟表,然后保存下来,下次直接使用即可 2.为什么要使用视图   如果频繁的使用同一张虚拟表,可以省下重复查询的时间 3.如何使用视图 # 先使用内连接生成一张虚拟表 SELECT * FROM teacher INNER JOIN course ON teacher.tid = course.teacher_id; # 再把这张虚拟表设置为视图 CREATE VIEW teacher_course AS SELECT * FROM teacher INNER JOIN course ON teacher.tid = course.teacher_id; 生成的视图 强调: 1.在硬盘中,视图只有表结构文件,没有表数据文件 2.视图通常是用于查询,尽量不要修改视图中的数据 删除视图 # 删除视图 drop view teacher_course; 注意:在开发过程中是不会大量的使用视图,因为视图只是一个临时生成的文件,不是我们正常建出来的表,所以一切对视图的增、删、改操作,数据库管理员都不会正规的对待它,修改就涉及到跨部门沟通的问题,所以通常不会使用视图,并且视图也会占用存储空间,我们都是通过重新修改sql语句来扩展功能 二.触发器 触发器就是到达某种条件自动触发的功能,一般都是运用在对数据的增、删

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

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

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

大憨熊 提交于 2019-11-28 08:29:46
一、视图 1.什么是视图? 一个查询语句的结果是一张虚拟表,将这种虚拟表保存下来 它就变成了一个视图2.为什么要用视图? 当频繁需要用到多张表的连表结果,你就可以事先生成好视图 之后直接调用即可,避免了反复写连表操作的sql语句3.视图特点: 1.视图只有表结构,在数据库中只会生成表结构文件,视图中的数据还是来源于原来的表2.不要改动视图表中的数据,一旦改动就会改动原文件数据,并且在多表情况下,因为有关联关系,你也修改不了视图3.一般情况下不会频繁的使用视图来写业务逻辑 4.视图虽好可不要多用:1.视图是存放在数据库中的,如果我们程序中使用的sql过分依赖数据库中的视图,即强耦合,那就意味着扩展sql极为不便。企业中开发和数据库管理是分开的,如果你的大量逻辑都基于视图来写当你需要  新增视图或者修改视图就要跨部门交流,谁管你的吊事,并且人家可能也不会帮你去维护视图,一旦视图被误删或者丢失,你的所有代码都要重新从头再来,因此还是老老实实使用sql原生语句,该连表就连表2.生成一个视图就会生成一个表结构,当视图足够多的时候占用大量资源 #两张有关系的表 mysql> select * from course; +-----+--------+------------+ | cid | cname | teacher_id | +-----+--------+------------+

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

限于喜欢 提交于 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来管理的,这样操作起来及其的不便

day39_8_23mysql的其他内容(视图等)

一曲冷凌霜 提交于 2019-11-28 08:29:35
一。视图   MySQL中有一种比较方便的表,就是视图(view)。   什么是视图?   视图就是通过查询获得一张虚拟表,然后将其保存,下次可以直接使用这个视图。   使用视图就可以不需要重复查询/连接表,在代码层次比较方便。   视图创建的语法: #语法:CREATE VIEW 视图名称 AS SQL语句 create view teacher_view as select tid from teacher where tname='李平老师';   修改了视图里的数据后,原数据表中的数据也会跟着修改,所以,视图只是复制了他的表结构,。   而且,设涉及多个表的视图是无法修改的。 # 修改视图 ALTER VIEW 视图名称 AS SQL语句   删除视图 语法:DROP VIEW 视图名称 DROP VIEW teacher_view   视图不会被频繁的使用。视图是mysql的功能,如果你的项目里面大量的使用到了视图,那意味着你后期想要扩张某个功能的时候这个功能恰巧又需要对视图进行修改,意味着你需要先在mysql这边将视图先修改一下,然后再去应用程序中修改对应的sql语句,这就涉及到跨部门沟通的问题,所以通常不会使用视图,而是通过重新修改sql语句来扩展功能。 二。触发器。   触发器使得当某个操作数据表的增删改之前或者之后,自动触发一些语句。   触发器的操作有:

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

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