Mysql 为2个类似的表创建数据库表

Mysql 为2个类似的表创建数据库表,mysql,database,mysql-workbench,create-table,Mysql,Database,Mysql Workbench,Create Table,我在2*.CSV文件中有以下信息。还有更多的行,但我在这里包含了一个小集合作为示例 文件\u id描述日期文件\u热量\u值\u 1 1 ABC 2015-02-11 1.02500 1 ABC 2014-11-19 0.85500 1 ABC 2014-05-22 17.20 2 DEF 2014-08-20 1.3700 2 DEF 2014-05-21 15.5500 2 DEF 2013-04-07 77.800 3 XYZ 2012-02-12 0.14400 3 XYZ 2013-0

我在2*.CSV文件中有以下信息。还有更多的行,但我在这里包含了一个小集合作为示例

文件\u id描述日期文件\u热量\u值\u 1
1 ABC 2015-02-11 1.02500
1 ABC 2014-11-19 0.85500
1 ABC 2014-05-22 17.20
2 DEF 2014-08-20 1.3700
2 DEF 2014-05-21 15.5500
2 DEF 2013-04-07 77.800
3 XYZ 2012-02-12 0.14400
3 XYZ 2013-02-12 0.97600

文件\u id描述日期文件\u热量\u值\u 2
1 ABC 2014-12-01 42.01
1 ABC 2013-04-02 11389.90
2 DEF 2014-12-03 0.87
2 DEF 2014-12-04 55.36
2 DEF 2014-07-04 143.29
3 XYZ 2012-11-05 77.90.02
3 XYZ 2013-07-08 34344.91

我需要将这些2*.CSV文件作为表添加到MySQL数据库中。我不确定数据库中是需要两个表还是一个表

我无法将*.CSV文件组合在一起,因为日期不匹配。我将使用MySQL Workbench将*.CSV文件加载到2个表中

我想做的是:

  • 创建数据库:
  • CREATE schema temperat\u monitor

  • 创建两个表

  • 运行以下查询:

  • 选择
    作为热温度的最大值(文件热值),
    最小值(文件\u热\u值\u 1)作为冷\u温度,
    最大值(文件热量值)为室内温度
    来自表1
    表1.file\u id=表2.file\u id上的内部联接表2

    在MySQL中创建这两个表的最佳方法是什么


    编辑:下面的屏幕截图显示了我尝试使用MySQL工作台文件导入向导(6.3.1)。。我已经创建了一个数据库并选择使用它。但是这个错误出现了。您能告诉我为什么会出现这种情况吗?

    我会使用一个表,并使用一个没有业务价值的主键,例如

    id INT AUTO_INCREMENT PRIMARY KEY
    
    在CREATETABLE语句中

    您将得到类似以下内容的数据:

    id  file_id descrip Date       file_heat_value_1 
    1   1       ABC     2015-02-11     1.02500 
    2   1       ABC     2014-11-19     0.85500 
    3   1       ABC     2014-05-22    17.20 
    4   2       DEF     2014-08-20     1.3700 
    5   2       DEF     2014-05-21    15.5500 
    6   2       DEF     2013-04-07    77.800 
    7   3       XYZ     2012-02-12     0.14400 
    8   3       XYZ     2013-02-12     0.97600
    9   1       ABC     2014-12-01    42.01 
    10  1       ABC     2013-04-02 11389.90
    11  2       DEF     2014-12-03     0.87
    12  2       DEF     2014-12-04    55.36
    13  2       DEF     2014-07-04   143.29
    14  3       XYZ     2012-11-05 77.90.02
    15  3       XYZ     2013-07-08 34344.91
    

    然后,您可以从这个表中选择数据。如果您需要有关select语句的帮助,请发布另一个问题。

    您能否尝试一下即将推出的MySQL Workbench 6.3.1测试版?它包括一个增强的CSV/JSON导入/导出功能,可以简化您的任务。它还将为您创建表格。嘿,这绝对是一个令人兴奋的前景。如果我尝试Workbench 6.3.1 beta版,那么我是否能够以某种方式将其升级到Workbench发行候选版,然后升级到Workbench稳定版?或者,当稳定版本发布时,我需要卸载测试版吗?我强烈希望采用升级路线,而不是必须卸载/重新安装。如果能做到这一点,那么我肯定会试一试。此外,在6.3.1测试版中,是否有关于如何将多个*.CSV文件上载到空数据库的说明?无需担心升级。它只是一个普通的安装,就像其他任何安装一样,取代了现有的应用程序。您可以并行安装6.2.5和6.3.1(顺便说一句,现在可以下载6.3.1)。对于多个CSV文件:不,这还不受支持。但是向导保留了最后的设置,所以您只需再次单击几下就可以启动它,选择下一个文件并运行导入。好的,我有兴趣尝试一下。我将开始研究这个问题。这可能需要一些斗争,因为我以前从未使用过Workbench的文件导入向导。Mike,请参阅我在OP中发布的屏幕截图。知道为什么它无法识别我的USE database命令吗?我已经创建了一个数据库并选择了它。然后我使用了文件导入向导,但是屏幕截图中出现了错误。有什么想法吗?谢谢。就这样。我实际上只有两个问题:A.使用虚拟PK列是否是典型的>即使用没有实际意义的PK?B.我倾向于使用两个表-每个表都有一个虚拟PK列,这样我就可以保留
    文件\u热量\u值\u 1
    文件\u热量\u值\u 2
    。然后我在
    file\u id
    列上执行一个
    内部联接
    ,这两个表都是相同的。与您将所有内容合并到一个表中的建议相比,您对此有何想法?使用虚拟主键不仅是典型的,而且被许多人认为是最佳实践。您会发现避免或检测重复和其他问题要容易得多。关于这一点,在其他一些使用单表方法的方法中有更多介绍:使用group by,可能是group by file_id,或者添加另一个名为csv_source的列,该列的值为1或2,具体取决于哪个csv是源和group by,或者order by file_id并为最大值添加TOP 1,或者将group和order与LIMIT组合。有很多选择。非常感谢。我这里的问题已经回答了。