PostgreSQL - Antarmuka Python

Instalasi

PostgreSQL dapat diintegrasikan dengan Python menggunakan modul psycopg2. sycopg2 adalah adaptor database PostgreSQL untuk bahasa pemrograman Python. psycopg2 ditulis dengan tujuan menjadi sangat kecil dan cepat, serta stabil seperti batu. Anda tidak perlu menginstal modul ini secara terpisah karena sudah dikirimkan, secara default, bersama dengan Python versi 2.5.x dan seterusnya.

Jika Anda belum menginstalnya di mesin Anda, maka Anda dapat menggunakan perintah yum untuk menginstalnya sebagai berikut -

$yum install python-psycopg2

Untuk menggunakan modul psycopg2, Anda harus terlebih dahulu membuat objek Connection yang mewakili database dan kemudian secara opsional Anda dapat membuat objek kursor yang akan membantu Anda dalam menjalankan semua pernyataan SQL.

API modul psycopg2 Python

Berikut ini adalah rutinitas modul psycopg2 yang penting, yang dapat mencukupi kebutuhan Anda untuk bekerja dengan database PostgreSQL dari program Python Anda. Jika Anda mencari aplikasi yang lebih canggih, Anda dapat melihat dokumentasi resmi modul psycopg2 Python.

No. S. API & Deskripsi
1

psycopg2.connect(database="testdb", user="postgres", password="cohondob", host="127.0.0.1", port="5432")

API ini membuka koneksi ke database PostgreSQL. Jika database berhasil dibuka, itu mengembalikan objek koneksi.

2

connection.cursor()

Rutinitas ini menciptakan file cursor yang akan digunakan di seluruh pemrograman database Anda dengan Python.

3

cursor.execute(sql [, optional parameters])

Rutinitas ini menjalankan pernyataan SQL. Pernyataan SQL dapat diparameterisasi (yaitu, placeholder, bukan literal SQL). Modul psycopg2 mendukung placeholder menggunakan tanda% s

Misalnya: cursor.execute ("masukkan ke dalam nilai orang (% s,% s)", (siapa, umur))

4

cursor.executemany(sql, seq_of_parameters)

Rutin ini mengeksekusi perintah SQL terhadap semua urutan parameter atau pemetaan yang ditemukan di urutan sql.

5

cursor.callproc(procname[, parameters])

Rutinitas ini menjalankan prosedur database yang disimpan dengan nama yang diberikan. Urutan parameter harus berisi satu entri untuk setiap argumen yang diharapkan oleh prosedur.

6

cursor.rowcount

Atribut hanya-baca ini yang mengembalikan jumlah total baris database yang telah dimodifikasi, disisipkan, atau dihapus oleh eksekusi terakhir * ().

7

connection.commit()

Metode ini melakukan transaksi saat ini. Jika Anda tidak memanggil metode ini, apa pun yang Anda lakukan sejak panggilan terakhir ke commit () tidak akan terlihat dari koneksi database lain.

8

connection.rollback()

Metode ini mengembalikan setiap perubahan ke database sejak panggilan terakhir ke commit ().

9

connection.close()

Metode ini menutup koneksi database. Perhatikan bahwa ini tidak secara otomatis memanggil commit (). Jika Anda baru saja menutup koneksi database tanpa memanggil commit () terlebih dahulu, perubahan Anda akan hilang!

10

cursor.fetchone()

Metode ini mengambil baris berikutnya dari kumpulan hasil kueri, mengembalikan satu urutan, atau Tidak ada saat tidak ada lagi data yang tersedia.

11

cursor.fetchmany([size=cursor.arraysize])

Rutinitas ini mengambil kumpulan baris berikutnya dari hasil kueri, mengembalikan daftar. Daftar kosong dikembalikan ketika tidak ada lagi baris yang tersedia. Metode ini mencoba mengambil baris sebanyak yang ditunjukkan oleh parameter ukuran.

12

cursor.fetchall()

Rutinitas ini mengambil semua baris (tersisa) dari hasil kueri, mengembalikan daftar. Daftar kosong dikembalikan jika tidak ada baris yang tersedia.

Menghubungkan ke Database

Kode Python berikut menunjukkan bagaimana menghubungkan ke database yang sudah ada. Jika database tidak ada, maka akan dibuat dan akhirnya objek database akan dikembalikan.

#!/usr/bin/python

import psycopg2

conn = psycopg2.connect(database="testdb", user = "postgres", password = "pass123", host = "127.0.0.1", port = "5432")

print "Opened database successfully"

Di sini, Anda juga dapat menyediakan database testdb sebagai nama dan jika database berhasil dibuka, maka akan muncul pesan berikut -

Open database successfully

Buat Tabel

Program Python berikut akan digunakan untuk membuat tabel di database yang dibuat sebelumnya -

#!/usr/bin/python

import psycopg2

conn = psycopg2.connect(database = "testdb", user = "postgres", password = "pass123", host = "127.0.0.1", port = "5432")
print "Opened database successfully"

cur = conn.cursor()
cur.execute('''CREATE TABLE COMPANY
      (ID INT PRIMARY KEY     NOT NULL,
      NAME           TEXT    NOT NULL,
      AGE            INT     NOT NULL,
      ADDRESS        CHAR(50),
      SALARY         REAL);''')
print "Table created successfully"

conn.commit()
conn.close()

Ketika program yang diberikan di atas dijalankan, itu akan membuat tabel PERUSAHAAN di Anda test.db dan itu akan menampilkan pesan berikut -

Opened database successfully
Table created successfully

Operasi INSERT

Program Python berikut menunjukkan bagaimana kita dapat membuat record di tabel COMPANY kita yang dibuat pada contoh di atas -

#!/usr/bin/python

import psycopg2

conn = psycopg2.connect(database = "testdb", user = "postgres", password = "pass123", host = "127.0.0.1", port = "5432")
print "Opened database successfully"

cur = conn.cursor()

cur.execute("INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY) \
      VALUES (1, 'Paul', 32, 'California', 20000.00 )");

cur.execute("INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY) \
      VALUES (2, 'Allen', 25, 'Texas', 15000.00 )");

cur.execute("INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY) \
      VALUES (3, 'Teddy', 23, 'Norway', 20000.00 )");

cur.execute("INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY) \
      VALUES (4, 'Mark', 25, 'Rich-Mond ', 65000.00 )");

conn.commit()
print "Records created successfully";
conn.close()

Ketika program yang diberikan di atas dijalankan, itu akan membuat catatan yang diberikan dalam tabel PERUSAHAAN dan akan menampilkan dua baris berikut -

Opened database successfully
Records created successfully

PILIH Operasi

Program Python berikut menunjukkan bagaimana kita dapat mengambil dan menampilkan record dari tabel COMPANY kita yang dibuat pada contoh di atas -

#!/usr/bin/python

import psycopg2

conn = psycopg2.connect(database = "testdb", user = "postgres", password = "pass123", host = "127.0.0.1", port = "5432")
print "Opened database successfully"

cur = conn.cursor()

cur.execute("SELECT id, name, address, salary  from COMPANY")
rows = cur.fetchall()
for row in rows:
   print "ID = ", row[0]
   print "NAME = ", row[1]
   print "ADDRESS = ", row[2]
   print "SALARY = ", row[3], "\n"

print "Operation done successfully";
conn.close()

Ketika program yang diberikan di atas dijalankan, itu akan menghasilkan hasil sebagai berikut -

Opened database successfully
ID =  1
NAME =  Paul
ADDRESS =  California
SALARY =  20000.0

ID =  2
NAME =  Allen
ADDRESS =  Texas
SALARY =  15000.0

ID =  3
NAME =  Teddy
ADDRESS =  Norway
SALARY =  20000.0

ID =  4
NAME =  Mark
ADDRESS =  Rich-Mond
SALARY =  65000.0

Operation done successfully

UPDATE Operasi

Kode Python berikut menunjukkan bagaimana kita dapat menggunakan pernyataan UPDATE untuk memperbarui catatan apa pun dan kemudian mengambil dan menampilkan catatan yang diperbarui dari tabel PERUSAHAAN kita -

#!/usr/bin/python

import psycopg2

conn = psycopg2.connect(database = "testdb", user = "postgres", password = "pass123", host = "127.0.0.1", port = "5432")
print "Opened database successfully"

cur = conn.cursor()

cur.execute("UPDATE COMPANY set SALARY = 25000.00 where ID = 1")
conn.commit()
print "Total number of rows updated :", cur.rowcount

cur.execute("SELECT id, name, address, salary  from COMPANY")
rows = cur.fetchall()
for row in rows:
   print "ID = ", row[0]
   print "NAME = ", row[1]
   print "ADDRESS = ", row[2]
   print "SALARY = ", row[3], "\n"

print "Operation done successfully";
conn.close()

Ketika program yang diberikan di atas dijalankan, itu akan menghasilkan hasil sebagai berikut -

Opened database successfully
Total number of rows updated : 1
ID =  1
NAME =  Paul
ADDRESS =  California
SALARY =  25000.0

ID =  2
NAME =  Allen
ADDRESS =  Texas
SALARY =  15000.0

ID =  3
NAME =  Teddy
ADDRESS =  Norway
SALARY =  20000.0

ID =  4
NAME =  Mark
ADDRESS =  Rich-Mond
SALARY =  65000.0

Operation done successfully

HAPUS Operasi

Kode Python berikut menunjukkan bagaimana kita dapat menggunakan pernyataan DELETE untuk menghapus catatan apa pun dan kemudian mengambil dan menampilkan catatan yang tersisa dari tabel PERUSAHAAN kita -

#!/usr/bin/python

import psycopg2

conn = psycopg2.connect(database = "testdb", user = "postgres", password = "pass123", host = "127.0.0.1", port = "5432")
print "Opened database successfully"

cur = conn.cursor()

cur.execute("DELETE from COMPANY where ID=2;")
conn.commit()
print "Total number of rows deleted :", cur.rowcount

cur.execute("SELECT id, name, address, salary  from COMPANY")
rows = cur.fetchall()
for row in rows:
   print "ID = ", row[0]
   print "NAME = ", row[1]
   print "ADDRESS = ", row[2]
   print "SALARY = ", row[3], "\n"

print "Operation done successfully";
conn.close()

Ketika program yang diberikan di atas dijalankan, itu akan menghasilkan hasil sebagai berikut -

Opened database successfully
Total number of rows deleted : 1
ID =  1
NAME =  Paul
ADDRESS =  California
SALARY =  20000.0

ID =  3
NAME =  Teddy
ADDRESS =  Norway
SALARY =  20000.0

ID =  4
NAME =  Mark
ADDRESS =  Rich-Mond
SALARY =  65000.0

Operation done successfully