mysql. 导入 股票代码_MySQL导入数据问题

新手问题,望各位大大不惜赐教,先谢过了。

问题开始:

我在尝试把一个在公共领域发布的一类商品定价导入到MySQL中,并最终通过一些php绘图程序显示某样商品的价格走势。(跟股票走势图差不多)目前先想把数据导入这块做好,绘图我想再慢慢研究可以研究出来。

数据来源是一个每天都会更新一次的txt文件,这个txt文件大概有18000行,我把2013-06-02的txt的头5行的内容粘贴过来,Prodct字段是是唯一的商品名:

Product|Price|StdDev|Average|High|Low|Change|Raw N

Honey Cake|1.00|0.00|1.00|1.00|1.00|0.00|1

Cheese Cake (Grade A)|0.25|0.00|0.25|0.25|0.25|0.00|1

Cheese Cake (Grade B)|0.25|0.00|0.25|0.25|0.25|-0.13|1

MoonCake|0.25|0.00|0.25|0.25|0.25|0.00|1

可以看出数据是由7个"|"分割成8个字段组成的。

于是我先从建立一个叫做productprice的table开始,总共建立了9栏(包括一个非得创建的id字段?):

create table productprice(

id int not null auto_increment, // 问题一:貌似建立MySQL一定需要一个id字段?

product varchar(40) not null,

price int,

stddev int,

average int,

high int,

low int,

changen int, // 问题二:我对应会原来的表格写 change int, 但MySQL不让建,于是我改成changen

rawn int,

primary key(id)

)engine=innodb charset=utf8;

dd5c2b308903ae6c1f58c09f32cc7bfc.gif

因为数据的第一行Product|Price|StdDev|Average|High|Low|Change|Raw N

没有用,于是我手工把第一行去掉。 //问题三:在Linux下用什么命令可以自动去掉一个txt文件的第一行呢?

然后我用这个命令导入数据:

LOAD DATA LOCAL INFILE '/path/20130602.txt' INTO TABLE productprice

FIELDS TERMINATED BY '|';

哗啦哗啦零点几秒之内就导入好了,截个图上来:

bcc76e5c36c1acb1eb56cd7334057a73.gif

明显地因为存在了ID字段,所以就对不上了,所有数据都往左偏移了一格,product名字不见了,price去到了product的位置,结果我就卡在这里了。

我的问题:

问题一:貌似建立MySQL一定需要一个id字段?

在建立table的时候好像不建立id的话不让操作,我只好建立了一个id,但要如何跟我下载下来的数据匹配呢?因为下载下来的数据是没有id的,但product是唯一。

问题二:我对应回原来的表格写 change int, 但MySQL不让建,于是我改成changen

这个好像无伤大雅,我先当change是一个非法的名字了。

问题三:在Linux下用什么命令可以自动去掉一个txt文件的第一行呢?

还有回到问题一,我需要在每行前面加一个1| 2| 3|这样的数据吗?如果想通过Linux脚本操作的话要如何进行呢?(因为到最后我想把整个流程自动化下来,每天定时下载报价,导入MySQL)

问题四:因为报价每天都会更新一次,我再把相近的内容再导入数据库中不就变得很诡异?后续绘走势图的话很明显还缺少一个时间的字段啊(请告诉我根据我的需求应该要怎么建立表格比较好?)

问题五:问题四的延伸,我看了一下炒股软件,做法是把例如000001的股票的每天的价格都写入一个文本文件中,例如有100支股票,就有100个TXT文件,这种储存方法看起来很不错,但我的例子有18000支“股票”,而且每隔几个月表里面的产品会增加或者减少,我没有能力把增加和减少的产品挑出来,如果这样做的话,php读取txt里面的东西比读取MySQL中的要方便吗?其实对我来说最重要的就是product和price这两个字段,如果写入txt中体积也不会增加好多,想起来也比放在MySQL科学一点。

最后的问题:你会怎么做一个这样的东西呢?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值