中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

PostgreSQL如何連接Perl

發布時間:2021-11-17 16:12:22 來源:億速云 閱讀:157 作者:iii 欄目:web開發

這篇文章主要講解了“PostgreSQL如何連接Perl”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“PostgreSQL如何連接Perl”吧!

安裝

PostgreSQL可以用Perl使用Perl DBI模塊,這是一個Perl編程語言的數據庫訪問模塊集成。它定義了一套方法,變數和約定,提供一個標準的數據庫接口。

下面是簡單的步驟,Linux/Unix機器上安裝DBI模塊:

$ wget http://search.cpan.org/CPAN/authors/id/T/TI/TIMB/DBI-1.625.tar.gz $ tar xvfz DBI-1.625.tar.gz $ cd DBI-1.625 $ perl Makefile.PL $ make $ make install

如果需要安裝DBI的SQLite的驅動,那么它可以被安裝如下:

$ wget http://search.cpan.org/CPAN/authors/id/T/TU/TURNSTEP/DBD-Pg-2.19.3.tar.gz $ tar xvfz DBD-Pg-2.19.3.tar.gz $ cd DBD-Pg-2.19.3 $ perl Makefile.PL $ make $ make install

在開始使用Perl的PostgreSQL的接口,需要在PostgreSQL安裝目錄中找到pg_hba.conf文件,并添加下面一行:

# IPv4 local connections: host    all         all         127.0.0.1/32          md5

可以使用下面的命令啟動/重新啟動Postgres的服務器的如果它沒有運行:

[root@host]# service postgresql restart Stopping postgresql service:                               [  OK  ] Starting postgresql service:                               [  OK  ]

DBI 接口APIs

以下是重要的DBI例程,可以根據要求使用Perl程序操作SQLite數據庫。如果更復雜的應用程序,那么可以看看到的Perl DBI官方文檔。

PostgreSQL如何連接Perl

連接到數據庫

下面的Perl代碼顯示了如何連接到一個現有的數據庫。如果數據庫不存在,那么它就會被創建,終于將返回一個數據庫對象。

  1. #!/usr/bin/perl 

  2.  

  3. use DBI; 

  4. use strict; 

  5.  

  6. my $driver   = "Pg";  

  7. my $database = "testdb"; 

  8. my $dsn = "DBI:$driver:dbname=$database;host=127.0.0.1;port=5432"; 

  9. my $userid = "postgres"; 

  10. my $password = "pass123"; 

  11. my $dbh = DBI->connect($dsn, $userid, $password, { RaiseError => 1 })  

  12.                       or die $DBI::errstr; 

  13.  

  14. print "Opened database successfully\n";

現在讓我們運行上面的程序來打開我們的數據庫testdb中,如果成功打開數據庫,然后它會給下面的消息:

  1. Open database successfully

創建表

下面的Perl程序將在以前創建的數據庫中創建一個表:

  1. #!/usr/bin/perl 

  2.  

  3. use DBI; 

  4. use strict; 

  5.  

  6. my $driver   = "Pg";  

  7. my $database = "testdb"; 

  8. my $dsn = "DBI:$driver:dbname=$database;host=127.0.0.1;port=5432"; 

  9. my $userid = "postgres"; 

  10. my $password = "pass123"; 

  11. my $dbh = DBI->connect($dsn, $userid, $password, { RaiseError => 1 }) 

  12.                       or die $DBI::errstr; 

  13. print "Opened database successfully\n"; 

  14.  

  15. my $stmt = qq(CREATE TABLE COMPANY 

  16.       (ID INT PRIMARY KEY     NOT NULL, 

  17.        NAME           TEXT    NOT NULL, 

  18.        AGE            INT     NOT NULL, 

  19.        ADDRESS        CHAR(50), 

  20.        SALARY         REAL);); 

  21. my $rv = $dbh->do($stmt); 

  22. if($rv < 0){ 

  23.    print $DBI::errstr; 

  24. } else { 

  25.    print "Table created successfully\n"; 

  26. $dbh->disconnect();

上述程序執行時,它會在數據庫testdb 創建COMPANY 表公司,它會顯示以下消息:

Opened database successfully Table created successfully

 INSERT 操作

Perl程序,顯示我們如何在上面的例子中創建COMPANY 表中的記錄:

#!/usr/bin/perl  use DBI; use strict;  my $driver   = "Pg";  my $database = "testdb"; my $dsn = "DBI:$driver:dbname=$database;host=127.0.0.1;port=5432"; my $userid = "postgres"; my $password = "pass123"; my $dbh = DBI->connect($dsn, $userid, $password, { RaiseError => 1 })                       or die $DBI::errstr; print "Opened database successfully\n";  my $stmt = qq(INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY)       VALUES (1, 'Paul', 32, 'California', 20000.00 )); my $rv = $dbh->do($stmt) or die $DBI::errstr;  $stmt = qq(INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY)       VALUES (2, 'Allen', 25, 'Texas', 15000.00 )); $rv = $dbh->do($stmt) or die $DBI::errstr;  $stmt = qq(INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY)       VALUES (3, 'Teddy', 23, 'Norway', 20000.00 )); $rv = $dbh->do($stmt) or die $DBI::errstr;  $stmt = qq(INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY)       VALUES (4, 'Mark', 25, 'Rich-Mond ', 65000.00 );); $rv = $dbh->do($stmt) or die $DBI::errstr;  print "Records created successfully\n"; $dbh->disconnect();

上述程序執行時,它會創建COMPANY表中的記錄,并會顯示以下兩行:

Opened database successfully Records created successfully

SELECT 操作

Perl程序,表明我們如何獲取并顯示在上面的例子中創建表COMPANY 中的記錄:

#!/usr/bin/perl  use DBI; use strict;  my $driver   = "Pg";  my $database = "testdb"; my $dsn = "DBI:$driver:dbname=$database;host=127.0.0.1;port=5432"; my $userid = "postgres"; my $password = "pass123"; my $dbh = DBI->connect($dsn, $userid, $password, { RaiseError => 1 })                       or die $DBI::errstr; print "Opened database successfully\n";  my $stmt = qq(SELECT id, name, address, salary  from COMPANY;); my $sth = $dbh->prepare( $stmt ); my $rv = $sth->execute() or die $DBI::errstr; if($rv < 0){    print $DBI::errstr; } while(my @row = $sth->fetchrow_array()) {       print "ID = ". $row[0] . "\n";       print "NAME = ". $row[1] ."\n";       print "ADDRESS = ". $row[2] ."\n";       print "SALARY =  ". $row[3] ."\n\n"; } print "Operation done successfully\n"; $dbh->disconnect();

當上述程序執行時,它會產生以下結果:

Opened database successfully ID = 1 NAME = Paul ADDRESS = California SALARY =  20000  ID = 2 NAME = Allen ADDRESS = Texas SALARY =  15000  ID = 3 NAME = Teddy ADDRESS = Norway SALARY =  20000  ID = 4 NAME = Mark ADDRESS = Rich-Mond SALARY =  65000  Operation done successfully

UPDATE 操作

Perl代碼顯示如何,我們可以使用UPDATE語句來更新任何記錄,然后從COMPANY 表獲取并顯示更新的記錄:

#!/usr/bin/perl  use DBI; use strict;  my $driver   = "Pg";  my $database = "testdb"; my $dsn = "DBI:$driver:dbname=$database;host=127.0.0.1;port=5432"; my $userid = "postgres"; my $password = "pass123"; my $dbh = DBI->connect($dsn, $userid, $password, { RaiseError => 1 })                       or die $DBI::errstr; print "Opened database successfully\n";  my $stmt = qq(UPDATE COMPANY set SALARY = 25000.00 where ID=1;); my $rv = $dbh->do($stmt) or die $DBI::errstr; if( $rv < 0 ){    print $DBI::errstr; }else{    print "Total number of rows updated : $rv\n"; } $stmt = qq(SELECT id, name, address, salary  from COMPANY;); my $sth = $dbh->prepare( $stmt ); $rv = $sth->execute() or die $DBI::errstr; if($rv < 0){    print $DBI::errstr; } while(my @row = $sth->fetchrow_array()) {       print "ID = ". $row[0] . "\n";       print "NAME = ". $row[1] ."\n";       print "ADDRESS = ". $row[2] ."\n";       print "SALARY =  ". $row[3] ."\n\n"; } print "Operation done successfully\n"; $dbh->disconnect();

當上述程序執行時,它會產生以下結果:

Opened database successfully Total number of rows updated : 1 ID = 1 NAME = Paul ADDRESS = California SALARY =  25000  ID = 2 NAME = Allen ADDRESS = Texas SALARY =  15000  ID = 3 NAME = Teddy ADDRESS = Norway SALARY =  20000  ID = 4 NAME = Mark ADDRESS = Rich-Mond SALARY =  65000  Operation done successfully

DELETE 操作

Perl代碼顯示了我們如何使用DELETE語句刪除任何記錄,然后獲取COMPANY 表并顯示剩余記錄 :

#!/usr/bin/perl  use DBI; use strict;  my $driver   = "Pg";  my $database = "testdb"; my $dsn = "DBI:$driver:dbname=$database;host=127.0.0.1;port=5432"; my $userid = "postgres"; my $password = "pass123"; my $dbh = DBI->connect($dsn, $userid, $password, { RaiseError => 1 })                       or die $DBI::errstr; print "Opened database successfully\n";  my $stmt = qq(DELETE from COMPANY where ID=2;); my $rv = $dbh->do($stmt) or die $DBI::errstr; if( $rv < 0 ){    print $DBI::errstr; }else{    print "Total number of rows deleted : $rv\n"; } $stmt = qq(SELECT id, name, address, salary  from COMPANY;); my $sth = $dbh->prepare( $stmt ); $rv = $sth->execute() or die $DBI::errstr; if($rv < 0){    print $DBI::errstr; } while(my @row = $sth->fetchrow_array()) {       print "ID = ". $row[0] . "\n";       print "NAME = ". $row[1] ."\n";       print "ADDRESS = ". $row[2] ."\n";       print "SALARY =  ". $row[3] ."\n\n"; } print "Operation done successfully\n"; $dbh->disconnect();

當上述程序執行時,它會產生以下結果:

Opened database successfully Total number of rows deleted : 1 ID = 1 NAME = Paul ADDRESS = California SALARY =  25000  ID = 3 NAME = Teddy ADDRESS = Norway SALARY =  20000  ID = 4 NAME = Mark ADDRESS = Rich-Mond SALARY =  65000  Operation done successfully

感謝各位的閱讀,以上就是“PostgreSQL如何連接Perl”的內容了,經過本文的學習后,相信大家對PostgreSQL如何連接Perl這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

深泽县| 静宁县| 集贤县| 罗江县| 连平县| 延津县| 双峰县| 屏南县| 交口县| 阳西县| 张家川| 万州区| 深泽县| 清流县| 大埔县| 木里| 寿阳县| 临清市| 普宁市| 福海县| 满洲里市| 肥西县| 宿州市| 阳江市| 潢川县| 眉山市| 保康县| 诸暨市| 容城县| 万山特区| 资中县| 抚州市| 凤翔县| 竹山县| 桦南县| 临沧市| 邳州市| 麻江县| 张家口市| 左贡县| 特克斯县|