首页 > 数据库 >mysql 存储过程

mysql 存储过程

时间:2023-11-17 14:33:11浏览次数:52  
标签:insert 存储 varchar -- into values mysql null 过程

存储过程实例

前提准备

  1. 创建表
create table table1(name varchar(10));
create table Matches(
id int(10) auto_increment not null,
MATCHNO int(5) not null,
TEAMNO Varchar(6) not null,
PLAYERNO int(7) not null ,
WON Int(8) not null,
LOST varchar(2),
primary key(id));
create table Players(
 id int(10)  Auto_Increment Not null Primary Key,
 name varchar(20)  Not null,
 age varchar(4) not null,
 gender varchar(4));
  1. 向3张表创建数据
insert into table1 values(78);insert into table1 values('ls');

insert into players  values(1,'lsq',22,'男');insert into Players  values(2,'lqq',23,'女');

insert into Matches values(1,5,6,3,8,9); insert into Matches values(2,2,3,4,3,8);

实例

创建存储过程

Delimiter //
CREATE PROCEDURE first_proc()
BEGIN
drop table table1;
drop table Players;
drop table Matches;
create table table1(name varchar(10));
create table Players(
id int(10)  Auto_Increment Not null Primary Key,
name varchar(20)  Not null,
age varchar(4) not null,
gender varchar(4));
create table Matches(
id int(10) Auto_Increment Not null,
MATCHNO int(5)  Not null,
TEAMNO Varchar(6)  not Null,
PLAYERNO int(7) Not null ,
WON Int(8) not null,
LOST varchar(2),
Primary Key(id));
insert into table1  values(78);insert into table1 values('ls');
insert into Players values(1,'lsq',22,'男');insert into Players values(2,'lqq',23,'女');
insert into Matches values(1 ,5,6,3,8,9); insert into Matches values(2,2,3,4,3,8);
select * from table1;
select * from Players;
select * from Matches;
end;
//
Delimiter ;

执行

call first_proc;

删除存储过程

drop procedure first_proc

语法说明

基本语法

存储过程结构体:

存储过程体包含了在过程调用时必须执行的语句,例如:dml、ddl语句,if-then-else和while-do语句、声明变量的declare语句等
过程体格式:以begin开始,以end结束(可嵌套)
BEGIN
  BEGIN
    BEGIN
      statements;
    END
  END
END

#存储过程变量的声明和使用
DROP PROCEDURE IF EXISTS test;    -- 如果存在指定存储过程则删除它
DELIMITER //           -- 定义存储过程结束符 这里的结束符为//,
CREATE PROCEDURE test() --
BEGIN -- 过程体 开始
    DECLARE aa VARCHAR(20);    -- 定义变量 
    DECLARE bb INT DEFAULT 0;    -- 定义int 类型变量 默认为0;
    SET aa = '张三';   -- 变量赋值
    SELECT aa;        -- 输出变量
    SELECT bb;     -- 存储过程结束出变量
END// 过程体 结束        
CALL test();            -- 调用存储过程

while 循环

循环插入10条数据

drop  PROCEDURE if EXISTS  second_proc -- 如果存在就删除
Delimiter //
CREATE PROCEDURE second_proc(in total int)
begin
    declare beginNumber INT default 0;
     while beginNumber<=total DO -- 循环开始
         insert into table1 values(CONCAT('ls',beginNumber));
        set beginNumber = beginNumber+1;
    end while; -- 循环结束
end;
//
Delimiter ;

call second_proc(10); -- 调用

循环控制(if-else)

#存储过程流程控制语句使用
DROP PROCEDURE IF EXISTS test_2;
DELIMITER //
CREATE PROCEDURE test_2()
BEGIN 
    DECLARE aa INT;        # 定义变量
    DECLARE bb INT;        # 定义变量
    SET aa = 20;        # 变量赋值
    SET bb = 20;        # 变量赋值
    IF aa > bb THEN        # 判断
        SELECT aa;
    ELSEIF aa < bb THEN    # else if 可以有多个
        SELECT bb;
    ELSE             # else 只能存在一个
        SELECT aa+bb;
    END IF;            # 结束if 语句
END//
CALL test_2();            # 调用存储过程


标签:insert,存储,varchar,--,into,values,mysql,null,过程
From: https://blog.51cto.com/u_10632206/8445376

相关文章

  • 浅析开源数据库MySQL架构
    数据库是所有应用系统的核心,故保证数据库稳定、高效、安全地运行是所有企业日常工作的重中之重。数据库系统一旦出现问题无法提供服务,有可能导致整个系统都无法继续工作。所以,一个成功的数据库架构在高可用设计方面也是需要充分考虑的。下面就为大家介绍一下如何构建一个高可用的M......
  • 完蛋!? 我被MySQL索引失效包围了!
    前言一阵熟悉的起床闹钟响起,小菜同学醒来竟发现周围都是导致索引失效的原因:性感迷人的索引使用不当、可爱活泼的存储引擎无法识别索引列、刁蛮任性的优化器不选择索引...知其然更要知其所以然,一起来看看索引为啥失效了吧~在阅读文本前,需要知道聚簇索引、二级索引、回表等知识,如......
  • 线性表A,B顺序存储合并
    7-1线性表A,B顺序存储合并有两张非递增有序的线性表A,B,采用顺序存储结构,两张表合并用c表存,要求C为非递减有序的,然后删除C表中值相同的多余元素。元素类型为整型#include<iostream>#include<cstring>usingnamespacestd;typedefstructf{intdata;f*next;}node,*......
  • 记一次mysqlbinlog恢复数据库数据
    因为一些意外操作,用旧的备份覆盖了最新的数据库数据,导致最近几天内的数据被覆盖掉了。百度了一圈。。用mysqlbinlog恢复比较靠谱,网上查感觉操作也比较简单。。实际吧。费点劲。。 MySQL的Binlog是用于记录数据库中所有操作的日志文件。通过检查日志文件,可以找到误删除的......
  • MySQL中使用范围查询后索引失效问题
    假设我们为表table的a,b,c三列创建了联合索引createindexidx_a_b_contable(a,b,c),并且在B+树中,数据的存储顺序如下:(a=1b=1c=1)(a=1b=2c=1)(a=1b=2c=3)(a=2b=2c=3)(a=2b=2c=5)(a=2b=5c=1)(a=2b=5c=2)(a=3b=0c=1)(a=3b=3c=5)(a=3b=8c=6)使用查询......
  • MySQL高阶知识点(三):吃透索引【转】
    接着之前总结的:索引概述入门,今天全面讲述一下索引相关知识点1.数据库索引是什么?有什么优缺点?索引是一种能提高数据库查询效率的有序的数据结构。它可以比作一本字典的目录,可以帮你快速找到对应的记录。索引一般存储在磁盘的文件中,它是占用物理空间的。其优缺点如下:优点:加快数......
  • 基于数据中台的过程看板助力光伏单晶行业管理提升
    光伏单晶行业是新能源行业中的一个细分行业,在整个产业链中,输入硅料、输出硅片,包括拉晶、机加、切片等三大环节。物流管理,是光伏单晶行业提升管理效率、降低管理成本的重要环节。通常情况,围绕“物流管理”主题,TMS运输管理系统、ERP企业资源计划、WMS仓储管理系统,是常用的管理软件系......
  • MySQL学习
    cmd打开MySQL:mysql-uroot-pDDL(DataDefinitionLanguage数据定义语言):-数据库操作:查询所有数据库:showdatabases;查询当前数据库:selectdatabase();创建数据库:createdatabase[ifnotexists]数据库名[defaultcharset字符集][collate排序规则];删除数据库:dropdataba......
  • 关于MySQL的一些不常用知识及易错总结
    关于用户当我们刚刚登入数据库时,一般是用root用户登录,然后可以用root用户创建普通用户。注意,此处有权限限制,一般用户无法创建特殊或高权限用户,如root用户。创建用户:createuser'user01'@'localhost'identifiedby'user01';createuser'user01'@'%'identifiedby'user0......
  • 已成功与服务器建立连接,但是在登录过程中发生错误。
    已成功与服务器建立连接,但是在登录过程中发生错误。(provider:TCP提供程序,error:0-指定的网络名不再可用。)(MicrosoftSQLServer,错误:64)————————————————版权声明:本文为CSDN博主「ComputerInBook」的原创文章,遵循CC4.0BY-SA版权协议,转载请附上原文出处链接......