當前位置:首頁 » 數據倉庫 » perl開發資料庫實例
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

perl開發資料庫實例

發布時間: 2022-08-20 14:36:53

1. Perl下應當如何連接Access資料庫

一. 安裝Win32-ODBC模塊
步驟1:
從TOOLS欄目中下載Win32-ODBC.zip,下載完後用winzip解開到一個temp目錄,共有三個文件:
Readme
Win32-ODBC.ppd
Win32-ODBC.tar.gz

步驟2:
在DOS窗口下,temp目錄中運行下面的DOS命令:ppm install Win32-ODBC.ppd。
二. 准備測試用資料庫(Access)
步驟1:
啟動MS ACCESS,建立一個新空資料庫,命名為odbctest.mdb,保存在某一目錄中(記住路徑)。
步驟2:
然後新建一個表,建立三個欄位:
欄位名稱 數據類型 長度
Name 字元, 長度50
Email 字元, 長度50
Age 數字、長整型

將這個表保存為address(注意這個例子中,沒有用自動增加的ID。輸入若干記錄:
Nighthawk [email protected] 20 1234567
John [email protected] 24 0284393293
kit [email protected] 18 3948932

保存後,關閉資料庫文件。
步驟3:
打開控制面板中的 ODBC數據源(32位),在用戶DSN欄中,找到用戶數據源列表,選中名稱為「MS Access 97 Database」的一行,然後按「配置」鍵。
在Database框中按「Select..」,選擇步驟1.2中建立的資料庫文件odbctest.mdb,按OK即可。ODBC設置中的其它項目全部採用預設設置,然後就是OK,確定,關閉對話窗口。

2. ASP,JSP,JSP,Python,Ruby,PERL 腳本語言的的特徵和優點

ASP

ASP(Active Server Pages)動態網頁,是微軟公司推出的一種用以取代CGI(Common Gateway Interface)通用網關介面的技術。我們可以通過ASP結合HTML語言、ASP指令和ActiveX元件以及資料庫等方面知識,使用自己的 Web 伺服器創建並運行動態的互動式 Web 站點。ASP的主要優點大概可以歸納如下:

1、您可以用 VBScript 或JScript創建腳本,同時結合HTML語言就能夠非常方便地完成網站的應用程序。對於 VBScript和JScript,使用哪種語言並不重要,Web 伺服器等同地處理這兩種語言,並向用戶的瀏覽器發送 HTML 格式化結果。

2、因為ASP採用Script語言(VBScript和JScript)就可以輕松編寫程序,因此這就大節省了網路設計人員又得重新學習一種新語言的時間。而且編寫ASP無須手工compile編譯或鏈接程序,可在伺服器端直接執行,這無疑是更加方便了我們的編寫過程。

3、使用普通的使用記事本之類的文本編輯器,即可進行編輯設計,如:Windows的記事本。建議不要用FontPage98或DreamWeaver2.0等主頁製作軟體修改,因為他們會破壞源代碼的。在這里我建議使用CuteFTP攜帶的CuteHTML編輯器進行編輯設計。

4、ASP是運行在伺服器端,所以我們無須擔心瀏覽器是否支持ASP所使用的編程語言,用戶端只要使用可執行HTML碼的瀏覽器,即可瀏覽Active Server Pages所設計的網頁內容。ASP在伺服器端運行,當程序執行完畢後,伺服器僅將執行的結果返回給客戶瀏覽器,這樣也就減輕了客戶端瀏覽器的負擔,大大提高了交互的速度。

5、ASP能與任何ActiveX scripting語言相容。除了可用VBScript或JScript語言來設計外,還通過plug-in的方式,使用由第三方所提供的其他腳本語言,譬如Perl、Tcl等。腳本引擎是處理腳本程序的COM(Component Object Model)組件。

6、Active Server Pages的程序代碼隱藏,在客戶端上僅可以看到由ASP輸出的動態HTML文件。因而可以避免所寫的源程序被他人剽竊,也提高了程序的安全性。

7、可使用伺服器端的腳本來產生客戶端的腳本。

8、面向對象(Object oriented),並可擴展ActiveX Server組件功能。

9、ActiveX Server Components(ActiveX伺服器組件)具有無限可擴充性。你可以使用任何編程語言來編寫你所需要的ActiveX Server 組件。

10、可以通過ADO(ActiveX Data Objects,微軟的一種新的數據訪問模型,是一種可以提供WEB頁面開發者輕松存取Internet的資料庫,並可以在用戶端實現網上立即、即時更新顯示的最新WEB頁面資料庫技術。)非常方便地訪問資料庫,從而使存取資料庫變得輕松容易。

JSP

JSP(Java Server Pages)是由Sun Microsystems公司倡導、許多公司參與一起建立的一種動態網頁技術標准,本文簡單介紹JSP及其優點。

JSP(Java Server Pages)是由Sun Microsystems公司倡導、許多公司參與一起建立的一種動態網頁技術標准。 JSP技術是用JAVA語言作為腳本語言的,JSP網頁為整個伺服器端的JAVA庫單元提供了一個介面來服務於HTTP的應用程序。

在傳統的網頁HTML文件(*.htm,*.html)中加入Java程序片段(Scriptlet)和JSP標記(tag),就構成了JSP網頁(*.jsp)。Web伺服器在遇到訪問JSP網頁的請求時,首先執行其中的程序片段,然後將執行結果以HTML格式返回給客戶。程序片段可以操作資料庫、重新定向網頁以及發送 email 等等,這就是建立動態網站所需要的功能。所有程序操作都在伺服器端執行,網路上傳送給客戶端的僅是得到的結果,對客戶瀏覽器的要求最低,可以實現無Plugin,無ActiveX,無Java Applet,甚至無Frame。

JSP的優點:

·對於用戶界面的更新,其實就是由 Web Server進行的,所以給人的感覺更新很快。
·所有的應用都是基於伺服器的,所以它們可以時刻保持最新版本。
·客戶端的介面不是很繁瑣,對於各種應用易於部署、維護和修改。

Python

首先就以語法而論,python完全沒有perl的靈活緊湊。只能說是中庸,感覺和basic,pascal,java差不多。一個簡單的問題,如果沒有相應的類庫,也要寫上一段臃腫的代碼。唯一的好處是代碼臃腫卻直白,容易看懂--和basic一樣。

類庫-比perl真的是大大不如,只能覆蓋很小的范圍,更不用說java了,很多需要的工作都要自己來做。

快速開發--說實話,我覺得用python和用C++效率差不多。誰能告訴我python效率比C++高在哪裡嗎?對於perl我則可以毫不猶豫的說,是它語法的靈活,對於字元處理能力的強大。

很多人說python適合大型工程,但更多的人說,他們用python不過是作為一種原型語言來使用。。這本身不就有點矛盾嗎?呵呵 而且對於腳本來完成大型工程,我本身就持懷疑態度。

覺得python唯一的優點在於嵌入C++使用時體現出來的:支持OO,語法容易看懂,有一個boost.python

不是想引起論戰,只是不吐不快

Ruby

Ruby是面向對象的編程語言,她追求的是「簡便快捷的面向對象編程」。Ruby是解釋型語言,因此不需編譯即可快捷地編程。同時Ruby具有類似Perl的強大的文本處理功能,她可並不只是個玩具,您可以用她來進行實用的編程。此外,您還可以很方便地使用C語言來擴展Ruby的功能,因此可以把她當作各種庫的前端來使用。

若您曾經「想要一種簡單的面向對象的語言」,或者認為「Perl的功能雖然好用,但它的語法真讓人受不了」,又或者覺得「lisp系列語言的思想不錯,但到處都是括弧真讓人討厭,最起碼算式應該按照通常的樣式書寫」。那麼,Ruby或許能讓您滿意。

歸納以來,Ruby有以下優點。

解釋器
Ruby是解釋型語言,其程序無需編譯即可輕松執行。
變數無類型
Ruby的變數沒有類型,因此不必為靜態的類型匹配而煩惱。相應地,錯誤檢查功能也變弱了。
不需要變數聲明
所有變數均無需聲明即可立即使用。另外,從變數名即可判斷出是何種變數(局部變數,全局變數,實例變數)。
語法簡單
語法比較簡單,類似Algol系語法。
不需要內存管理
具有垃圾回收(Garbage Collect,GC)功能,能自動回收不再使用的對象。
一切都是對象
Ruby從一開始就被設計成純粹的面向對象語言,因此以整數等基本數據類型為首的所有東西都是對象,它們都有發送信息的統一介面。
類,繼承,方法
Ruby當然具有面向對象語言的基本功能。
特殊方法
可向某對象添加方法。例如,可以把GUI按鈕被按下時的動作作為方法記述下來,還可以用它來進行原型庫(prototypebase)的面向對象編程(有人這么干吧)。
用模塊進行混合插入(Mixin)
Ruby故意舍棄了多重繼承,但擁有混合插入功能。使用模塊來超越類的界限來共享數據和方法等。
迭代器
該功能可以將循環抽象化。
閉包
可以將某過程片段對象化。對象化後的該過程片段就稱作閉包。
功能強大的字元串操作/正則表達式
以Perl為樣板創造出了功能強大的字元串操作和正則表達式檢索功能。
擁有超長整數
添加超長整數功能後,可以計算非常大的整數。例如計算400的階乘也輕而易舉。
具有錯誤處理功能
錯誤處理功能可以使您編寫代碼處理出錯情況。
可以直接訪問OS
Ruby可以使用(UNIX的)絕大部分的系統調用。單獨使用Ruby也可以進行系統編程。
動態載入
若OS支持的話,可以在運行時讀入對象文件。
但Ruby也有下列缺點。
Ruby On Rails,優點是不像Struts那樣需要大量的配置文件,一切都採取默認的配置,包括訪問路徑,uri等,而這也是它的缺點,不能靈活的配置。
見笑,小弟看了幾天,一點見解。

RERL

第一. Perl強大的正則表示式(regular expression)比對以及字元串操作使這個工作變得簡單而沒有其它語言能相比。Perl 非常擅長於切割,扭轉,絞,弄平,總結,以及其它的操作文字文件。生物資料大部分是文字文件:物種名稱,種屬關系,基因或序列的註解,評住,目錄查閱, 甚至DNA序列也是類文字的。現在互相交換以以文字文件的形式存在的但是具有不兼容的資料格式生物信息資料是一個很頭疼的問題,perl的這個方面的優點,可以在這一方面解決不少問題.

第二. Perl 能容錯。生物資料通常是不完全的,錯誤或者說誤差從數據的產生時候可能就產生了.另外生物數據的某項值欄位可以被忽略 ,可能是空著的,或是某個欄位也就是某個值,被預期要出現好幾次(舉例來說,一個實驗可能被重復的操作),或是資料以手動輸入所以有錯誤。Perl並不介意某個值是空的或是有奇怪的字元。正規表示式能夠被寫成取出並且更正錯誤的一般錯誤。當然這種彈性也可能是各壞處。

還有,Perl 是組件導向的。Perl 鼓勵人們將他們的軟體寫成小模組,不論是用 Perl 函式庫模組或是正統的 Unix 工具導向的方式。外部程序能夠輕易的被整合進 Perl 程序,靠著管道(pipe),系統呼叫,或是插座(socket)。Perl5 引進的動態載入器允許人們使用 C 的函式,或者讓整個編程過的函式庫,被使用在 Perl 直譯器中。最近的成果是世界各地的智能結晶都會收錄在一組模組裡面,稱為」bioPerl」(請參考 Perl Journal)
Perl 很容易去寫並且能很快開發完。直譯器讓你不需要宣告你所有的函數型式以及資料型態,當未定義的函式被呼叫時只會引起一個錯誤,除錯器也能與Emacs很好的合作並且讓你能用令人舒服的交談式的開發模式。
Perl 是良好的原型語言。因為它快而且臟(quick and dirty),用 Perl 建構新演算的原型比直接寫成一個快的需要編程過的語言來的有意義。有時候發現結果是Perl已經夠快了,所以程序變不需要移植;更多情形是某人可以用C寫一個小的核心程序,編程成動態載入的模組或是外部的可執行程序,然後其它的部分用Perl來完成。這部分的例子可以參考 http://waldo.wi.mit.e/ftp/distribution/software/rhmapper/)。

有一點要強調的是, Perl 在寫作網頁 CGI 方面非常優秀,而且重要性隨著各實驗將資料發表在網路上之後更是增加。我在基因中心環境下使用 Perl 的經驗從頭到尾都是值得稱贊的。然而我發現 Perl 也有它的問題。它的鬆散的程序風格導致許多錯誤,這些在其它嚴格的語言都會被抓到。舉例來說,Perl 讓你在一個變數在被指定值之前就能使用,這是個很有用的特性當你需要的時候,但是卻是一個災難當你單純的打錯了辨識名稱。同樣的,很容易忘記要宣告一個函式裡面的區域變數,導致不小心地改到了全域變數。
最後,Perl 的不足之處在於建立圖形化的使用者介面。雖然 Unix忠實信徒所有事情都能在命令模式下完成,大多數的終端使用者卻不同意。視窗,選單,彈跳的圖案已經變成了必要的時尚。

直到最近,直到最近,Perl 的使用者界面(GUI)發展仍是不成熟的。然而 Nick Ing-Simmons的努力使得 perlTK(pTK) 的整合使得以 Perl 驅動的使用者介面在 X-window上面成為可能。我的夥伴和我曾經在 MIT 基因中心寫過幾個 pTK 為基礎的應用程序供互連網使用者,而且從頭到尾都是一個令人滿意的經驗。其它的基因中心則更大規模的使用 pTK,在某些地方已經成為主要的生產力。

3. 下為一perl編寫的腳本處理資料庫,請教這個中間的sql語句在干什麼

select
concat(left(starttime,2),':00:00') --取時間的前2位,就是小時, 如09:11:01就變成09:00:00
as d
from cellopt.hw_sector_hourly_0
where startdate = '$d' --條件為開始日期 由參數傳入
group by hour(starttime)";--按開始時間的小時進行分組

4. 為什麼資料庫管理很多用perl

主要是perl 對文本的處理: 方便,快捷, 搭建環境方便; 語言簡練並且要求不那麼嚴格;可以批量處理, 如果寫的好的話可以非常快速的完成;應用了正則表達式;有一些模塊來幫助更好的實現固有功能。

本人現在的工作是語音識別,train 語音的model ,每天都用perl來處理文件。比如:要刪掉70個文件中每個文件的第一列,或者更換特有的標簽等。
有時還結合批處理,完成工作。

具體的項目用perl的本人見的還比較少,如果真的想做項目的話,建議:C#,C++,java 都是不錯的選擇。

5. 如何用Perl訪問SQLite資料庫

其主要思路是:1.把資料庫分解成幾個asset文件。2.當需要打開資料庫時,如果資料庫不存在,就把那幾個asset文件重新合並成一個資料庫文件。3.如果資料庫的版本改變了,就在onUpgrade()方法中把資料庫文件刪除掉。下面是代碼://資料庫的預設路徑privatestaticfinalStringDB_PATH="/data/data/com.mypackage.myapp/databases/";privatestaticfinalStringDB_NAME="mydb.db";privatestaticfinalintDB_VERSION=2;privatestaticfinalStringDB_SPLIT_NAME="mydb.db.00";privatestaticfinalintDB_SPLIT_COUNT=3;privateSQLiteDatabasem_database;privatefinalContextm_context;/***Constructor*保存傳進來的context參數以用來訪問應用的asset和資源文件

6. 怎樣用perl從資料庫中提取數據並存成一個二維數組

1、使用雙層循環語句,就可以依次把數據順序讀入到一個二維數組當中了。
2、常式:
#include <stdio.h>
#include <string.h>
#define MAXLINE 3
#define MAXCOLUMN 10
void main(void){
FILE *fp; //文件指針
char arr[MAXLINE][MAXCOLUMN]={0}; //定義3行10列的二維數組並初始化
int i = -1;
if((fp=fopen("./test/filename.txt","r"))==NULL){ //打開txt文件
perror("File open error!\n");
return;
}
while((fgets(arr[++i],MAXCOLUMN+1,fp))!=NULL) //讀取一行並存到arr數組
printf("%d: ",i); //列印行號
//puts(arr[i]);
char *subarr = strtok(arr[i]," "); //以空格為分隔符從arr[i]中獲得字串
while(subarr!=NULL){
data[i][j] = atoi(subarr); //將字串轉為int型數據存入data數組
printf("%d\t",data[i][j]); //列印data[i][j
subarr = strtok(NULL," "); //繼續獲得arr[i]中的字串
j++; //data數組列加一
}
printf("\n");
}
//循環完畢後,所有數據已在data數組中
printf("\n");
fclose(fp); //關閉指針

7. 怎樣寫perl腳本用sql去操作大數據平台里的數據

你需要有資料庫的用戶名和密碼
use DBI;
$DSN = 'driver={SQL Server};Server=資料庫名; Database=表名;UID=用戶名;PWD=密碼;';
$dbh = DBI->connect("dbi:ODBC:$DSN",{'RaiseError' => 1,AutoCommit => 0});
$SQL = "SQL語句";

$Select = $dbh -> prepare($SQL);
$Select -> execute();
($cust_code) = $Select->fetchrow_array;