mysql 备份html数据_MySQL自动化生成HTML页面(导出数据)极限SQL编程-sql文件怎么打开...

95e9d48af5ba69ed5aa2ff796efc6aab.png

今日客户要求表内的数据依据某种分组生成HTML页面进行展示,一般处理这种需求直接上编程工具就好了,从数据库里读取数据,根据规则生成字符串,最后将字符串写出到文件。由于需求比较急,作为数据库编程系列文章,如果能用SQL实现首选还是SQL,这样处理既直接又快速,不过针对SQL要真的有耐心和信心写完,调试更是崩溃。由于要写出文件到硬盘,最后还是选择MySQL作为数据库工具,Navicat作为开发工具。

有两张表计划表、市县表,二者依靠市县编码(sxbm)进行等值连接,计划表内含有各个学校投放在各个市县的专业代号(zydh),专业名称(zymc)、招生备注(bz)、学制(xz)、要求的学历(xl)、计划数(jh)等字段组成的计划信息,院校编码(yxbm)为学校的两位数编码,院校代号(yxdh)为院校编码(yxbm)+市县编码(sxbm)组成的四位数编码,院校代号其实可以区分出学校在哪个市县的投档的专业计划。要求以学校为单位创建HTML页面,页面首先要以市县作为表格分割,然后根据专业代号排序。具体实现过程如下:

创建计划表:CREATE TABLE `zzjh2019v` (

`YXDH` varchar(9) COMMENT '学校代号',

`YXMC` varchar(54) COMMENT '学校名称',

`ZYDH` varchar(2) COMMENT '专业代号',

`ZYMC` varchar(28) COMMENT '专业名称',

`XZ` varchar(3) COMMENT '学制',

`XL` varchar(4) COMMENT '学历',

`JH` varchar(6) COMMENT '招生计划数',

`BZ` varchar(200) COMMENT '备注',

`yxbm` char(2) COMMENT '学校编码',

`sxbm` char(2) COMMENT '市县编码'

) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_bin ROW_FORMAT = Compact;

创建市县编码表:CREATE TABLE `sx` (

`sxbm` char(2) COMMENT '市县编码',

`sxmc` varchar(20) COMMENT '市县名称'

) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_bin ROW_FORMAT = Compact;

纠结了很久这个东西怎么写,最后采取游标、拼接字符串、字符串聚合,动态SQL,写文件等一些列操作完成需求,创建的存储过程如下:CREATE DEFINER=`root`@`localhost` PROCEDURE `splitjh`()

BEGIN

declare done INT DEFAULT 0;

declare pyxbm char(2);

declare psxmc varchar(10);

declare pyxmc varchar(50);

declare pjhall int;

declare pjhrows TEXT;

declare yxjh cursor

for

select yxbm,yxmc,sum(jh) jhall from zzjh2019v a,sx b where a.sxbm=b.sxbm group by yxbm,yxmc order by yxbm;

declare CONTINUE HANDLER FOR SQLSTATE '02000' SET done = 1;

open yxjh;

fetch yxjh into pyxbm,pyxmc,pjhall;

while done !=1 do

select group_concat(jhrow separator '') into pjhrows from

(select concat('

',yxdh,'',yxmc,'在 ',b.sxmc,' 招生计划如下',sum(jh),'',group_concat('',zydh,'',zymc,'(',bz,')',jh,'',xz,'',xl,'' order by zydh separator '')) jhrow

from zzjh2019v a,sx b where yxbm=pyxbm and a.sxbm=b.sxbm group by yxdh order by yxdh,zydh) jhs;

set @pfilename = concat('''d:/32/1/1/jh11',pyxbm,'.html''');

set @sql =concat('select concat(''

3+2计划

代号专业及名称备注人数学制学历

prepare execsql from @sql;

execute execsql;

DEALLOCATE PREPARE execsql;

fetch yxjh into pyxbm,pyxmc,pjhall;

end while;

close yxjh;

END;

首先看效果,执行过程call splitjh();

在磁盘形成的HTML文件效果如下图(数据有一定的敏感性,进行了遮挡处理):

44f9d246416484404a754b513fd94238.png

文件展示页面

生成的文件列表如下图:

1061aa146b9179736c948bd612d44015.png

生成的文件列表

这里一共有87所学校,所以生成了87的文件,添加CSS样式文件,让表格呈现如前图所示。

技术点

1)MySQL的游标,以及循环读取游标的方法,涉及的语句如下:declare yxjh cursor

for

select yxbm,yxmc,sum(jh) jhall from zzjh2019v a,sx b where a.sxbm=b.sxbm group by yxbm,yxmc order by yxbm;#游标定义

declare CONTINUE HANDLER FOR SQLSTATE '02000' SET done = 1;#游标循环条件,注意此句一定要定义在游标之后,才起作用

open yxjh;#打开游标

fetch yxjh into pyxbm,pyxmc,pjhall;#将游标行内容赋值给变量。

2)执行动态SQL,由于MySQL into outfile 后接的文件名不能为变量,所以必须使用动态SQL的方法,涉及的语句如下:prepare execsql from @sql;#从一个变量准备一个动态sql,注意execsql不用提前定义

execute execsql;#执行准备好的语句

DEALLOCATE PREPARE execsql;#销毁语句

综上就是使用MySQL数据库,并借用MySQL写文件的方式将数据从数据库内按照需求导出文件,为何不用navicat导出呢?因为无法达到要求,又是聚合、又是格式,所以只能自己编写过程通过SQL语句拼接字符串的方式来实现。没有太多的技术难度,主要是想法和调试难度。后续在此基础上又开发了以市县为单位创建HTML文件,各招生学校作为分割的过程。本案例是实际需求催生出来的做法,在遇到这样的需求前你是先想到SQL还是先想到开发工具呢?从实际效果看使用SQL这种方式更加灵活。这样的SQL实现的字符串拼接是不是有点极限呢?

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/343896.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

什么是数据光端机?数据光端机的作用有哪些?

数据光端机,电信非压缩光端机,就是将多个E1(一种中继线路的数据传输标准,通常速率为2.048Mbps,此标准为中国和欧洲采用)信号变成光信号并传输的设备。那么,什么是数据光端机?数据光端…

【渝粤教育】电大中专幼儿园组织与管理 (10)作业 题库

作业视频教务托管,壹叁路路贰陆陆壹〇肆〇 ( )是指一定组织中的管理者,通过计划、组织、领导与控制,协调他人的活动,带领人们既有效果,又有效率去实现组织目标的过程。 A.指导 B.协调 C.指挥 D.管理 错误 正确答案&…

spring创建web项目_使用Spring WS创建合同优先的Web服务

spring创建web项目1引言 本文介绍了如何使用来实现和测试SOAP Web服务 Spring Web Services项目 。 本示例将JAXB2用于(取消)编组。 为了开发服务,我将使用合同优先的方法,该方法首先定义服务合同,然后基于此合同实施…

【渝粤教育】电大中专新媒体营销实务 (15)作业 题库

1.新媒体在进行内容传播时,可以做到将文字、图片、视频等同时传播,呈现出()的特点。 A.移动化 B.多元化 C.便捷性 错误 正确答案:左边查询 学生答案:A 2.第四媒体发展到宽带互联网阶段成为(&…

mysql 返回多行数据_mysql – 如何连接多个表,包括查找表和返回行中的数据

我正在尝试显示一些简单的计算机游戏结果,并且可以轻松地在我的代码中逐行迭代结果.我想要它,以便每个游戏的所有相关数据都在每个记录中,所以我可以在一行输出所有数据,例如:> A队(得分45)对阵B队(得分55),比赛持续时间:5分钟> C队(得分60)对阵D队…

什么是网络光端机?网络光端机工作原理及功能介绍!

网络光端机,就是光信号传输的终端设备。由于目前技术的提高,光纤价格的降低使它在各个领域得到很好的应用。在远程光纤传输中,光缆对信号的传输影响很小,光纤传输系统的传输质量主要取决于光端机的质量,因为光端机负责…

使用@JsonIdentityInfo的Spring自定义序列化器

介绍 Spring中从JSON到JSON的序列化/反序列化已广泛用于基于Spring的现代应用程序中。 它基于杰克逊。 Jackson可以轻松地将任何POJO序列化为JSON,反之亦然。 这段代码写得很好。 我从未遇到任何问题。 当涉及到自定义序列化程序时,它将变得更加困难。 这…

【渝粤教育】电大中专电商运营实操 (15)作业 题库

1.目前菜鸟网络依赖大数据和云计算已实现了哪些功能( ) A.智能分单 B.自动化仓库 C.以上都正确 D.智能发货 E.物流云加速 错误 正确答案:左边查询 学生答案:E 2.目前( )的电子商务呈现出巨大的发展潜力。 A…

java notify视频_一个很好的小例子来演示java中的wait()和notify()方法

任何人都可以在java中为我提供一个很好的小例子演示wait()和notify()功能.我尝试使用下面的代码,但它没有显示我的预期.public class WaitDemo {int i 10;int display() {System.out.println("Lexmark");i;return i;}}public class ClassDemo1 extends Thread {priv…

【渝粤教育】电大中专电子商务网站建设与维护 (22)作业 题库

1.阿里巴巴的创始人是( ) A.丁磊 B.李彦宏 C.马化腾 D.马云 错误 正确答案:左边查询 学生答案:未作答 2.阿里巴巴目前的电子商务在哪个阶段( ) A.资金流 B.物流 C.商品流 D.信息流 错误 正确答案&#xff1…

以太网交换机的用途有哪些?

交换机的主要功能包括物理编址、网络拓扑结构、错误校验、帧序列以及流控。交换机还具备了一些新的功能,如对VLAN(虚拟局域网)的支持、对链路汇聚的支持,甚至有的还具有防火墙的功能。接下来就由飞畅科技的小编带大家详细了解下交…

【渝粤教育】电大中专药理学基础 (3)作业 题库

1.关于巴比妥类药物药理作用的描述,错误的是()。 A.镇静 B.催眠 C.麻醉 D.抗惊厥 E.镇痛 错误 正确答案:左边查询 学生答案:C 2.地西泮适应证不包括()。 A.镇静催眠 B.抗癫痫和抗惊厥 C.肌紧张性…

交换机主要分为哪几类?

交换机(Switch)意为“开关”是一种用于电(光)信号转发的网络设备。它可以为接入交换机的任意两个网络节点提供独享的电信号通路。最常见的交换机是以太网交换机。其他常见的还有电话语音交换机、光纤交换机等。 从广义上来看&…

java编程彩球滑梯作弊_课内资源 - 基于C++的学生成绩管理系统

1 系统分析1.1 学生成绩管理系统介绍班主任管家软件以学生信息、课程信息为基础,以品行表现成绩(辅导员、班主任、班级评议成绩)和业务课程成绩为评价依据,每学期评定一次奖学金,奖学金作为学生评定各种荣誉的主要依据,并将各种评…

【渝粤教育】电大中专财务管理与分析 (2)作业 题库

货币市场的主要功能是调节短期资金融通,下列不属于货币市场的特点的是( )。 A期限一般长于1年 B期限短 C交易目的是解决短期资金周转 D金融工具有较强的“货币性” 正确 正确答案:左边查询 学生答案:A 2下列关于个人独…

Hibernate事实:如何“断言” SQL语句计数

介绍 Hibernate简化了CRUD操作,尤其是在处理实体图时。 但是任何抽象都有其代价,而Hibernate也不例外。 我已经讨论了获取策略和了解Criteria SQL查询的重要性,但是您可以做更多的事情来统治JPA。 这篇文章是关于控制Hibernate代表您调用SQL语…

交换机工作原理介绍

交换机是一种用于电(光)信号转发的网络设备。它可以为接入交换机的任意两个网络节点提供独享的电信号通路。最常见的交换机是以太网交换机。交换机工作于OSI参考模型的第二层,即数据链路层。交换机拥有一条高带宽的背部总线和内部交换矩阵&am…

【渝粤教育】电大中专金融与税收作业 题库

1.根据马克思的货币需要量公式,在货币流通速度不变的条件下,执行流通手段的货币量取决于()。 A.商品质量 B.商品生产技术条件 C.待销售商品价格总额 D.投机性货币需求 错误 正确答案:左边查询 学生答案:A 2…

下载不了java应用程序_Java 7u45 - java webstart不会下载我的jar并执行应用程序,除非我显示java控制台...

首先,对不起我的英语,这不是我的母语。我的环境有:- jre 1.5.0_12(二进制)- jre 1.6.0_17(默认jre)- jre 1.7.0_45(二进制)我有两种方法可以通过Java Webstart启动应用程序:1)\\\javaws-1.5.0_12.exe \\\urClient-DAP2.jnlp2)&quo…

【渝粤题库】陕西师范大学500011 物理学史 作业(专升本)

《物理学史》作业 一、名词解释 1、伽利略“等末速度假设” 2、卡诺理想热机 3、光量子假设 4、阿拉果圆盘实验 5、活力守恒定律 6、牛顿主张的光的微粒说 7、卡诺提出的理想循环过程 8、法拉第圆盘实验 9、卡文迪许测量G的实验 10、卡诺定理 11、惠更斯原理 12、热质说 13、无…