今天就跟大家聊聊有關(guān)SQLServer中怎么導(dǎo)出數(shù)據(jù)到MySQL,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。
侯馬網(wǎng)站制作公司哪家好,找創(chuàng)新互聯(lián)公司!從網(wǎng)頁設(shè)計(jì)、網(wǎng)站建設(shè)、微信開發(fā)、APP開發(fā)、成都響應(yīng)式網(wǎng)站建設(shè)等網(wǎng)站項(xiàng)目制作,到程序開發(fā),運(yùn)營維護(hù)。創(chuàng)新互聯(lián)公司從2013年創(chuàng)立到現(xiàn)在10年的時(shí)間,我們擁有了豐富的建站經(jīng)驗(yàn)和運(yùn)維經(jīng)驗(yàn),來保證我們的工作的順利進(jìn)行。專注于網(wǎng)站建設(shè)就選創(chuàng)新互聯(lián)公司。
1從SQLServer導(dǎo)出數(shù)據(jù)
執(zhí)行BCP: bcp "..." queryout "F:\test.txt" -c –S1.2.3.4 -Usa -P1111 命令參數(shù)含義: (1) 導(dǎo)入。 這個(gè)動(dòng)作使用in命令完成,后面跟需要導(dǎo)入的文件名。 (2) 導(dǎo)出。 這個(gè)動(dòng)作使用out命令完成,后面跟需要導(dǎo)出的文件名。 (3) 使用SQL語句導(dǎo)出。 這個(gè)動(dòng)作使用queryout命令完成,它跟out類似,只是數(shù)據(jù)源不是表或視圖名,而是SQL語句。 (4) 導(dǎo)出格式文件。 這個(gè)動(dòng)作使用format命令完成,后而跟格式文件名。 下面介紹一些常用的選項(xiàng): -f format_file format_file表示格式文件名。這個(gè)選項(xiàng)依賴于上述的動(dòng)作,如果使用的是in或out,format_file表示已經(jīng)存在的格式文件,如果使用的是format則表示是要生成的格式文件。 -x 這個(gè)選項(xiàng)要和-f format_file配合使用,以便生成xml格式的格式文件。 -F first_row 指定從被導(dǎo)出表的哪一行導(dǎo)出,或從被導(dǎo)入文件的哪一行導(dǎo)入。 -L last_row 指定被導(dǎo)出表要導(dǎo)到哪一行結(jié)束,或從被導(dǎo)入文件導(dǎo)數(shù)據(jù)時(shí),導(dǎo)到哪一行結(jié)束。 -c 使用char類型做為存儲(chǔ)類型,沒有前綴且以"/t"做為字段分割符,以"/n"做為行分割符。 -w 和-c類似,只是當(dāng)使用Unicode字符集拷貝數(shù)據(jù)時(shí)使用,且以nchar做為存儲(chǔ)類型。 -t field_term 指定字符分割符,默認(rèn)是"/t"。 -r row_term 指定行分割符,默認(rèn)是"/n"。 -S server_name[ /instance_name] 指定要連接的SQL Server服務(wù)器的實(shí)例,如果未指定此選項(xiàng),BCP連接本機(jī)的SQL Server默認(rèn)實(shí)例。如果要連接某臺(tái)機(jī)器上的默認(rèn)實(shí)例,只需要指定機(jī)器名即可。 -U login_id 指定連接SQL Sever的用戶名。 -P password 指定連接SQL Server的用戶名密碼。 -T 指定BCP使用信任連接登錄SQL Server。如果未指定-T,必須指定-U和-P。 -k 指定空列使用null值插入,而不是這列的默認(rèn)值。
2導(dǎo)入數(shù)據(jù)到MySQL執(zhí)行Load Data命令: load data local infile "F:/test.txt" into table table1character set gbk; 命令參數(shù)含義: 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如果你指定關(guān)鍵詞low_priority,那么MySQL將會(huì)等到?jīng)]有其他人讀這個(gè)表的時(shí)候,才把插入數(shù)據(jù)。
2.2 Local如果指定local關(guān)鍵詞,則表明從客戶主機(jī)讀文件。如果local沒指定,文件必須位于服務(wù)器上。
2.3 Replace & Ignorereplace和ignore關(guān)鍵詞控制對現(xiàn)有的唯一鍵記錄的重復(fù)的處理。如果你指定replace,新行將代替有相同的唯一鍵值的現(xiàn)有行。如果你指定ignore,跳過有唯一鍵的現(xiàn)有行的重復(fù)行的輸入。如果你不指定任何一個(gè)選項(xiàng),當(dāng)找到重復(fù)鍵時(shí),出現(xiàn)一個(gè)錯(cuò)誤,并且文本文件的余下部分被忽略。
2.4分隔符terminated by描述字段的分隔符,默認(rèn)情況下是tab字符(\t) enclosed by描述的是字段的括起字符。 escaped by描述的轉(zhuǎn)義字符。默認(rèn)的是反斜杠(backslash:\) lines 關(guān)鍵字指定了每條記錄的分隔符默認(rèn)為'\n'即為換行符
2.5導(dǎo)入部分列load data infile可以按指定的列把文件導(dǎo)入到數(shù)據(jù)庫中。當(dāng)我們要把數(shù)據(jù)的一部分內(nèi)容導(dǎo)入的時(shí)候,,需要加入一些欄目(列/字段/field)到MySQL數(shù)據(jù)庫中,以適應(yīng)一些額外的需要。比方說,我們要從Access數(shù)據(jù)庫升級到MySQL數(shù)據(jù)庫的時(shí)候 下面的例子顯示了如何向指定的欄目(field)中導(dǎo)入數(shù)據(jù): load data infile "/home/Ordertxt" into table Orders(Order_Number, Order_Date, Customer_ID);
2.6相對&絕對路徑(1)如果給出一個(gè)絕對路徑名,服務(wù)器使用該路徑名。 (2)如果給出一個(gè)有一個(gè)或多個(gè)前置部件的相對路徑名,服務(wù)器相對服務(wù)器的數(shù)據(jù)目錄搜索文件。 (3)如果給出一個(gè)沒有前置部件的一個(gè)文件名,服務(wù)器在當(dāng)前數(shù)據(jù)庫的數(shù)據(jù)庫目錄尋找文件。 例如: /myfile txt”給出的文件是從服務(wù)器的數(shù)據(jù)目錄讀取,而作為“myfile txt”給出的一個(gè)文件是從當(dāng)前數(shù)據(jù)庫的數(shù)據(jù)庫目錄下讀取。 2.7字符集character set gbk指定字符集為gbk,與文件的編碼格式(ANSI)保持一致。否則中文數(shù)據(jù)導(dǎo)入后可能變?yōu)閬y碼。
2.8靈活導(dǎo)入可以在導(dǎo)入的同時(shí),插入一些其他列: load data local infile "F:/test.txt"into table table1 set pin='zs',create_date=current_timestamp;
3常見問題
3.1無法運(yùn)行Load Data命令執(zhí)行l(wèi)oad data localinfile時(shí)報(bào)錯(cuò): The used command is not allowed with this MySQL version 解決方法是:啟動(dòng)mysql客戶端是加上--local-infile=1參數(shù) $ mysql --local-infile=1 –uroot –p123 –h 127.0.0.1
3.2用BCP導(dǎo)出UTF-8格式解決方法是加上-C選項(xiàng): $ bcp "query sql…" queryout "F:\test.txt" -c -C65001–S1.2.3.4 -Usa -P1111mysql導(dǎo)入數(shù)據(jù)load data infile用法
看完上述內(nèi)容,你們對SQLServer中怎么導(dǎo)出數(shù)據(jù)到MySQL有進(jìn)一步的了解嗎?如果還想了解更多知識(shí)或者相關(guān)內(nèi)容,請關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝大家的支持。