大量数据导入数据库
A. 请教如何将excle上面的数据批量导入至sql2008数据库
在查询分析器里,直接写 SQL语句:
如果是导入数据到现有表,则采用形式
INSERT INTO 表 SELECT * FROM OPENROWSET('MICROSOFT.JET.OLEDB.4.0' ,'Excel 5.0;HDR=YES;DATABASE=c:\test.xls',sheet1$)
如果是导入数据并新增表,则采用形式
SELECT * INTO 表 FROM OPENROWSET('MICROSOFT.JET.OLEDB.4.0' ,'Excel 5.0;HDR=YES;DATABASE=c:\test.xls',sheet1$)
SQL2005中直接可以实现导入功能 SQL2008不知道可不可以。 操作过程如下:
第一步:登录到 SQL Server Management Studio
第二步:在 “对象资源管理器 ”中右键单击 “管理 ”,在弹出列表中单击 “导入数据 ”
第三步:在 “导入向导 ”对话框中单击 “下一步 ”,进入到 “选择数据源 ”对话框,在 “数据源 ”列表中选择 “Microsoft Excel ”,同时选择相应的 Excel 文档,完成后单击 “下一步 ”(一定要勾选该对话框中的 “首行包含列名称 ”,因此它是将 Excel文档中的列标题为数据库表中的列项标题)
第四步:指定目标数据库服务,依次单击 “下一步 ”。。。。至到 “完成 ”
第五步:重新打到 SQL Server Management Studio,进入到导入的数据库表,可以发现所导入的 Excel文档数据。
B. 如何将Excel数据批量导入SQL数据库
把EXCEL数据导入到SQL数据库中:
1、在数据库上点击右键,然后选择“任务”,选择“导入数据”,就看到弹出淡入数据的对话框
3、按照操作步骤走下去,最终会生成一个新的表(临时表B表)。
可以借助工具,MSSQL表数据导出成Insert语句的工具 即:将查询出来的这些数据都生成insert into语句。
最终在A表中执行该insert into语句就可以将excel中的数据最终放入数据库中。
C. 如何把csv文件批量导入到mysql数据库
通过命令行导入(要求列与列之间以 英文逗号 分割,若字段中含有 , 则以 " 包裹)
load data infile 'D:/mysql-5.7.29-winx64/files/ratings_5.csv' into table ratings fields terminated by ',' optionally enclosed by '"' escaped by '"' lines terminated by '\r\n';
踩坑一:文件路径用 \ 分割会报错,用 / 可(用 \\ 应该也可)
踩坑二:load data 命令报错
ERROR 1290 (HY000): The MySQL server is running with the --secure-file-priv option so it cannot execute this statement
在 my.ini 中加入(空字符串代表允许从一切目录导入)
[mysqld]
secure-file-priv=''
然后再 Windows 的服务中重新启动 mysql
踩坑三:csv 文件中第一行是诸如 userId 这样的列名
如果你的 csv 文件不大,直接使用 notepad++ 打开后删除第一行即可
但在我们这里,千万级别的文件 notepad++ 无法打开,这时可以考虑两种方法
1. 将 csv 文件传入 Linux 服务器删去第一行
由于不知道如何在 Win 10 中做这个操作,只能通过 Linux 中转执行
sed -i '1d' ratings.csv
检验是否成功,可以打印出第一行观察
cat ratings.csv | head -n 1
2. 通过工具把大的 csv 分成多个 notepad 能够打开的较小文件,对第一个文件删除第一行并依次导入
工具:splitcsv
亲测 5000000 条数据的 csv 文件可以在 notepad++ 中打开(只能同时打开 3 个)
这个工具还有个小坑:ratings_0.csv 的最后一行和 ratings_1.csv 的第一行是重复的,请手动删除
D. 大量数据如何导入数据库
第一:将数据先放进文本文档(如果是几列,请按格式弄好,并用逗号隔开, 这里得符号可以换成其他)
6
第六:导入成功数据展示