千家信息网

如何进行MySQL存储

发表于:2026-10-31 作者:千家信息网编辑
千家信息网最后更新 2026年10月31日,今天就跟大家聊聊有关如何进行MySQL存储,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。一、存储过程存储过程是在大型数据库系统中一组为了完成特
千家信息网最后更新 2026年10月31日如何进行MySQL存储

今天就跟大家聊聊有关如何进行MySQL存储,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。

一、存储过程

存储过程是在大型数据库系统中一组为了完成特定功能的SQL语句集,存储在数据库中。存储过程经过第一次编译后,再次调用不需要编译,用户可以通过指定的存储过程名和给出一些存储过程定义的参数来使用它。存储过程就是为以后使用而保存的一条或多条SQL语句,个人理解跟函数类似,一般用的较少。

好处:

  1. 通过把处理封装在一个易用的单元中,可以简化复杂的操作。
    2.不需要反复建立一系列的处理步骤,因而保证了数据的一致性。
    3.简化了对变动的管理,这一点的延伸就是安全性。
    4.存储过程通常以编译过的形式存储,所以DBMS处理命令所需的工作量少,提高了性能。

缺点:

1.可移植性差
2.对于简单的SQL语句,存储过程没什么优势
4.如果只有一个用户使用数据库,那么存储过程对安全也没什么影响
5.团队开发时需要先统一标准,否则后期维护成本大
6.在大并发量访问的情况下,不宜写过多涉及运算的存储过程
7.业务逻辑复杂时,特别是涉及到对很大的表进行操作的时候,不如在前端先简化业务逻辑

二、存储过程语法格式

一般形式

create procedure [过程名]([in|out|inout] [参数名] [参数类型],...)begin    [SQL语句集;]end

在定义参数部分时in表示传入参数,读取外部变量值赋给内部参数,但内部参数的作用域仅限存储过程;out表示传出参数,将内部参数传递到外部变量;inout既有in的功能,又用out的功能,属于in与out的结合体。在都不写的情况下,默认使用in选项
但是,由于SQL语句集部分一样使用的是分号(;)作为分隔符,所以要在创建存储过程前使用delimiter重新定义分隔符,并在创建完成后将分隔符还原。delimiter [新分隔符]

完整格式

delimiter [新分隔符]create procedure [过程名]([in|out|inout] [参数名] [参数类型],...)begin    SQL语句集;         end[新分隔符]delimiter;

三、存储过程创建举例说明:

1.创建单条SQL存储过程select_id(),(没什么实际意义,仅仅举例)

delimiter //create procedure select_id(inout id_inout int)begin    select user_id from user where user_id=id_inout;        end//delimiter;##创建存储过程select_id()

2.创建好存储过程select_id()后,会保存在数据库中。如果创同名的存储过程会报错,若要创建相同名称的存储过程,需要删除后方可创建。

PROCEDURE select_id already exists
  1. 创建多条SQL存储过程select_ids()

delimiter $$create procedure select_ids()begin    select user_id from user;               select customer_id from user;       end$$delimiter;

四、调用存储过程

调用存储过程很简单,call [过程名](@[外部参数名],.

调用select_id()

set@user_id=62356;call select_id(@user_id);或者call select_id(62356)

调用select_ids()

call select_ids();

五、查看存储过程

1.查看存储过程具体内容

show create procedure test.select_id;

2.查看存储过程状态

show PROCEDURE status;

六、删除存储过程

drop procedure [过程名];

drop procedure test.select_id;

七、SQL语句集延伸说明

1)定义存储过程的内部变量

  定义变量语句:declare [变量名,...] [变量类型] [default 默认值];

  赋值语句:set [变量名]=[表达式];

  可以一次定义多个同类型的变量,并且设置初始值。

2)多层嵌套

mysql> delimiter //mysql> create procedure select3()    -> begin    -> declare name varchar(20) default '学生';    -> select name;    -> begin    -> declare name varchar(20) default '老师';    -> select name;    -> end;    -> end //Query OK, 0 rows affected (0.00 sec)mysql> delimiter ;

3)条件语句

if语句

if [判断语句] then[执行内容]end if;if [判断语句] then[执行内容]else[执行内容]end if;

case语句

case [变量名]when [值] then[执行内容]when [值] then[执行内容]...else[执行内容]end case;

循环语句

while语句,先判断后运行

while [判断语句] do[执行内容]end while
mysql> create procedure `while`(in num int)    -> begin    -> declare var int;    -> set var=0;    -> while var set var=var+1;    -> end while;    -> select var;    -> end //

repeat语句,先运行后判断

repeat[执行内容]until [判断语句]end repeat;
mysql> create procedure `repeat`(in num int)    -> begin    -> declare var int;    -> set var=0;    -> repeat    -> set var=var+2;    -> until var>num    -> end repeat;    -> select var;    -> end //

loop语句,运行直到遇到leave

[标签名]:loop[执行内容]leave [标签名][执行内容]end loop;
mysql> create procedure `loop`(in num int)    -> begin    -> declare var int;    -> set var=0;    -> label1:loop    -> set var=var+2;    -> if var>num then    -> leave label1;    -> end if;    -> end loop;    -> select var;    -> end //

看完上述内容,你们对如何进行MySQL存储有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注行业资讯频道,感谢大家的支持。

存储 过程 语句 内容 参数 变量 分隔符 数据 数据库 类型 没什么 功能 处理 编译 运行 复杂 安全 业务 多条 就是 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网科技有限公司 上海睿民互联网科技有限公司 广州淘业互联网络科技 互联网中国科技 互联网科技开发公司 北京互联网科技 互联网金融与金融科技 九亚互联网科技 山东吉时兔互联网科技有限公司 现代科技和互联网有关系吗 移动互联网科技股 汽车互联网创新科技园 金融科技与互联网金融相同和不同 互联网经济与金融科技 群盈汇互联网科技有限公司 昆明中奇联合互联网科技 全球科技与互联网公司市值变化 互联网领先科技活动 杭州融税互联网科技有限公司 科技互联网专业务虚会材料 江苏根荣互联网科技 互联网 的科技创新 互联网高科技企业 成都仁贤领冠互联网科技有限公司 小米互联网科技园设置 武汉健翔互联网络科技有限公司 科技信息时代互联网发展 绵阳真晨互联网科技有限公司 互联网科技博主张洲 科技互联网专业务虚会材料
0