文章以MYSQL存储过程批量添加、删除数据表字段为例,展现了MYSQL存储过程在数据分析中快速对大批量数据进行重复性操作的能力,大幅度提升数据表处理效率。
先在数据库系统下建立数据库和数据表。为后面的事项做准备,这里创建名为top1的数据库,在top1数据库下创建名为table1、table2的两个数据表。下图是创建表table1后的字段描述截图。
create database top1;#建库 use top1;#用库 create table table1(default1 int primary key AUTO_INCREMENT);#建表1,添加自增字段为主键 create table table2(default1 int primary key AUTO_INCREMENT);#建表2,添加自增字段为主键 1234
建立一个储存过程,实现对数据表的批量添加、删除字段功能,并且能够指定修改的数据表、修改字段的数量、名称,通过下面的代码可以创建。
create database top1; use top1; create table table1(default1 int primary key AUTO_INCREMENT); create table table2(default1 int primary key AUTO_INCREMENT); drop procedure xz; delimiter // -- 修改结束符 create procedure alter_change(in n1 int,in n2 int,in tablename char(10),in zdname char(10)) -- 创建名为alter_change的储存过程,参数:n1(=1:添加,=2:删除)、n2(修改字段的数量,数字型) -- 数据表名(字符型)、字段名(字符型) begin declare i int default 1; -- 定义局部变量 declare num varchar(2); set @qcod =concat('alter table ',tablename,' ');if n1 =2 then-- 控制流while i<n2 doset num=cast(i as char(2));set @qcod =concat(@qcod,'drop ',zdname,num,' ,');set i=i+1;end while; set @qcod = concat(@qcod, 'drop ',zdname,cast(n2 as char(2)),';'); elseif n1=1 thenwhile i<n2 doset num=cast(i as char(2));set @qcod =concat(@qcod,'add ',zdname,num,' char(1) not null,');set i=i+1;end while;set @qcod = concat(@qcod, 'add ',zdname,cast(n2 as char(2)),' char(1) not null;');else set @qcod='参数错误';end if; end // delimiter ; -- 还原结束符
1234567891011121314151617181920212223242526272829303132333435call alter_change(1,3,'table1','cnameid');#调用储存过程alter_change为表table1添加三个字段名为nameid(序号为1, -- 2,3)的字段 select @qcod;-- 检查储存过程的sql语句 prepare t from @qcod;-- sql语句无误后执行预处理 execute t; desc table1;-- 查看通过储存过程修该改后的表table的字段描述 12345678
通过call alter_change(1,3,'table1','cnameid')调用储存过程alter_change,为表table1添加了三个字段,字段名分别为nameid1、nameid2、nameid3。结果如下图:
在实际的数据分析工作中,文中创建的储存过程显得太低级。不过没关系,万丈高楼平地起,在该储存过程的基础上不断升级就可以了!当然,不同的业务数据、需求也需要创建对应的储存过程来处理。欢迎评论留言,谢谢!
相关知识
mysql从表中获取用户最高出价
MySQL优化笔记(三)
Mysql重点知识
MySQL优化系列(三)
MySQL优化之索引优化
Oracle存储过程语法学习
MySQL if else相关函数
MySQL常见问题与解决方案详述
SQL查询与索引优化
国产化数据迁移:从Oracle到MySQL平台的数据无缝迁移工具
网址: 【MYSQL】存储过程在批量处理数据表中的应用 https://m.huajiangbk.com/newsview1450675.html
上一篇: 小学生《落花生》读后感八篇.do |
下一篇: 水生植物种植基地直销 盆栽荷花苗 |