SQLServer導(dǎo)出數(shù)據(jù)到MySQL實(shí)例介紹
執(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語(yǔ)句導(dǎo)出。
這個(gè)動(dòng)作使用queryout命令完成,它跟out類(lèi)似,只是數(shù)據(jù)源不是表或視圖名,而是SQL語(yǔ)句。
(4) 導(dǎo)出格式文件。
這個(gè)動(dòng)作使用format命令完成,后而跟格式文件名。
下面介紹一些常用的選項(xiàng):
-f format_file
format_file表示格式文件名。這個(gè)選項(xiàng)依賴(lài)于上述的動(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類(lèi)型做為存儲(chǔ)類(lèi)型,沒(méi)有前綴且以"/t"做為字段分割符,以"/n"做為行分割符。
-w
和-c類(lèi)似,只是當(dāng)使用Unicode字符集拷貝數(shù)據(jù)時(shí)使用,且以nchar做為存儲(chǔ)類(lèi)型。
-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的用戶(hù)名。
-P password
指定連接SQL Server的用戶(hù)名密碼。
-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)鍵詞,則表明從客戶(hù)主機(jī)讀文件。如果local沒(méi)指定,文件必須位于服務(wù)器上。
2.3 Replace & Ignore
replace和ignore關(guān)鍵詞控制對(duì)現(xiàn)有的唯一鍵記錄的重復(fù)的處理。如果你指定replace,新行將代替有相同的唯一鍵值的現(xiàn)有行。如果你指定ignore,跳過(guò)有唯一鍵的現(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ù)庫(kù)中。當(dāng)我們要把數(shù)據(jù)的一部分內(nèi)容導(dǎo)入的時(shí)候,,需要加入一些欄目(列/字段/field)到MySQL數(shù)據(jù)庫(kù)中,以適應(yīng)一些額外的需要。比方說(shuō),我們要從Access數(shù)據(jù)庫(kù)升級(jí)到MySQL數(shù)據(jù)庫(kù)的時(shí)候
下面的例子顯示了如何向指定的欄目(field)中導(dǎo)入數(shù)據(jù):
load data infile "/home/Ordertxt" into table Orders(Order_Number, Order_Date, Customer_ID);
2.6相對(duì)&絕對(duì)路徑
(1)如果給出一個(gè)絕對(duì)路徑名,服務(wù)器使用該路徑名。
(2)如果給出一個(gè)有一個(gè)或多個(gè)前置部件的相對(duì)路徑名,服務(wù)器相對(duì)服務(wù)器的數(shù)據(jù)目錄搜索文件。
(3)如果給出一個(gè)沒(méi)有前置部件的一個(gè)文件名,服務(wù)器在當(dāng)前數(shù)據(jù)庫(kù)的數(shù)據(jù)庫(kù)目錄尋找文件。
例如: /myfile txt”給出的文件是從服務(wù)器的數(shù)據(jù)目錄讀取,而作為“myfile txt”給出的一個(gè)文件是從當(dāng)前數(shù)據(jù)庫(kù)的數(shù)據(jù)庫(kù)目錄下讀取。
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常見(jiàn)問(wèn)題
3.1無(wú)法運(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
解決方法是:?jiǎn)?dòng)mysql客戶(hù)端是加上--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 -P1111
mysql導(dǎo)入數(shù)據(jù)load data infile用法
- 圖文教程mssqlserver數(shù)據(jù)庫(kù)導(dǎo)出到另外一個(gè)數(shù)據(jù)庫(kù)的方法
- SQLServer導(dǎo)出sql文件/表架構(gòu)和數(shù)據(jù)操作步驟
- sqlserver bcp(數(shù)據(jù)導(dǎo)入導(dǎo)出工具)一般用法與命令詳解
- sqlserver 導(dǎo)出插入腳本代碼
- SQLServer 數(shù)據(jù)導(dǎo)入導(dǎo)出的幾種方法小結(jié)
- SQLserver 2008將數(shù)據(jù)導(dǎo)出到Sql腳本文件的方法
- 使用Navicat Premium將SQLServer數(shù)據(jù)導(dǎo)出為sql格式
相關(guān)文章
sqlserver 字段值拼接的實(shí)現(xiàn)示例
拼接字段可以通過(guò)多種方法實(shí)現(xiàn),本文主要介紹了sqlserver字段值拼接的實(shí)現(xiàn)示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2024-07-07
SqlServer類(lèi)似正則表達(dá)式的字符處理問(wèn)題
這篇文章主要介紹了SqlServer類(lèi)似正則表達(dá)式的字符處理問(wèn)題,需要的朋友可以參考下2017-10-10
sql server的一個(gè)有趣的bit位運(yùn)算分享
sql server中沒(méi)有bool類(lèi)型,而是用bit類(lèi)型來(lái)表示bool值,估計(jì)是為了節(jié)省存儲(chǔ)空間,下面為大家介紹下這個(gè)有趣的bit位運(yùn)算,感興趣的朋友可以參考下2013-09-09
SQL Server基礎(chǔ)之行數(shù)據(jù)轉(zhuǎn)換為列數(shù)據(jù)
這篇文章主要給大家介紹了關(guān)于SQL Server基礎(chǔ)之行數(shù)據(jù)轉(zhuǎn)換為列數(shù)據(jù)的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用SQL Server具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-08-08
SQLserver中字符串查找功能patindex和charindex的區(qū)別
CHARINDEX 和 PATINDEX 函數(shù)都返回指定模式的開(kāi)始位置,PATINDEX 可使用通配符,而 CHARINDEX 不可以2012-05-05
SQLServer中bigint轉(zhuǎn)int帶符號(hào)時(shí)報(bào)錯(cuò)問(wèn)題解決方法
用一個(gè)函數(shù)來(lái)解決SQLServer中bigint轉(zhuǎn)int帶符號(hào)時(shí)報(bào)錯(cuò)問(wèn)題,經(jīng)測(cè)試可用,有類(lèi)似問(wèn)題的朋友可以參考下2014-09-09
SQL Server開(kāi)放(或關(guān)閉)端口連接的實(shí)現(xiàn)步驟
為了保證系統(tǒng)的安全性,可以關(guān)閉/開(kāi)啟端口,本文主要介紹了SQL Server開(kāi)放(或關(guān)閉)端口連接的實(shí)現(xiàn)步驟,具有一定的參考價(jià)值,感興趣的可以了解一下2023-11-11
解析SQL Server中datetimeset轉(zhuǎn)換datetime類(lèi)型問(wèn)題
這篇文章主要介紹了SQL Server中datetimeset轉(zhuǎn)換datetime類(lèi)型問(wèn)題淺析,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-12-12
SQL?Server下7種“數(shù)據(jù)分頁(yè)”方案全網(wǎng)最新最全
這篇文章主要介紹了SQL?Server下7種“數(shù)據(jù)分頁(yè)”方案,全網(wǎng)最全,本文下面重點(diǎn)闡述上述【第二種】方案在SQL?Server上的使用(其它種類(lèi)數(shù)據(jù)庫(kù)由于Sql語(yǔ)句略有差異,所以需要調(diào)整,但方案也類(lèi)似),需要的朋友可以參考下2023-01-01

