版權聲明:該文為本人原創,可以自由轉載,但不得用于商業途徑,并且需保留原作者名和本站地址.
參考資料:
1)mysql入門:http://space.lzu.edu.cn/homeof/usmot/bbs/show.asp?id=85
2)mysql數據類型:http://blog.xinweb.org/?action=show&id=20
3)mysql中文手冊:http://www.linuxforum.net/books/mysqlmanual/manual_toc.html
4)mysql導入導出:http://it.yn.cninfo.net/pubnews/doc/read/8742421943220786691/103.oldsystem14.2635/index.asp
背景說明:
由于要做ftp搜索引擎的新版,即把目前VB+ACCESS+ASP的版本轉換成C+Mysql+PHP版
打算WEB開發和底層開發同時進行
所以得先想辦法把Access中的數據轉到Mysql中
那么如何實現呢?
轉入正題
下面,一步一個腳印開始把Access數據轉換成Mysql的哦
第一步:
根據Access中數據庫的邏輯結構[或者是以前寫好的數據庫設計文檔哦]
在Mysql下設計并創建出對應的數據庫
先看看Access中的幾個表的結構,并進行初步的數據類型轉換哦
site_tab //站點信息表
字段名稱 數據類型(Access) 數據類型(Mysql)
id 數字 int
site 文本 char(15)
port 數字 int
user 文本 char(15)
pw 文本 char(15)
acc 是/否 enum('N','Y')
indb 是/否 enum('N','Y')
info 備注 text
key_tab //關鍵字統計表
key 文本 char(100)
acctime 數字 int
file_tab //文件表
file Text(100) char(100)
postfix Text(4) char(4)
pid Integer int
ipid Integer int
acctime long int
cat_tab //目錄表
id Integer int
cat Text(100) char(100)
postfix Text(4) char(1) //這個可以考慮刪除掉,因為多余
pid Integer int
ipid Integer int
acctime long int
下面根據上面的轉換,創建mysql下的數據庫和對應的表項
[注意:上面涉及到的Mysql的數據類型可能選擇地不夠合適,需要日后調整]
先創建庫,取名為falcon_search
create database falcon_search;
創建表site_tab
create table site_tab
(
id int not null primary key,
site char(15) not null,
port int default 21,
user char(15) not null default 'anonymous',
pw char(15) not null default 'falcon',
acc enum('N','Y') default 'N',
indb enum('N','Y') default 'N',
info text
);
創建表key_tab
create table key_tab
(
skey char(100) binary not null unique ,
acctime int default 0
);
創建表cat_tab
create table cat_tab
(
id int,
cat char(100) binary not null,
postfix char(1) binary,
pid int references cat_tab(id),
ipid int references site_tab(id),
acctime int,
primary key(id,ipid)
);
創建文件表file_tab
create table file_tab
(
file char(100) binary not null,
postfix char(4) binary not null,
pid int references cat_tab(id),
ipid int references site_tab(id),
acctime int
);
//由于文件重名的情況比較多,所以無須設置主關鍵字
第二步:
數據庫和表都創建好拉,我們現在得想辦法把數據從Access弄到Mysql下
怎么弄呢?
1)先把Access中的數據導出為txt文件[文本文件]
具體辦法:打開要操作的Access數據庫后,選擇"文件">>導出>>文本文件
在選擇導出后會彈出一個窗口,我們通過單擊"高級"設置其中的字段分割符為{tab},文本識別符號改成{無},當然還可以進行其他的設置哦.
注意:對應的各個文件的文件名取名為對應的表名哦(統一一下,方便后面操作)
2)之后,復制到mysql下的bin所在目錄下
第三步:
設法把文本文件中的數據導入到剛才創建的表中,要對應起來哦
主要用到該句:LOAD DATA LOCAL IN FILE 存有數據的文本文件名 INTO TABLE 表名;
下面我們通過該辦法一個一個地把數據從文本文件中導入對應的表中
1)site_tab.txt===>site_tab
load data local infile "site_tab.txt" into table site_tab;
ok,成功拉,不過好象有警告哦
我們先用select * site_tab;看看
原來,acc和indb全為空的
現在我們只要把acc和indb的值更新為'N'就可以拉:
update site_tab set indb="N";
update site_tab set acc="N";
2)key_tab.txt===>key_tab
load data local infile "key_tab.txt" into table key_tab;
3)cat_tab.txt===>cat_tab
load data local infile "cat_tab.txt" into table cat_tab;
4)file_tab.txt===>file_tab
load data local infile "file_tab.txt" into table file_tab;
呵呵,ok,我們成功的把數據從Access導入到Mysql里頭拉
其實我們完全可以把這些操作更簡化一些,有時間再弄,呵呵
兄弟姐妹們還有什么好的簡單辦法,不妨到后面跟貼哦
關于把文本文件里頭的數據轉入postgresql中:
Quote: |
將SQLSERVER的數據導入到postgresql中 在linux
的實際應用過程中,經常要處理一些數據的導入及導出 ,特別是將windows平臺的數據導到linux平臺的數據庫中.
從網上的一篇“如何把ACCESS的數據導入到Mysql中”文中,我獲得了一些啟示,成功的將sqlserver數據導到了postgresql數據庫
中。 實現手段如下: postgresql有一個非常有用的sql命令COPY — 在表和文件之間拷貝數據 , 語法 COPY [ BINARY ] table [ WITH OIDS ] FROM { filename | stdin } [ [USING] DELIMITERS delimiter ] [ WITH NULL AS ull string ] COPY [ BINARY ] table [ WITH OIDS ] TO { filename | stdout } [ [USING] DELIMITERS delimiter ] [ WITH NULL AS ull string ] 詳細請參見postgresql7.1.1 document中文版(http://laser.zhengmai.com.cn/pgsqldoc-7.0c/sql-copy.htm)說明。 首
先我們把數據從sqlserver中導出為文本文件.在導出過程中注意選擇好字段分隔符和文本標識符,且查看一下文本文件,確定一個記錄是否在同一行上,
如不是,則手工把回車鍵除掉.假如我們導出的文本文件為c:\friend.txt.把它拷貝到linux下 /usr/test/目錄下。其內容如下: 1,云飛揚,男,南京六合,徐州建院 2,孫高勇,男,南京六合,徐州建院 3,朱曉玲,女,南京,未知 我們要將數據從linux文件復制到表friends(表的結構要同文本文件的格式一致字段如下:id,name,sex,address,school),使 用“,”字符作為分隔線: copy friends FROM /usr/test/friend.txt USING DELIMITERS ','; 去試一下(注意轉義字符),是不是一切ok! 當然拉,這種方法還是比較麻煩地,不知各位還有什么更好的方法,請告訴我,我的email:yfy002@21cn.com
參考文檔:1.如何把ACCESS的數據導入到Mysql中 2.postgresql7.1.1 document中文版(http://laser.zhengmai.com.cn)
|
參考http://www.akae.cn/bbs/redirect.php?fid=24&tid=3584&goto=nextoldset