日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

mysql11导入数据_MySQL专题11之MySQL导出数据、MySQL导入数据

發布時間:2025/3/15 数据库 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql11导入数据_MySQL专题11之MySQL导出数据、MySQL导入数据 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1、MySQL導出數據

- ?MySQL中你可以使用SELECT...INTO OUTFILE語句來簡單的導出數據到文本文件中。

a、使用SELECT...INTO OUTFILE

- ?以下實例中我們將數據庫runoob_tbl數據導出到/tmp/tutorials.txt文件中:mysql>?SELECT?*?FROM?runoob_tbl

->?INTO?OUTFILE?'/tmp/tutorials.txt';

- ?你可以通過命令選項來設置數據輸出的指定格式,以下實例為導出CSV格式:mysql>?SELECT?*?FROM?passwd?INTO?OUTFILE?'/tmp/tutorials.txt'

->?FIELDS?TERMINATED?BY?','?ENCLOSED?BY?'"'

->?LINES?TERMINATED?BY?'\r\n';

- ?在下面的例子中,生成一個文件,各值用逗號隔開。這種格式可以被許多程序使用。SELECT?a,b,a+b?INTO?OUTFILE?'/tmp/result.text'

FIELDS?TERMINATED?BY?','?OPTIONALLY?ENCLOSED?BY?'"'

LINES?TERMINATED?BY?'\n'

FROM?test_table;

- ?SELECT ...INTO OUTFILE語句有以下屬性:

- ?LOAD DATA INFILE是SELECT ... INTO OUTFILE的逆操作,SELECT句法。為了將數據庫的數據寫入一個文件中,使用SELECT ...INTO OUTFILE,為了將文件讀回數據庫,使用LOAD DATA INFILE。

- ?SELECT ...INTO OUTFILE 'file_name"形式的SELECT可以把被選擇的行寫入到一個文件中。該文件被創建到服務器主機上,因此你必須擁有FILE權限,才能使用此語法。

- ?輸出不能是一個已經存在的文件,防止文件數據被篡改。

- ?你需要有一個登陸服務器的賬號來檢索文件,否則SELECT ...INTO OUTFILE不會起任何作用。

- ?在UNIX中,該文件被創建后是可讀的,權限由MySQL服務器所擁有。這意味著,雖然你可以讀取該文件,但是可能無法將其刪除。

b、導出表作為原始數據

- ?mysqldump是mysql用于轉存儲數據庫的實用程序。它主要產生一個SQL腳本,其中包含從頭重新創建數據庫所必需的命令CREATE TABLE INSERT等。

- ?使用mysqldump導出數據需要使用--tab選項來指定導出文件指定的目錄,該目標必須是可寫的。

- ?以下實例將數據表runoob_tbl導出到/tmp目錄中:$?mysqldump?-u?root?-p?--no-create-info?\

--tab=/tmp?RUNOOB?runoob_tbl

password?******

c、導出SQL格式的數據

- ?導出SQL格式的數據到指定文件,如下所示:$?mysqldump?-u?root?-p?RUNOOB?runoob_tbl?>?dump.txt

password?******

- ?以上命令創建的文件內容如下:--?MySQL?dump?8.23

--

--?Host:?localhost????Database:?RUNOOB

---------------------------------------------------------

--?Server?version???????3.23.58

--

--?Table?structure?for?table?`runoob_tbl`

--

CREATE?TABLE?runoob_tbl?(

runoob_id?int(11)?NOT?NULL?auto_increment,

runoob_title?varchar(100)?NOT?NULL?default?'',

runoob_author?varchar(40)?NOT?NULL?default?'',

submission_date?date?default?NULL,

PRIMARY?KEY??(runoob_id),

UNIQUE?KEY?AUTHOR_INDEX?(runoob_author)

)?TYPE=MyISAM;

--

--?Dumping?data?for?table?`runoob_tbl`

--

INSERT?INTO?runoob_tbl

VALUES?(1,'Learn?PHP','John?Poul','2007-05-24');

INSERT?INTO?runoob_tbl

VALUES?(2,'Learn?MySQL','Abdul?S','2007-05-24');

INSERT?INTO?runoob_tbl

VALUES?(3,'JAVA?Tutorial','Sanjay','2007-05-06');

- ?如果你需要導出整個數據庫的數據,可以使用以下命令:$?mysqldump?-u?root?-p?RUNOOB?>?database_dump.txt

password?******

- ?如果你需要備份所有數據庫,可以使用以下命令:$?mysqldump?-u?root?-p?--all-databases?>?database_dump.txt

password?******

- ?--all-databases選項在MySQL3.23.12以及以后版本中加入。(該方法可用于實現數據庫的備份策略)

d、將數據表以及數據庫拷貝至其他主機

- ?如果你需要將數據拷貝至其他的MySQL服務器上,你可以在mysqldump命令中指定數據庫名以及數據表。

- ?在源主機上執行以下命令,將數據備份至dump.txt文件中。$?mysqldump?-u?root?-p?database_name?table_name?>?dump.txt

password?*****

- ?如果完整備份數據庫,則無需使用特定的表名稱。

- ?如果你需要將備份的數據庫導入到MySQL服務器中,可以使用以下命令,使用以下命令你需要確認數據庫已經創建:$?mysql?-u?root?-p?database_name?

password?*****

- ?你也可以使用以下命令將導出的數據直接導入到遠程的服務器上,但是請確保兩臺服務器是相通的,是可以相互訪問的:$?mysqldump?-u?root?-p?database_name?\

|?mysql?-h?other-host.com?database_name

- ?以上命令中使用了管道來將導出的數據導入到指定的遠程主機上。

2、MySQL導入數據

- ?MySQL中可以使用兩種簡單的方式來導入MySQL導出的數據。

a、使用LOAD DATA導入數據

- ?MySQL中提供了LOAD DATA INFILE語句來插入數據。以下實例中將從當前目錄中讀取文件dump.txt,將該文件中的數據插入到當前數據庫的mytbl表中。mysql>?LOAD?DATA?LOCAL?INFILE?'dump.txt'?INTO?TABLE?mytbl;

- ?如果指定LOCAL關鍵詞,則表明從客戶主機上按路徑讀取文件。如果沒有指定,則文件在服務器上按路徑讀取文件。你能明確地在LOAD DATA語句中指出列值的分隔符和行尾標記,但是默認標記是定位符和換行符。

- ?兩個命令的FIELDS和LINES子句的語法是一樣的。兩個子句都是可選的,但是如果兩個同時被指定,FIELDS子句必須出現在LINES子句之前。

- ?如果用戶指定一個FILED子句,它的子句(TERMINATED BY、[OPTIONALLY] ENCLOSED BY 和 ESCAPED BY)也是可選的,不過,用戶必須至少指定它們中的一個。mysql>?LOAD?DATA?LOCAL?INFILE?'dump.txt'?INTO?TABLE?mytbl

->?FIELDS?TERMINATED?BY?':'

->?LINES?TERMINATED?BY?'\r\n';

- ?LOAD DATA默認情況下是按照數據文件中列的順序插入數據的,如果數據文件中的列與插入表中的類不一致,則需要指定列的順序。

- ?如,在數據文件中的列順序是a,b,c,但是在插入表的列順序是b,c,a,則數據導入語法如下:mysql>?LOAD?DATA?LOCAL?INFILE?'dump.txt'

->?INTO?TABLE?mytbl?(b,?c,?a);

b、使用mysqlimport導入數據

- ?mysqlimport客戶端提供了LOAD DATA INFILEQL語句的一個命令行接口。mysqlimport的大多數選項直接對應LOAD DATA INFILE子句。

- ?從文件dump.txt中將數據導入到mysql數據表中,可以使用以下命令:$?mysqlimport?-u?root?-p?--local?database_name?dump.txt

password?*****

- ?mysqlimport命令可以指定選項來設置指定格式,命令語句格式如下:$?mysqlimport?-u?root?-p?--local?--fields-terminated-by=":"?\

--lines-terminated-by="\r\n"??database_name?dump.txt

password?*****

- ?mysqlimport語句中使用--columns選項來設置列的順序:$?mysqlimport?-u?root?-p?--local?--columns=b,c,a?\

database_name?dump.txt

password?*****

- ?mysqlimport的常用選項介紹:選項功能

-d or --delete新數據導入數據表中之前刪除數據數據表中的所有信息

-f or --force不管是否遇到錯誤,mysqlimport將強制繼續插入數據

-i or --ignoremysqlimport跳過或者忽略那些有相同唯一關鍵字的行, 導入文件中的數據將被忽略。

-l or -lock-tables數據被插入之前鎖住表,這樣就防止了,你在更新數據庫時,用戶的查詢和更新受到影響。

-r or -replace這個選項與-i選項的作用相反;此選項將替代表中有相同唯一關鍵字的記錄。

--fields-enclosed- by= char指定文本文件中數據的記錄時以什么括起的, 很多情況下數據以雙引號括起。 默認的情況下數據是沒有被字符括起的。

--fields-terminated- by=char指定各個數據的值之間的分隔符,在句號分隔的文件中,分隔符是句號。您可以用此選項指定數據之間的分隔符。默認的分隔符是跳格符(Tab)

--lines-terminated- by=str此選項指定文本文件中行與行之間數據的分隔字符串或者字符。 默認的情況下mysqlimport以newline為行分隔符。您可以選擇用一個字符串來替代一個單個的字符:一個新行或者一個回車。

總結

以上是生活随笔為你收集整理的mysql11导入数据_MySQL专题11之MySQL导出数据、MySQL导入数据的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。