| 1).mysqlimport的語(yǔ)法介紹:
mysqlimport位于mysql/bin目錄中,是mysql的一個(gè)載入(或者說(shuō)導入)數據的一個(gè)非常有效的工具。這是一個(gè)命令行工具。有兩個(gè)參數以及大量的選項可供選擇。這個(gè)工具把一個(gè)文本文件(text file)導入到你指定的數據庫和表中。比方說(shuō)我們要從文件Customers.txt中把數據導入到數據庫Meet_A_Geek中的表Custermers中: mysqlimport Meet_A_Geek Customers.txt 注意:這里Customers.txt是我們要導入數據的文本文件, 而Meet_A_Geek是我們要操作的數據庫, 數據庫中的表名是Customers,這里文本文件的數據格式必須與Customers表中的記錄格式一致,否則mysqlimport命令將會(huì )出錯。 其中表的名字是導入文件的第一個(gè)句號(.)前面文件字符串,另外一個(gè)例子: mysqlimport Meet_A_Geek Cus.to.mers.txt 那么我們將把文件中的內容導入到數據庫Meet_A_Geek 中的Cus表中。 上面的例子中,都只用到兩個(gè)參數,并沒(méi)有用到更多的選項,下面介紹mysqlimport的選項 2).mysqlimport的常用選項介紹:
選項 功能 -d or --delete 新數據導入數據表中之前刪除數據數據表中的所有信息 -f or --force 不管是否遇到錯誤,mysqlimport將強制繼續插入數據 -i or --ignore mysqlimport跳過(guò)或者忽略那些有相同唯一關(guān)鍵字的行, 導入文件中的數據將被忽略。 -l or -lock-tables 數據被插入之前鎖住表,這樣就防止了, 你在更新數據庫時(shí),用戶(hù)的查詢(xún)和更新受到影響。 -r or -replace 這個(gè)選項與-i選項的作用相反;此選項將替代表中有相同唯一關(guān)鍵字的記錄。 --fields-enclosed- by= char 指定文本文件中數據的記錄時(shí)以什么括起的, 很多情況下數據以雙引號括起。 默認的情況下數據是沒(méi)有被字符括起的。 --fields-terminated- by=char 指定各個(gè)數據的值之間的分隔符,在句號分隔的文件中,分隔符是句號。您可以用此選項指定數據之間的分隔符。默認的分隔符是跳格符(Tab) --lines-terminated- by=str 此選項指定文本文件中行與行之間數據的分隔字符串 或者字符。 默認的情況下mysqlimport以newline為行分隔符。 您可以選擇用一個(gè)字符串來(lái)替代一個(gè)單個(gè)的字符: 一個(gè)新行或者一個(gè)回車(chē)。 mysqlimport命令常用的選項還有-v 顯示版本(version), -p 提示輸入密碼(password)等。 3).例子:導入一個(gè)以逗號為分隔符的文件
文件中行的記錄格式是這樣的: "1", "ORD89876", "1 Dozen Roses", "19991226" 我們的任務(wù)是要把這個(gè)文件里面的數據導入到數據庫Meet_A_Geek中的表格Orders中, 我們使用這個(gè)命令: bin/mysqlimport –prl –fields-enclosed-by=" –fields-terminated-by=, Meet_A_Geek Orders.txt 這個(gè)命令可能看起來(lái)很不爽,不過(guò)當你熟悉了之后,這是非常簡(jiǎn)單的。第一部分,bin/mysqlimport ,告訴操作系統你要運行的命令是mysql/bin目錄下的mysqlimport,選項p是要求輸入密碼,這樣就要求你在改動(dòng)數據庫之前輸入密碼,操作起來(lái)會(huì )更安全。 我們用了r選項是因為我們想要把表中的唯一關(guān)鍵字與文件記錄中有重復唯一關(guān)鍵字的記錄替換成文件中的數據。我們表單中的數據不是最新的,需要用文件中的數據去更新,因而就用r這個(gè)選項,替代數據庫中已經(jīng)有的記錄。l選項的作用是在我們插入數據的時(shí)候鎖住表,這樣就阻止了用戶(hù)在我們更新表的時(shí)候對表進(jìn)行查詢(xún)或者更改的操作。
| |