歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> PERL編程

MySQL & Perl, 便利之合

  by Georges Tarbouriech     What about this nice pair ?  mysql是一種關系型數據庫系統(RDBMS),其主頁為http://www.mysql.com/。它由GNU GPL發布並供免費使用,請注意閱讀版權聲明。 它可以在許多平台上工作,既作服務器同時又是客戶端。除MySQL之外還有一些其它的自由軟件性質的RDBMS,在這裡不作任何比較,本文僅討論MYSQL。我們也不將其與那些大型商業數據庫像 Informix,Oracle,Sybase等作比,有足夠理由相信MySQL是Internet上使用最廣泛的數據庫系統之一。在這篇文章裡我們使用的MySQL版本是3.23.36。現在的穩定發行版本是3.23.46,而苦苦等待的4.0版仍在測試之中。人們可以從網上下載到它們的源代碼或包文件。  為了將MySQL與Perl結合使用,你還需要些東西: Perl DBI模塊。至少你應該下載DBI, Msql-Mysql-modules, Data-Dumper和Data-ShowTable等。  本文不介紹它們的安裝過程,因為那很簡單,同時包中的說明文件已經提供了你需要知道的所有內容。   Perl全稱是實用摘錄與報告語言(Practical Extraction and Report Language)。 最初它用於文件處理(分析,摘要...),很快它的功能就有了擴展。 你幾乎可以用它來做任何任何事情:系統管理,CGI腳本程序以及數據庫接口程序。  Perl包含於許多(如果不能稱是全部的話)Unix發行版本中,它們中有些是免費的,有些不是。本文寫作時,穩定的版本是5.6.1,版本5.7.2在測試中。本文采用的是5.005_03,很不錯的一個版本,盡管老點。如果你的機子還沒有裝Perl,你可以從http://www.perl.com/下載。Perl提供了許多模塊,用它們幾乎可以完成任何事,你可以從這個網站的CPAN欄目找到它們。  最後一點,為了讓這兩種軟件真正開始工作,你還需要一個web服務器。Apache應該是一個不錯的選擇,它集成於多種Unix系統中。如果你還沒有,可以到http://www.apache.org/下載。       使用的范例  你也許已經注意到LinuxFocus雜志有多種語言的版本。這就意味著作為編輯需要同時管理新文章以及它的譯文版本。一般情況下,我們可以看到大約200篇文章,平均每篇文章有5個語言的版本,這樣產生了大約1000篇文章並且還在繼續增長!這些文章需要被存檔,格式標准化,總結及摘要.....應該怎麼做這些事?當然,用Perl!   我們的總編Guido Socher編寫的許多perl程序使我們的工作變的簡單了許多,他寫過一本三部頭的 Perl教程和一本評論Perl的書。參照本文末尾的參考文獻部分。   Javi,我們的西班牙編輯,用Perl編寫了一個程序來管理翻譯進度。  Atif是我們的明星作者,他來自perl王國,所以他的母語就是Perl。 他同時也撰寫關於MySQL方面文章,致力於一個WEB管理工具改進工作。同樣你可以在參考文獻部分找到他。   總之,如果你在尋找一個Perl世界,加入LinuxFocus。   我是LinuxFocus法文版的編輯之一,我更懶,於是創建了自己的LinuxFocus數據庫,猜猜用什麼: MySQL 和Perl!       建立數據庫  首先你應當已經正確安裝了MySQL,並配置好用戶密碼。關於安裝並不是本文討論的內容,MySQL自帶的大量文檔已經描述了所有細節。   用mysql.server啟動MySQL服務器,這個命令同時調用 safe_mysqld 守護進程,因此你可以給它傳參。  用    mysql -h host -u user -p    連接到服務器,如果服務器就裝在你本機上,就不用加參數-h host。   輸入密碼無誤後,你將連接到服務器。現在可以建立自己的數據庫了。   在mysql命令提示符狀態下輸入   CREATE DATABASE lf;    ,這個是我們的示范數據庫(lf代表LinuxFocus),你可以根據你的需要命名成別的。接下來就是給用戶授權了,當然首先你要有足夠的權限(你需要用有administrator權限的用戶連接)。如果需要讓某個用戶管理數據庫,通過   GRANT ALL ON lf.* TO username;     給他授權。輸入   USE lf     選擇剛才創建的數據庫,並創建一張表。在這裡我們創建的表是trissue,命令格式為:   CREATE TABLE trissue (num INTEGER UNSIGNED, category VARCHAR(25), title VARCHAR(40), author VARCHAR(20), en VARCHAR(20), es VARCHAR(20), fr VARCHAR(20),de VARCHAR(20), nl VARCHAR(20), ru VARCHAR(20), tk VARCHAR(20), issue VARCHAR(20));     通過下面的命令可以檢查一下我們剛才創建的表內容是否正確   USE lf  SHOW TABLES;   DESCRIBE trissue;       下面我們需要在表中填入數據,往一張空表中導入數據的最簡單的方法就是使用一個帶TAB分隔符的文本文件。如果文本文件已經准備好,輸入   LOAD DATA LOCAL INFILE "maindb.txt" INTO TABLE trissue;     如果你的文本文件沒有問題,那麼現在這張表就已經填好數據,你可以通過輸入以下命令檢驗一下:   SELECT * FROM trissue;     這將導致顯示一個很長的列表。現在,你就可以進行查詢來獲得任何類型的數據了。  ok,到現在為止,我們僅僅用了MySQL,就可以做任何事情,那麼,用Perl來做什麼?        Perl的工作  Perl可以幫助我們自動進行查詢,將結果顯示到一個WEB浏覽器上,等等。重復一遍,首先需要為Perl安裝正確的模塊使之能與MYSQL聯合工作。   現在我們用Perl來寫一個CGI腳本。它的作用是將Perl與Html技術結合以實現查詢數據庫並將結果格式化輸出。  我們用一個簡單的腳本來查詢某一作者的所有文章,顯示文章的編號,分類,標題,不同語言版本的翻譯者的姓名,發表文章的雜志期號。   你可以將這個腳本當作一個模塊使用,但是注意這個例程並不是一個非常可靠的程序。你可以從下面的鏈接下載到一個有詳細注釋的版本。=>hereexecute;     接著用腳本去顯示查詢結果。如果我們不限制查詢條件,將會顯示出數據庫的所有內容,如果我們提供一個作者姓名,則會顯示出與該作者相關的所有文章。當你的數據庫有上千條記錄時,不推薦顯示出所有內容!   print
Copyright © Linux教程網 All Rights Reserved