1.获取数据源
本项目为获取股票数据,以当日2022年8月29日的股票信息为例
2.分析有用数据:
对于股票市场而言我们对涨幅最为敏感,因为它关系到了盈利和亏损。而对于数据量的庞大,5000多家上市公司,这么多数据,对此我们想直接搜索关键字获取其信息,对此可以直接用条件查询等号赋值,但更好的为模糊查询
3.模糊查询介绍:
模糊查询的语法为 select 字段 from 表 where 条件 like “”;
其中like后面可与接%和_
%代表任意多个字符,_表示任意单个字符
4.正则表达式: regexp 语法同上只需要替换like,只是后面接要匹配的内容即可
5.模糊查询的转义符escape:
若遇到有特殊符号的查询 如带有%或者_的需要使用转义符:escape
用法:select 字段 from 表 where 条件 like 'e_%' escape 'e';
此为查询第一个字符为''_''的相关内容
6.存储过程
创建一个本地root用户的PROCEDURE 函数名为sr输入的形参为(in s_name varchar(20))
其中varchar()为可变长字符空间 20为我设置的最大字符数
然后在BEGIN于END之间写程序
declare i int default 0;为声明变量 i
CREATE DEFINER=`root`@`localhost` PROCEDURE `sr`(in s_name varchar(20))
BEGIN
declare i int default 0;
while(i<1)do
select `代码`,`名称`,`涨幅%`,`6日涨幅%`,`近一月涨幅%`,`近一年涨幅%` from `shares8-29` where `名称`like concat('%',s_name,'%');
set i=i+1;
end while;
END
还可以在此基础上扩展,如进行以涨幅排序等操作
7.调用函数
用法 call 函数名()
此图为Navicat下的结果
相比python中利用pandas的查询,模糊查询使mysql更胜一筹,python中即使用了正则表达式,依然会出现不能将str转换为float等字样,而且数据来源多样,夹杂各种符号,对于数据清洗过程繁琐还不一定能洗干净,为数据库点赞