在建設網站的過程中,經常要處理一些數據的導入及導出。在mysql數據庫中,有兩種方法來處理數據的導出(一般)。
1. 使用select * from table_name into outfile "file_name";
2. 使用mysqldump實用程序
下面我們來舉例說明:
假設我們的數據庫中有一個庫為samp_db,一個表為samp_table。現在要把samp_table的數據導出。則我們可以利用以下方法來實現:
在mysql提示符下打入select * from samp_table into outfile "file_name";
在系統命令提示符下打入mysqldump -u root samp_db samp_table >samp.sql
(當然mysqldump有很多選項。如 -d 表示只導出表結構;-t 表示只導入表數據)
如何來處理數據的導入:一般我們在系統命令提示符下打入mysqlimport -u root samp_db samp_table.txt(注意:這個txt文件名必須以表的名字命名)。對於mysqldump導出的數據我們還可以用mysql -u root samp_db < file_name來導入。在mysql提示符下我們用load data infile "file_name" into table samp_table。
另外除了以上方法,對於移動後的數據庫系統與原系統一致的前提下,我們可以通過文件的拷貝來實現數據的導入與導出.首先我們用mysqladmin -u root variables(在系統命令提示符下)或者用show variables;(在mysql提示符下)來找到datadir。如在我的環境下,此目錄在c:mysqldata.然後對其中的一些文件進行拷貝。一切ok!
有了以上知識後,我們進入正題:如何把access的數據導入到mysql中。
首先我們把數據從access中導出為文本文件。在導出過程中注意選擇好字段分隔符和文本標識符,且查看一下文本文件,確定一個記錄是否在同一行上,如不是,則手工把回車鍵除掉.假如我們導出的文本文件為c:samp_table.txt.其內容如下:
1,張新化,男
2,江先進,女
…..
接下來我們用mysqlimport -u root -fields-terminated-by="," samp_db samp_table.txt ,或者用load data infile "c:samp_table.txt" into table samp_table fields terminated by ",";
去試一下(注意轉義字符),是不是一切ok!如果還不行,請仔細看一下具體命令的幫助。下面列出一些選項:
fields-enclosed-by=char 指明列值應包括在指定的字符中。通常用引號、缺省時,假定列值不包括在任何字符中。
fields-escaped-by=char 表示用於轉義特殊字符的轉義符.缺省時表示無轉義符。
fields-terminated-by=char 指定分隔列的字符。缺省時假定列值由制表符分隔。
lines-terminated-by=str 指定結束輸入行的串(可以是多字符的)。缺省時假定由換行符終止行。
又是一篇比較有年代的文章,從老站點上轉過來。
本文來自學習網(www.gzu521.com),原文地址:http://www.gzu521.com/campus/article/program/200401/592.htm