mysql创建存储过程

MySQL数据库修改数据表引擎

不想你离开。 提交于 2019-11-28 18:55:02
mysql 表类型说明 MyISAM: 这个是默认类型,它是基于传统的ISAM类型,ISAM是Indexed Sequential Access Method ( 有索引的 顺序访问方法 ) 的缩写,它是存储记录和文件的标准方法。与其他存储引擎比较, MyISAM具有检查和修复表格的大多数工具 。 MyISAM表格可以被压缩,而且它们支持全文搜索。它们不是事务安全的,而且也不支持外键。如果事物回滚将造成不完全回滚,不具有原子性。如果 执行大量 的SELECT,MyISAM是更好的选择 。 InnoDB: 这种类型是事务安全的。它与BDB类型具有相同的特性,它们还支持外键。InnoDB表格速度很快,具有比BDB还丰富的特性,因此如果需要一个事务安全的存储引擎,建议使用它。如果你的数据 执行大量的INSERT或UPDATE ,出于性能方面的考虑,应该使用InnoDB表。 对于支持事物的InnoDB类型的标,影响速度的主要原因是AUTOCOMMI,默认设置是打开的,而且程序没有显式调用BEGIN 开始事务,导致每插入一条都自动Commit,严重影响了速度。可以在执行sql前调用begin,多条sql形成一个事物(即使autocommit打 开也可以),将大大提高性能。 1、查看表状态 SHOW TABLE STATUS LIKE 'corr_alert'; Engine:引擎类型

MySQL数据库—存储过程与函数

隐身守侯 提交于 2019-11-28 18:54:46
目录 一、变量 1、系统变量 (1)全局变量 (2)会话变量 2、自定义变量 (1)用户变量 (2)局部变量 二、存储过程 1、优点 2、存储过程的创建 3、存储过程的调用 4、存储过程的查看 5、存储过程的删除 6、案例 三、函数 1、存储过程和函数的比较 2、函数的创建 3、函数的调用 4、函数的查看 5、函数的删除 6、案例 四、流程控制结构 1、顺序结构 2、分支结构 (1)IF结构 a.IF作表达式 b.IF作语句 (2)CASE结构 a.CASE作表达式 b.CASE作语句 3、循环结构 (1)WHILE (2)LOOP (3)REPEAT 五、案例 一、变量 1、系统变量 系统变量由系统提供,属于服务器层面变量,用户不可以声明 可分为全局变量和会话变量 (1)全局变量 全局变量会在mysql启动时赋初始值,无法夸重启使用,如有需要,应该设置配置文件 用法: #查看所有的全局变量 SHOW GLOBAL VARIABLES ; #查看满足条件的部分全局变量 SHOW GLOBAL VARIABLES LIKE ‘_ % ’ ; #查看某个全局变量 SELECT @ @GLOBAL. 系统变量名 ; #为某个全局变量赋值 SET @ @GLOBAL. 系统变量名 = 值 ; (2)会话变量 会话变量会在新的连接的赋初始值, 作用域为当前连接 ,无法夸连接使用

MySQL实战

旧巷老猫 提交于 2019-11-28 17:29:15
也许,你也跟我一样,在遇到数据库问题时,总时茫然失措,想重启解决问题,又怕导致数据丢失,更怕重启失败,影响业务。 就算重启成功了,对于问题的原因仍不知所以。 本文开始,记录学习《MySQL实战45讲》专栏的过程。 也许有人会问,你记录有什么意义?直接看专栏不就行了吗?你这不是啃别人的剩骨头吗? 是的,这个系列,我只是基于专栏学习,但是我会尽量从我的角度搞懂每一个知识点,遇到不懂得也会将知识点进行拆分。 我知道关注公众号的小伙伴也有很多购买了这个专栏的,我希望大家都能够利用好这个机会,把 MySQL 吃透! 看大家的反馈情况吧,若有需要,可以建个小群,大家互相讨论学习! 下面开始正文。 大家或多或少都用过 MySQL,起码 select 还是会用的吧,但是 select 执行后,MySQL 内部到底发生了什么,你知道吗? 比如,我们有个简单的表 T,它有个 ID 字段,那么我们可以执行下面的语句: 1 mysql> select * from T where ID=10; 语句执行很简单,但是具体到 MySQL 内部,其实是一个完整的执行流程。 从下图就可以清楚地看出 MySQL 的命令执行流程: 从该图可以看出,MySQL 主要分为 server 层和存储引擎层。 server 层中包含连接器,查询缓存,分析器,优化器,执行器,大多数核心功能以及内置函数,存储过程,触发器,视图等。

mysql存储过程详解

做~自己de王妃 提交于 2019-11-28 17:05:46
mysql存储过程详解 1. 存储过程简介 我们常用的操作数据库语言SQL语句在执行的时候需要要先编译,然后执行,而存储过程(Stored Procedure)是一组为了完成特定功能的SQL语句集,经编译后存储在数据库中,用户通过指定存储过程的名字并给定参数(如果该存储过程带有参数)来调用执行它。 一个存储过程是一个可编程的函数,它在数据库中创建并保存。它可以有SQL语句和一些特殊的控制结构组成。当希望在不同的应用程序或平台上执行相同的函数,或者封装特定功能时,存储过程是非常有用的。数据库中的存储过程可以看做是对编程中面向对象方法的模拟。它允许控制数据的访问方式。 存储过程通常有以下优点: (1).存储过程增强了SQL语言的功能和灵活性。存储过程可以用流控制语句编写,有很强的灵活性,可以完成复杂的判断和较复杂的运算。 (2).存储过程允许标准组件是编程。存储过程被创建后,可以在程序中被多次调用,而不必重新编写该存储过程的SQL语句。而且数据库专业人员可以随时对存储过程进行修改,对应用程序源代码毫无影响。 (3).存储过程能实现较快的执行速度。如果某一操作包含大量的Transaction-SQL代码或分别被多次执行,那么存储过程要比批处理的执行速度快很多。因为存储过程是预编译的。在首次运行一个存储过程时查询,优化器对其进行分析优化,并且给出最终被存储在系统表中的执行计划

Mysql Event

扶醉桌前 提交于 2019-11-28 15:26:13
Always Benny&Viva Copyright © 2006 by MySQL AB “MySQL 5.1 新特性” 系列 目录 目 录.........................................................................................................................................1 设定事件并运行......................................................................................................................1 CREATE EVENT 的语法..........................................................................................................2 CREATE EVENT 例子.............................................................................................................5 SET GLOBAL

【MySQL】库的操作

♀尐吖头ヾ 提交于 2019-11-28 15:11:02
原文: http://blog.gqylpy.com/gqy/244 SQL语言主要用于存取数据、查询数据、更新数据和管理关系数据库系统,SQL语言由IBM开发. SQL语言分为3种类型: DDL语句 数据库定义语言 :数据库、表、视图、索引、存储过程,例如CREA TE DROP ALTER DML语句 数据库操纵语言 :插入数据INSERT、删除数据DELETE、更新数据UPDATE、查询数据SELECT DCL语句 数据库控制语言 :例如控制用户的访问权限GRANT、REVOKE show databases; # 查看数据库命令 默认有四个库: information_schema :虚拟库,不占用磁盘空间,存储的是数据库启动后的一些参数.(如:用户表信息、列信息、权限信息、字符信息等) performance_schema :MySQL 5.5开始新增的一个库,主要用于收集数据库服务器性能参数,记录处理查询请求时发生的各种事件、锁等现象. mysql :授权库,主要存储系统用户的权限信息. sys :MySQL 5.7增加的系统数据库,通过这个库可以快速的了解系统的元数据信息. 相关操作 # 求救语法 help create database; # 创建数据库语法 create database 库名 charset utf8; # 查所有数据库 show

【MySQL】库的操作

99封情书 提交于 2019-11-28 15:08:29
原文: http://blog.gqylpy.com/gqy/244 SQL语言主要用于存取数据、查询数据、更新数据和管理关系数据库系统,SQL语言由IBM开发. SQL语言分为3种类型: DDL语句 数据库定义语言 :数据库、表、视图、索引、存储过程,例如CREA TE DROP ALTER DML语句 数据库操纵语言 :插入数据INSERT、删除数据DELETE、更新数据UPDATE、查询数据SELECT DCL语句 数据库控制语言 :例如控制用户的访问权限GRANT、REVOKE show databases; # 查看数据库命令 默认有四个库: information_schema :虚拟库,不占用磁盘空间,存储的是数据库启动后的一些参数.(如:用户表信息、列信息、权限信息、字符信息等) performance_schema :MySQL 5.5开始新增的一个库,主要用于收集数据库服务器性能参数,记录处理查询请求时发生的各种事件、锁等现象. mysql :授权库,主要存储系统用户的权限信息. sys :MySQL 5.7增加的系统数据库,通过这个库可以快速的了解系统的元数据信息. 相关操作 # 求救语法 help create database; # 创建数据库语法 create database 库名 charset utf8; # 查所有数据库 show

mysql查看存储过程

佐手、 提交于 2019-11-28 14:57:07
查询数据库中的存储过程和函数 select `name` from mysql.proc where db = 'xx' and `type` = 'PROCEDURE' //存储过程 select * from mysql.proc where db = 'xx' and `type` = 'PROCEDURE' and name='xx' select `name` from mysql.proc where db = 'xx' and `type` = 'FUNCTION' //函数 show procedure status; //存储过程 show function status; //函数 查看存储过程或函数的创建代码   show create procedure proc_name;   show create function func_name; 查看视图   SELECT * from information_schema.VIEWS //视图   SELECT * from information_schema.TABLES //表 查看触发器   SHOW TRIGGERS [FROM db_name] [LIKE expr]   SELECT * FROM triggers T WHERE trigger_name=”mytrigger” \G 来源:

MySQL 授权用户 ; 存储过程的DEFINER; 命令分隔符DELIMITER

扶醉桌前 提交于 2019-11-28 14:49:28
最近项目中遇到有人使用DEFINER这样的关键字,找了半天没有怎么理解这个意思。以为是限制谁使用这个存储过程,后来测试发现并不是这样。 搜索网上发现很多说法都不正确。看到一篇博客,做了如下介绍,才有所理解。原来是这样。由于记录一下,转载过来。 1. MySQL的用户名都是username@hostname的形式 2. 授权用户的命令:   mysql >grant all privileges on *.* to root@"%" identified by "123" // 123是密码   mysql >flush privileges 以上命令授权root@%用户所有权限,如果root@%用户不存在,则自动创建该用户。也可以借助于Navigate工具设 置。 如果要使新建的帐户也具备建帐户的权限,则要这样: mysql >grant all privileges on *.* to root@"%" identified by "123" with grant option; 3. root@%的意思是允许在任何机器上以root用户访问数据库,也就是说只要数据库存在名为root@%的用户,则 root在任何机器上都可以访问数据库,否则,如果数据库不存在root@%用户,则只有被授权了用户名可以访问数 据库,被授权的用户可以通过Navigate工具查看。 4.

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

醉酒当歌 提交于 2019-11-28 11:14:39
目录 视图 *** 什么是视图 为什么要用视图 如何生成视图 修改视图 --> 最好(千万)不要 关联表数据改动前 关联表数据改动之后 触发器 什么是触发器 触发条件 触发器语法结构 修改mysql的默认结束符(;) 触发器死循环 六个触发器的执行时机 新增前、新增后、删除前、删除后、更新前、更新后 NEW对象指代的就是当前记录(对象) 事务 ***** 什么是事务 事务的四大特性 ACID A:原子性 atomicity C:一致性 consistency I:隔离性 isolation D:持久性 durability 如何开启事务 事务回滚 永久性更改 小案例 存储过程 什么是存储过程 如何创建存储过程 语法结构 案例 定义存储过程 在mysql中调用存储过程 在pymysql中调用存储过程 案例-- 使用存储过程监测事务 函数 MySQL内置函数 常见函数及练习 date_format() 函数(需掌握) 自定义函数 流程控制 if 条件语句 while 循环 索引与慢查询优化 ** 详细内容参考egon 的博客 前言(摘抄) 索引 扩展阅读 常见 索引 索引的本质 索引的缺点 小结 索引的数据结构 -- B+ 树 聚集索引非聚集索引 联合索引 慢查询优化 注意这块的小点能提高sql语句性能 测试索引 正确使用索引 小科普 核心业务逻辑代码一般都是 放在服务端 的