mysql创建存储过程

mysql存储过程简单实例 变量赋值 游标遍历

萝らか妹 提交于 2019-11-27 11:26:57
应用场景: 有两张表,学生表和对应的各科成绩表。 学生表student 字段: id int , name varchar(20) 数值: 1 A 2 B 成绩表score 字段: id int studentid int subjectid int score int 数值: 1 1 1 80 2 1 2 90 3 1 3 100 4 2 1 60 5 2 2 70 用存储过程来通过名字获取对应学生的成绩最大值的科目名称。本例的逻辑比较简单,用一句sql就可以实现,这里只是演示存储过程的基本语法。 创建存储过程: delimiter // create procedure getMaxScore(IN `xname` varchar(20)) begin declare max_score INT default 0; declare cur_score INT; declare b int default 0; DECLARE cur_1 CURSOR FOR select score from score where studentid=(select studentid from student where name = xname); DECLARE CONTINUE HANDLER FOR NOT FOUND SET b = 1; OPEN cur_1; FETCH

MySQL存储过程详解(正文)

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

MySQL存储过程实例

做~自己de王妃 提交于 2019-11-27 11:22:51
(作者:陈玓玏) 定义 存储过程在我的理解里,类似函数的定义,设定好了函数的输入、输出参数、类型,写好了流程,存在数据库里,想用的时候随时可以调用,不需要重新写sql语句,效率很高。而且一般的sql语句间没有逻辑控制,利用存储过程却可以完成很复杂的逻辑控制,加上优化的sql算法,灵活性和功能性都大大提高。 存储过程的结构 语法:CREATE PROCEDURE 过程名([[IN|OUT|INOUT] 参数名 数据类型[,[IN|OUT|INOUT] 参数名 数据类型…]]) [特性 …] 过程体 参数 存储过程根据需要可能会有输入、输出、输入输出参数,如果有多个参数用”,”分割开。MySQL存储过程的参数用在存储过程的定义,共有三种参数类型,IN,OUT,INOUT: IN参数的值必须在调用存储过程时指定,在存储过程中修改该参数的值不能被返回,为默认值 OUT:该值可在存储过程内部被改变,并可返回 INOUT:调用时指定,并且可被改变和返回 在哪里定义?在哪里执行? 我用的是MySQL-Front,在数据库名上点击右键,新建过程就可以创建存储过程,在数字1标记的地方点击右键,新建过程,创建存储过程,在数字2标记的地方调用存储过程,当然,也可以通过python连接数据库来调用,在数字3标记的地方查看运行结果。 有例子吗? -- 输入参数例子 CREATE PROCEDURE in

初识数据库

。_饼干妹妹 提交于 2019-11-27 10:59:25
数据库的概念 数据库的定义   可以理解为 数据库 是一个可以在一台机器上独立工作的,并且可以给我们提供高效、便捷的方式对数据进行增删改查的一种工具。   将所有的数据都存储在一个独立的机器上,而对用户提供服务的机器只是存放你写的代码。 数据库的优势   1.程序稳定性 :这样任意一台服务所在的机器崩溃了都不会影响数据和另外的服务。   2.数据一致性 :所有的数据都存储在一起,所有的程序操作的数据都是统一的,就不会出现数据不一致的现象   3.并发 :数据库可以良好的支持并发,所有的程序操作数据库都是通过网络,而数据库本身支持并发的网络操作,不需要我们自己写socket   4.效率 :使用数据库对数据进行增删改查的效率要高出我们自己处理文件很多 认识数据库 什么是数据(Data)   描述事物的符号记录称为数据,描述事物的符号既可以是数字,也可以是文字、图片,图像、声音、语言等,数据由多种表现形式,它们都可以经过数字化后存入计算机   在计算机中描述一个事物,就需要抽取这一事物的典型特征,组成一条记录,就相当于文件里的一行内容,如: 1 hui,不详,83,1935,山东,oldboy 单纯的一条记录并没有任何意义,如果我们按逗号作为分隔,依次定义各个字段的意思,相当于定义表的标题 id,name,sex,age,birth,born_addr,company # 字段/列名

MySQL 日常维护 文档 V1.0

半世苍凉 提交于 2019-11-27 10:58:55
MySQL 日常维护 其中第一至第六 , 每天都需要执行 , 第七到第九定期执行 (1 周或者 2 周一次? ) 一 检查数据库运行状态 1 通过 putty.exe 登录远程数据库服务器 , 在 shell 命令行里面执行 : Shell > service mysqld status; 则表示数据库正在运行之中 2 检查错误日志 进入 /usr/local/mysql/var/, 查看错误日志,例如 sh-192-168-250-40.chinascopefinancial.com.err 。看近期 mysql 在运行中是否有错误异常发生。 比如发现类似错误: 090418 19:59:11 [ERROR] Got error 127 when reading table ‘./csf/ms_company’ 对于 127 以及 126 的类似错误,可以采取如下解决措施: (1) 进入 mysql 窗口执行: Mysql> repair csf. ms_company ; (2) 进入 shell 命令窗口: Shell> myisamchk /usr/local/mysql/var/csf/ ms_company.MYI 【】在线修复的时候,要保证没有程序在访问要修复的表。 3 检查备份日志 检查前一天的备份的日志,看备份是否成功完成,或者备份过程中出 现什么错误提示。 4

python MySql

浪尽此生 提交于 2019-11-27 08:47:25
初识数据库 数据库优势 程序稳定性:程序崩溃不会影响数据和服务 数据一致性:所有数据存储在一起 并发:数据库本身支持并发 效率:使用数据库对数据进行的增删改查效率要高 数据: 描述事物的符号记录称为数据 (Data) 数据库: 专门用来存储数据 (DataBase,简称DB) mysql: 数据库软件 (DataBase Management System 简称DBMS) 数据库管理员 管理数据库软件(DBA) 数据库服务器-:运行数据库管理软件 数据库管理软件:管理-数据库 数据库:即文件夹,用来组织文件/表 表:即文件,用来存放多行内容/多条记录 数据库分类 关系型数据库(表结构):  特点相对慢,数据关联性强  关系型数据库 : mysql oracle sqllite sql server db2 access 非关系型数据库(key,value):  特点相对快,数据与数据的关联性小  非关系型数据库 : redis mongodb memcache区别:  关系型数据库存储效率相对低,数据与数据之间关联紧密  关系型数据库存储效率相对高,数据与数据之间的关系是key:value Mysql语句分为三种(了解)   DDL 语句, 数据库定义语言:数据库,表,视图,索引,存储过程,例如create,drop,alter   DML 语句,数据库操纵语言:插入、删除、更新

PHP调用MYSQL存储过程实例

蹲街弑〆低调 提交于 2019-11-27 06:22:29
实例一:无参的存储过程 $conn = mysql_connect ('localhost','root','root') or die ("数据连接错误!!!" ); mysql_select_db ('test', $conn ); $sql = " create procedure myproce() begin INSERT INTO user (id, username, sex) VALUES (NULL, 's', '0'); end; " ; mysql_query ( $sql ); // 创建一个myproce的存储过程 $sql = "call test.myproce();" ; mysql_query ( $sql ); // 调用myproce的存储过程,则数据库中将增加一条新记录。 实例二:传入参数的存储过程 $sql = " create procedure myproce2(in score int) begin if score >= 60 then select 'pass'; else select 'no'; end if; end; " ; mysql_query ( $sql ); // 创建一个myproce2的存储过程 $sql = "call test.myproce2(70);" ; mysql_query ( $sql );

mysql存储过程详解以及PHP调用MYSQL存储过程实例

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

mysql show命令集合

痴心易碎 提交于 2019-11-27 06:20:06
a. show tables或 show tables from database_name; -- 显示当前数据库中所有表的名称 b. show databases; -- 显示 mysql 中所有数据库的名称 c. show columns from table_name from database_name; 或 show columns from database_name.table_name; -- 显示表中列名称 d. show grants for user_name; -- 显示一个用户的权限,显示结果类似于grant 命令 e. show index from table_name; -- 显示表的索引 f. show status; -- 显示一些系统特定资源的信息,例如,正在运行的线程数量 g. show variables; -- 显示系统变量的名称和值 h. show processlist; -- 显示系统中正在运行的所有进程,也就是当前正在执行的查询。大多数用户可以查看他们自己的进程,但是如果他们拥有process权限,就可以查看所有人的进程,包括密码。 i. show table status; -- 显示当前使用或者指定的database中的每个表的信息。信息包括表类型和表的最新更新时间 j. show privileges; --

【MySQL】库的操作 -- 2019-08-11 19:23:05

拥有回忆 提交于 2019-11-27 00:12:28
原文: http://106.13.73.98/__/18/ 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 databases;