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

MySQL_05存储过程

时间:2023-04-17 21:00:29浏览次数:49  
标签:存储 end 05 mm duoceshi31 MySQL 过程 select

存储过程

存储过程有哪些优点:

1、存储过程是一个预编译的sql语句

优点:(1):存储过程预编译过得,执行效率高

   (2):存储过程的代码直接放在数据库中,通过存储过程的名称直接调用

   (3):安全性表较高,执行存储需要一定权限用户

   (4):存储过程可以重复使用,可减少开发人员的工作量

   (5):对于单个增删改查语句可以直接封装成一个函数,或者一个集合中,需要的时候可以直接调用,也可以重复使用

   (6):单个sql语句每次执行都需要数据进行编译,而存储过程被创建只需要编译一次后续可以直接调用

   (7):可以防止sql注入

 

缺点:移植性比较差

drop table if exists mm;
create table mm(id int(20) PRIMARY key auto_increment,score int(20));  #创建mm表
insert into mm values(1,67),(2,88);
insert into mm values(3,90),(4,79);
insert into mm values(5,80),(6,97);
drop procedure if exists duoceshi31;   #如果存在duoceshi31这个存储过程名的时候就删除
create procedure duoceshi31(n int)     #创建一个存储过程名称叫duoceshi31,n是一个变量或者形式参数,int是数据类为整型
begin                                  #存储过程的开始
declare i int(20) default(select count(*) from mm);  #声明变量i的默认值是表的行数
#select * from mm;
#select * from mm where id =6;      #不带参数的调用
#select * from mm where id=n;       #带参数的调用
if单分支语句
if n=0 then        #如果n=0时,统计表中的行数
    select count(*) from mm;
else 
    select sum(score) from mm;
end if;

if多分支语句
if n=0 then 
    select count(*) from mm;
else if n>0 and n<=10 then 
    select * from mm order by score;
else if n>10 then 
    select avg(score) from mm;
else 
    select * from mm;
end if;
end if;
end if;

while循环
while n>i DO
    insert into mm(score)values(88);
    set i=i+1;
end while;

select * from mm;
end                                #存储过程的结束

call duoceshi31(8);                #调用存储过程

if 条件判断语句

标签:存储,end,05,mm,duoceshi31,MySQL,过程,select
From: https://www.cnblogs.com/jjm414/p/17327478.html

相关文章

  • MySQL高可用之MHA-02
    续目录配置vip一、keepalived方式二、通过脚本实现VIP切换总结@目录配置vip一、keepalived方式二、通过脚本实现VIP切换总结配置vipvip配置可以采用两种方式,一种通过keepalived的方式管理虚拟ip的浮动;另外一种通过脚本方式启动虚拟ip的方式(即不需要keepalived或者heartbeat类似......
  • MySQL中间件mycat-01
    @目录mycat基础概念Mycat安装部署mycat基础概念1、什么是MyCat一个彻底开源的,面向企业应用开发的大数据库集群支持事务、ACID、可以替代MySQL的加强版数据库一个可以视为MySQL集群的企业级数据库,用来替代昂贵的Oracle集群一个融合内存缓存技术、NoSQL技术、HDFS大数据的新......
  • MySQL高可用-双主(keepalived)
    生产环境中一台mysql主机存在单点故障,所以我们要确保mysql的高可用性,即两台MySQL服务器如果其中有一台MySQL服务器挂掉后,另外一台能立马接替其进行工作。MySQL的高可用方案一般有如下几种:keepalived+双主,MHA,PXC,MMM,Heartbeat+DRBD等,比较常用的是keepalived+双主,MHA和PXC。本节主......
  • MySQL高可用之PXC
    1.PXC简介参考Percona官方https://www.percona.com/software/mysql-database/percona-xtradb-clusterPXC(PerconaXtraDBCluster)是一个开源的MySQL高可用解决方案。它将PerconaServer和XtraBackup与Galera库集成,以实现同步多主复制。基于Galera的高可用方案主要有MariaDBGal......
  • MySQL用B+树(而不是B树)做索引的原因
    众所周知,MySQL的索引使用了B+树的数据结构。那么为什么不用B树呢?先看一下B树和B+树的区别。1.B树维基百科对B树的定义为“在计算机科学中,B树(B-tree)是一种树状数据结构,它能够存储数据、对其进行排序并允许以O(logn)的时间复杂度运行进行查找、顺序读取、插入和删除的数据结构。......
  • 阿里云部署mysql(本地上传)
    1.阿里云试用一个月活动2.选择机器配置为:2核4G内存3M带宽40G云盘centOS7.964位(这个配置刚好吃满优惠)3.将要安装的版本是MySQL8.0.314.到MySQL官网下载,版本为Community版本,对应操作系统是RedHat,操作系统版本是Linux7X865.MySQL8.0.31下载链接6.下载完成后,解压,并使用xsh......
  • mysql优化思路(本地上传)
    MySQL优化从四个方面入手硬件和操作系统层面的优化架构设计层面的优化MySQL程序配置的优化SQL执行的优化1.硬件和操作系统层面的优化硬件层面主要是cpu,内存,网络带宽,磁盘读写操作系统主要是网络配置,应用文件句柄数(这部分优化由DBA或运维完成,加硬件投入解决100%问题,所以要......
  • mysql常用sql语句
    INSERTINTO`test`.`testdb`(`a`,`b`)VALUES(NULL,'2');INSERTINTO`test`.`testdb`(`b`)VALUES('2');imit是mysql的语法select*fromtablelimitm,n其中m是指记录开始的index,从0开始,表示第一条记录n是指从第m+1条开始,取n条。select*fromtablenamelimit2,4......
  • sql2005 OPENDATASOURCE 需要Ad Hoc Distributed Quer
    execsp_configure'showadvancedoptions',1reconfigureexecsp_configure'AdHocDistributedQueries',1reconfigureGOSELECT*FROMOPENDATASOURCE('SQLOLEDB','DataSource=192.168.1.100,1433;UserID=sa;Password=......
  • 浙江省人民医院:以浪潮信息全闪、分布式存储打造医院核心业务数据底座​
    随着信息技术在医疗行业的广泛应用,医院不仅可以通过CT、核磁共振、彩超等多种医学影像检查手段辅助获取更多、更精准的检查数据用于临床诊疗,提升了医疗水平,也将信息化技术应用到医院业务管理形成了数据互联共享的一站式的就诊服务。浙江省人民医院意识到了医疗数据在医院创新发展中......