我有一个SQL数据库,它由几个表组成 表格1 表2 表3等等
我有一张excel表,其中包含大约17000行数据。 excel表的列标题已经过编辑,以便它们匹配我要导入Excel数据的表(例如table3)的列标题。
例如,在excel表中,数据类似于
Name Age
2 23
表3也是相同的形式,如
Name Age
1 23
我想知道,比如如何将上述Excel工作表中的数据添加到SQL数据库中的此表3中。有人可以给我一些想法或指示吗???
答案 0 :(得分:1)
SQL Server附带Import / Export wizard。它使用起来非常简单直观,只要您的数据类型匹配,就不会有任何问题。
答案 1 :(得分:1)
据我所知,您只想一次向特定表添加数据。
不确定您使用的是哪种编码语言,但简而言之:
根据解析后的数据构建“值字符串”(SQL命令需要)。我的意思是: 值字符串的格式应为“rowid,integer,integer,'text','text',...”。此字符串中的“条目”数量应等于表中的列数(包括表的主键)。
与值类型为INTEGER的SQL列对应的条目不必用单引号括起来。对于具有值类型TEXT,TINYTEXT等的SQL列,它们必须用单引号括起来,如上所示。 我不相信甚至需要指定rowid,你可以用'?'替换它,给你:
"?, integer, 'text', 'text', integer, ..."
或任何情况。
然后使用SQL INSERT INTO命令将每一行插入到所需的表中,如下所示:
String sqlStatement = "INSERT INTO TableName VALUES ( " + valueString + " )";
在你的情况下:
String sqlStatement = "INSERT INTO Table3 VALUES ( ?, 2, 23, ... )";
然后执行语句(c ++,SQLite,注意sqlite3 *不应该在这里真正声明):
int rc;
sqlite3* db;
char* zErrMsg = 0;
rc = sqlite3_exec(db, sqlStatement, NULL, NULL, &zErrMsg);
if ( rc != SQLITE_OK )
return false;
return true;
对每行csv数据重复上述操作。使用事务和绑定来提高性能。
答案 2 :(得分:0)
您使用的是哪个数据库?因为该方法取决于数据库引擎和可用的工具。正如SWeko所说,在SQL Server Management Studio中你确实可以直接导入Excel文件,有些工具更通用,比如DB visualiser,它可以让你在更多的数据库中做同样的事情,或者你可以用sql来生成sql通过使用模板并使用vlookup定义数据为您插入代码,然后您只需运行所有insert命令将数据添加到DB。
答案 3 :(得分:0)
您必须看到:http://support.microsoft.com/kb/321686 有一个几乎相同的问题:http://stackoverflow.com/questions/5141521/how-to-insert-data-from-excel-sheet-to-sql-server-2005