Ⅰ 資料庫如何批量插入數據
解決方法:
添加事務處理,把5000條插入作為一個事務
dataBase.beginTransaction(); //手動設置開始事務
//數據插入操作循環
dataBase.setTransactionSuccessful(); //設置事務處理成功,不設置會自動回滾不提交
dataBase.endTransaction(); //處理完成
將資料庫「倒出來」:
sqlite3 film.db ".mp" > output.sql
利用輸出的資料,建立一個一模一樣的資料庫(加上以上指令,就是標準的SQL資料庫
備份了):
sqlite3 film.db < output.sql
在大量插入資料時,你可能會需要先打這個指令:
begin;
插入完資料後要記得打這個指令,資料才會寫進資料庫中:
commit;
Ⅱ 請教如何將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文檔數據。
Ⅲ 怎麼高效率批量插入1000條數據到資料庫
常見的insert語句,向資料庫中,一條語句只能插入一條數據:
insert into persons
(id_p, lastname , firstName, city )
values(204,'haha' , 'deng' , 'shenzhen');
(如上,僅插入了一條記錄)
怎樣一次insert插入多條記錄呢?
使用示例:
insert into persons
(id_p, lastname , firstName, city )
values
(200,'haha' , 'deng' , 'shenzhen'),
(201,'haha2' , 'deng' , 'GD'),
(202,'haha3' , 'deng' , 'Beijing');
這樣就批量插入數據了, 遵循這樣的語法,就可以批量插入數據了。
Ⅳ 如何用SQL語句將數據批量插入資料庫
你的文檔是什麼類型還是表?
如果是表,直接插
INSERT INTO 要插表(對應欄位1,對應欄位2,對應欄位3)
SELECT 欄位1,欄位2,欄位3
FROM 文檔
如果文檔不是表,而是其他類型的,先把數據放到EXCEL,同過EXCEL導入資料庫
再通過上面的方式插入吧
Ⅳ 如何在資料庫中批量插入數據
你可以將兩個日期之前的天數求出來,然後作為控制循環的次數,然後定義個專起始日期屬,循環里對這個日期進行遞增。
像下面這樣 :
DECLARE
V_DATE DATE;
V_DAYS NUMBER;
V_DATE_BEGIN DATE;
V_DATE_END DATE;
BEGIN
V_DATE_BEGIN := TO_DATE('20101101',
'yyyymmdd');
V_DATE_END := TO_DATE('20100301',
'yyyymmdd');
V_DAYS := V_DATE_END - V_DATE_BEGIN;
FOR I IN 1 .. V_DAYS
LOOP
V_DATE := V_DATE_BEGIN + I;
insert into tablename values (v_days) ;
END LOOP;
END;
Ⅵ 如何將文本文檔批量數據導入到資料庫中
只要文件能夠用記事本打開並格式正確,就可以把他認為是文本文件進行處理.
象這種格式的數據沒有什麼太好的辦法,只有從文本文件中逐行讀取解析,當讀到完整的記錄時執行SQL語句插入到資料庫中.
Ⅶ MySQL資料庫 寫入大量數據如何實現
java">//最快的方法10000記錄23MS
publicstaticvoidinsert(){
//開時時間
Longbegin=newDate().getTime();
//sql前綴
Stringprefix="INSERTINTOtb_big_data(count,create_time,random)VALUES";
try{
//保存sql後綴
StringBuffersuffix=newStringBuffer();
//設置事務為非自動提交
conn.setAutoCommit(false);
//Statementst=conn.createStatement();
//比起st,pst會更好些
PreparedStatementpst=conn.prepareStatement("");
//外層循環,總提交事務次數
for(inti=1;i<=100;i++){
//第次提交步長
for(intj=1;j<=10000;j++){
//構建sql後綴
suffix.append("("+j*i+",SYSDATE(),"+i*j
*Math.random()+"),");
}
//構建完整sql
Stringsql=prefix+suffix.substring(0,suffix.length()-1);
//添加執行sql
pst.addBatch(sql);
//執行操作
pst.executeBatch();
//提交事務
conn.commit();
//清空上一次添加的數據
suffix=newStringBuffer();
}
//頭等連接
pst.close();
conn.close();
}catch(SQLExceptione){
e.printStackTrace();
}
//結束時間
Longend=newDate().getTime();
//耗時
System.out.println("cast:"+(end-begin)/1000+"ms");
}
Ⅷ 如何將Excel數據批量導入SQL資料庫
string connString = server=localhost;uid=sa;pwd=sqlgis;database=master;
System.Windows.Forms.OpenFileDialog fd = new OpenFileDialog();
if (fd.ShowDialog() == DialogResult.OK){TransferData(fd.FileName, sheet1″, connString);}}public void TransferData(string excelFile, string sheetName, string connectionString){DataSet ds = new DataSet();try{//獲取全部數據
string strConn = Provider=Microsoft.Jet.OLEDB.4.0; + Data Source= + excelFile + ; + Extended Properties=Excel 8.0;;
OleDbConnection conn = new OleDbConnection(strConn);
conn.Open();
string strExcel = ;
OleDbDataAdapter myCommand = null;
strExcel = string.Format(select * from [{0}$], sheetName);
myCommand = new OleDbDataAdapter(strExcel, strConn);
myCommand.Fill(ds, sheetName);
//如果目標表不存在則創建
string strSql = string.Format(if object_id(』{0}』) is null create table {0}(, sheetName);
foreach (System.Data.DataColumn c in ds.Tables[0].Columns){strSql += string.Format([{0}] varchar(255),, c.ColumnName);}strSql = strSql.Trim(』,') + );
using (System.Data.SqlClient.SqlConnection sqlconn = new System.Data.SqlClient.SqlConnection(connectionString)){sqlconn.Open();
System.Data.SqlClient.SqlCommand command = sqlconn.CreateCommand();
command.CommandText = strSql;
command.ExecuteNonQuery();
sqlconn.Close();}//用bcp導入數據
using (System.Data.SqlClient.SqlBulkCopy bcp = new System.Data.SqlClient.SqlBulkCopy(connectionString)){bcp.SqlRowsCopied += new System.Data.SqlClient.SqlRowsCopiedEventHandler(bcp_SqlRowsCopied);
bcp.BatchSize = 100;//每次傳輸的行數
bcp.NotifyAfter = 100;//進度提示的行數
bcp.DestinationTableName = sheetName;//目標表