Python11/26--mysql之视图/触发器/事务/存储过程
视图:
1.什么是视图
视图就是通过查询得到一张虚拟表,然后保存下来,下次用的时候直接使用即可
2.为什么用视图
如果要频繁使用一张虚拟表,可以不用重复查询
3.如何用视图
select * from 表1 inner join 表2 on 表1.id = 表2.表1_id ;
注意:1.在硬盘中,视图只有表结构文件,没有表数据文件
2.视图通常是用于插叙,尽量不要修改视图中的数据
触发器:
1.什么是触发器
在满足对某张表数据的增、删、改的情况下(没有查),自动触发的功能称之为触发器
2.为何要用触发器?
触发器专门针对我们对某张表数据的增、删、改的行为,这类行为一旦执行就会启动触发器
,即自动运行另外一段sql代码
3.创建触发器语法
create trigger 触发器的名字 after(也可以用before代表在之前触发) insert(可以换成delete,update) on 表名 for each row(结尾这三个是固定语法) 释义:在这个表名插入一条记录 之后触发一条触发器的行为
begin
当上门的create 触发器 触发时,自动执行 这段sql代码。。
end
触发器这样命名会好一点: 触发器名_after_insert_哪张表名
事务:
1.什么是事务
开启一个事务可以包含一些sql语句,这些sql语句要么同时成功,要么都不能成功,称之为事务的 原子性
2.事务的作用
可以监测一系列操作的安全性、准确性,可以对事务控制范围内的数据进行回滚等操作
3.怎么使用事务
start transaction #开启事务
开始执行sql 语句。
可以执行rollback 回滚到修改数据之前的状态
在没有执行commit之前这些修改的任何操作数据都不会刷新到硬盘
存储过程:
1.定义:存储过程包含了一系列可执行的sql语句,存储过程存放于mysql中,通过调用他的名字可以执 行其内部的一堆sql
2.三种开发模型:
1、应用程序:只需要开发应用程序的逻辑
mysql:编写好存储过程,用来给应用程序调用
优点:开发效率,执行效率都高
缺点:考虑到人为因素、跨部门沟通等问题,会导致扩展性差
2、应用程序:除了开发应用程序的逻辑,还需要编写原生sql
mysql:
优点:比方式1 拓展性高(非技术层面)
缺点:开发效率、执行效率都不如方式1,编写原生sql太过于复杂,需要考虑sql语句的优化
3.应用程序:开发应用程序的逻辑,不需要编写原生的sql,基于别人编写好的框架来处理数据,
mysql:
优点:不用再编写纯生sql,这意味着开发效率要比方式2高 ,同时拓展性也高
缺点:执行效率连方式2 都不如
3.创建存储过程:
create procedure 存储过程名(可传参)
begin
sql语句
end
call 存储过程名(可传参) # call 是调用
2
Python11/26--mysql之视图/触发器/事务/存储过程的更多相关文章
- MySQL拓展 视图,触发器,事务,存储过程,内置函数,流程控制,索引,慢查询优化,数据库三大设计范式
视图: 1.什么是视图 视图就是通过查询得到一张虚拟表,然后保存下来,下次直接使用即可 2.为什么要用视图 如果要频繁使用一张虚拟表,可以不用重复查询 3.如何使用视图 create view tea ...
- MySQL 视图触发器事务存储过程函数
事务 致命三问 什么是事务:开启了一个包含多条SQL语句的事务,这些SQL语句要么都执行成功,要么有别想成功:例如A向B转账,二人账户并不属于一家银行,在转账过程中由于网络问题,导致A显示转账 成功 ...
- mysql 查询表,视图,触发器,函数,存储过程
1. mysql查询所有表: SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = '数据库名' AND TAB ...
- MySQL 视图 触发器 事务 存储过程 函数 流程控制 索引与慢查询优化
视图 1.什么是视图? 视图就是通过查询得到的一张虚拟表,然后保存下来,下次可直接使用 2.为什么要使用视图? 如果要频繁使用一张虚拟表,可以不用重复查询 3.如何使用视图? create view ...
- MySQL——视图/触发器/事务/存储过程/函数/流程控制
一 视图 视图是一个虚拟表(非真实存在),其本质是[根据SQL语句获取动态的数据集,并为其命名],用户使用时只需使用[名称]即可获取结果集,可以将该结果集当做表来使用. 使用视图我们可以把查询过程中的 ...
- MySQL视图,触发器,事务,存储过程,函数
create triggr triafterinsertcmdlog after insert on cmd_log FOR EACH ROW trigger_body .#NEW : 代表新的记录 ...
- MySQL_视图/触发器/事务/存储过程/函数
视图.触发器.事务.存储过程.函数 视图 视图是一个虚拟表(非真实存在),其本质是根据SQL语句获取动态的数据集,并为其命名,用户使用时只需使用名称即可获取结果集,可以将该结果集当作表来使用 #创建视 ...
- python mysql 视图 触发器 事物 存储过程 用户授权 数据备份还原
###################总结########### 视图是一个虚拟表(非真实存在) 是跑在内存中的表,真实表是在硬盘上的表 使用视图我们可以把查询过程中的临时表摘出来,保存下来,用视图去 ...
- Mysql学习---视图/触发器/存储过程/函数/执行计划/sql优化 180101
视图 视图: 视图是一个虚拟表(非真实存在),动态获取数据,仅仅能做查询操作 本质:[根据SQL语句获取动态的数据集,并为其命名],用户使用时只需使用[名称]即可获取结果集,并可以将其当作表来使用.由 ...
随机推荐
- LeetCode【83. 删除排序链表中的重复元素】
我最开始的程序是 但是结果
- React.js 学习总结
1.用React的优越性 独立,小巧,快速 ReactDOM 会构建一个虚拟的DOM tree, 只有DOM tree 的某个部分发生变化,便重新渲染某个部分. React 判断DOM 是否重新渲染的 ...
- 0003 - 基于xml的Spring Bean 的创建过程
一.目录 前言 创建 Bean 容器 加载 Bean 定义 创建 Bean Spring Bean 创建过程中的设计模式 总结 二.前言 2.1 Spring 使用配置 ApplicationCont ...
- python-web自动化-元素操作:windows窗口切换 / alert切换 / iframe切换
1. windows窗口切换:切换到要操作的窗口 有多个窗口: 1. 触发新窗口的出现 2. 得知道新窗口是谁 -- 依据窗口的window_handle来识别窗口 3. 得到窗口的window_ha ...
- 手把手教你如何用 OpenCV + Python 实现人脸识别
下午的时候,配好了OpenCV的Python环境,OpenCV的Python环境搭建.于是迫不及待的想体验一下opencv的人脸识别,如下文. 必备知识 Haar-like 通俗的来讲,就是作为人脸特 ...
- virtual 函数只有在用指针或引用的方式访问,才会导致多态。
只有用指针和引用,才会动态绑定.才会在运行时候从虚表中找对应的成员函数. 如果只是用.访问成员函数,是静态绑定,在编译时刻就固定好的. 另外,父类的虚函数,子类不管加不加virtual关键字,都是虚函 ...
- MySql 的基本使用之连接数据库、选择数据库、查看表结构
1.连接 mysql mysql -u username -p -h host -P port 端口号:默认 3306. 如果是连接本地数据库,可以直接使用 mysql -uroot -p 2.选 ...
- 最适合入门的Laravel中级教程(二)用户认证
之前的初级教程主要是学习简单的增删改查: 接着的中级教程的目标是在初级教程的基础上能写出更复杂更健壮的程序: 我们先来学习 laravel 的用户认证功能: 在现代网站中基本都有用户系统: 而我们每开 ...
- Android Studio Intent使用(显式、隐式)
https://blog.csdn.net/u012005313/article/details/47006689 使用Intent能够使程序在不同活动中跳转,意及能够使用不同界面.Intent用法分 ...
- Windows驱动开发VS2012 DDK/WDK的环境配置
[开发Windows驱动的配置是很必要的,下文将详细介绍VS2012如何配置驱动开发环境] [转载] 以下部分内容是转载博客:http://blog.csdn.net/huangxy10/articl ...