程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> 其他數據庫知識 >> 更多數據庫知識 >> SQLServer導出數據到MySQL實例介紹

SQLServer導出數據到MySQL實例介紹

編輯:更多數據庫知識

1從SQLServer導出數據
執行BCP:
bcp "..." queryout "F:\test.txt" -c –S1.2.3.4 -Usa -P1111
命令參數含義:
(1) 導入。
這個動作使用in命令完成,後面跟需要導入的文件名。
(2) 導出。
這個動作使用out命令完成,後面跟需要導出的文件名。
(3) 使用SQL語句導出。
這個動作使用queryout命令完成,它跟out類似,只是數據源不是表或視圖名,而是SQL語句。
(4) 導出格式文件。
這個動作使用format命令完成,後而跟格式文件名。
下面介紹一些常用的選項:
-f format_file
format_file表示格式文件名。這個選項依賴於上述的動作,如果使用的是in或out,format_file表示已經存在的格式文件,如果使用的是format則表示是要生成的格式文件。
-x
這個選項要和-f format_file配合使用,以便生成xml格式的格式文件。
-F first_row
指定從被導出表的哪一行導出,或從被導入文件的哪一行導入。
-L last_row
指定被導出表要導到哪一行結束,或從被導入文件導數據時,導到哪一行結束。
-c
使用char類型做為存儲類型,沒有前綴且以"/t"做為字段分割符,以"/n"做為行分割符。
-w
和-c類似,只是當使用Unicode字符集拷貝數據時使用,且以nchar做為存儲類型。
-t field_term
指定字符分割符,默認是"/t"。
-r row_term
指定行分割符,默認是"/n"。
-S server_name[ /instance_name]
指定要連接的SQL Server服務器的實例,如果未指定此選項,BCP連接本機的SQL Server默認實例。如果要連接某台機器上的默認實例,只需要指定機器名即可。
-U login_id
指定連接SQL Sever的用戶名。
-P password
指定連接SQL Server的用戶名密碼。
-T
指定BCP使用信任連接登錄SQL Server。如果未指定-T,必須指定-U和-P。
-k
指定空列使用null值插入,而不是這列的默認值。
2導入數據到MySQL
執行Load Data命令:
load data local infile "F:/test.txt" into table table1character set gbk;
命令參數含義:
load data [low_priority] [local] infile 'file_name txt' [replace |ignore]
into table tbl_name
[fields
[terminated by't']
[OPTIONALLY] enclosed by '']
[escaped by'\' ]]
[lines terminated by'n']
[ignore number lines]
[(col_name, )]
2.1 Low_priority
如果你指定關鍵詞low_priority,那麼MySQL將會等到沒有其他人讀這個表的時候,才把插入數據。
2.2 Local
如果指定local關鍵詞,則表明從客戶主機讀文件。如果local沒指定,文件必須位於服務器上。
2.3 Replace & Ignore
replace和ignore關鍵詞控制對現有的唯一鍵記錄的重復的處理。如果你指定replace,新行將代替有相同的唯一鍵值的現有行。如果你指定ignore,跳過有唯一鍵的現有行的重復行的輸入。如果你不指定任何一個選項,當找到重復鍵時,出現一個錯誤,並且文本文件的余下部分被忽略。
2.4分隔符
terminated by描述字段的分隔符,默認情況下是tab字符(\t)
enclosed by描述的是字段的括起字符。
escaped by描述的轉義字符。默認的是反斜槓(backslash:\)
lines 關鍵字指定了每條記錄的分隔符默認為'\n'即為換行符
2.5導入部分列
load data infile可以按指定的列把文件導入到數據庫中。當我們要把數據的一部分內容導入的時候,,需要加入一些欄目(列/字段/field)到MySQL數據庫中,以適應一些額外的需要。比方說,我們要從Access數據庫升級到MySQL數據庫的時候
下面的例子顯示了如何向指定的欄目(field)中導入數據:
load data infile "/home/Ordertxt" into table Orders(Order_Number, Order_Date, Customer_ID);
2.6相對&絕對路徑
(1)如果給出一個絕對路徑名,服務器使用該路徑名。
(2)如果給出一個有一個或多個前置部件的相對路徑名,服務器相對服務器的數據目錄搜索文件。
(3)如果給出一個沒有前置部件的一個文件名,服務器在當前數據庫的數據庫目錄尋找文件。
例如: /myfile txt”給出的文件是從服務器的數據目錄讀取,而作為“myfile txt”給出的一個文件是從當前數據庫的數據庫目錄下讀取。
2.7字符集
character set gbk指定字符集為gbk,與文件的編碼格式(ANSI)保持一致。否則中文數據導入後可能變為亂碼。
2.8靈活導入
可以在導入的同時,插入一些其他列:
load data local infile "F:/test.txt"into table table1 set pin='zs',create_date=current_timestamp;
3常見問題
3.1無法運行Load Data命令
執行load data localinfile時報錯:
The used command is not allowed with this MySQL version
解決方法是:啟動mysql客戶端是加上--local-infile=1參數
$ mysql --local-infile=1 –uroot –p123 –h 127.0.0.1
3.2用BCP導出UTF-8格式
解決方法是加上-C選項:
$ bcp "query sql…" queryout "F:\test.txt" -c -C65001–S1.2.3.4 -Usa -P1111

mysql導入數據load data infile用法

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved