Mulai cepat: Menggunakan bahasa Python untuk menyambungkan dan mengkueri data di Azure Database for PostgreSQL - Server Tunggal

BERLAKU UNTUK: Azure Database for PostgreSQL - Server Fleksibel

Dalam mulai cepat ini, Anda menyambungkan ke instans server fleksibel Azure Database for PostgreSQL dengan menggunakan Python. Kemudian, Anda menggunakan pernyataan SQL untuk mengajukan kueri, menyisipkan, memperbarui, dan menghapus data dalam database dari platform Mac, Ubuntu Linux, dan Windows.

Artikel ini mengasumsikan bahwa Anda terbiasa mengembangkan menggunakan Python, tetapi Anda baru bekerja dengan server fleksibel Azure Database for PostgreSQL.

Prasyarat

Mempersiapkan stasiun kerja klien Anda

Menginstal pustaka Python untuk PostgreSQL

Modul psycopg2 memungkinkan menyambungkan ke dan mengkueri database PostgreSQL, dan tersedia sebagai paket roda Linux, macOS, atau Windows. Instal versi biner modul, termasuk semua dependensi.

Untuk menginstal psycopg2, buka terminal atau prompt perintah dan jalankan perintah pip install psycopg2.

Mendapatkan informasi koneksi database

Koneksi ke instans server fleksibel Azure Database for PostgreSQL memerlukan nama server dan info masuk yang sepenuhnya memenuhi syarat. Anda bisa mendapatkan informasi ini dari portal Microsoft Azure.

  1. Di portal Azure, cari dan pilih nama server fleksibel Azure Database for PostgreSQL Anda.

  2. Pada halaman Ringkasan server, salin Nama server yang sepenuhnya memenuhi syarat beserta Nama pengguna admin. Nama server yang sepenuhnya memenuhi syarat selalu dalam bentuk <nama-server-saya>.postgres.database.azure.com.

    Anda juga memerlukan kata sandi admin Anda. Jika lupa, Anda dapat mengatur ulang dari halaman ikhtisar.

Cara menjalankan contoh Python

Untuk setiap contoh kode dalam artikel ini:

  1. Buat file baru di editor teks.

  2. Tambahkan contoh kode ke file. Dalam kode, ganti:

    • <server-name> dan <admin-username> dengan nilai yang Anda salin dari portal Microsoft Azure.
    • <admin-password> dengan kata sandi server Anda.
    • <database-name> dengan nama database server fleksibel Azure Database for PostgreSQL Anda. Database default bernama postgres secara otomatis dibuat saat Anda membuat server Anda. Anda bisa mengganti nama database tersebut atau membuat database baru dengan menggunakan perintah SQL.
  3. Simpan file di folder proyek Anda dengan ekstensi .py seperti postgres-insert.py. Untuk Windows, pastikan pengkodean UTF-8 dipilih saat Anda menyimpan file.

  4. Untuk menjalankan file, ubah ke folder proyek Anda di antarmuka baris perintah, dan ketik python diikuti dengan misalnya, nama file python postgres-insert.py.

Membuat tabel dan menyisipkan rekaman

Contoh kode berikut tersambung ke database server fleksibel Azure Database for PostgreSQL Anda menggunakan fungsi psycopg2.connect, dan memuat data dengan pernyataan SQL INSERT . Fungsi kursor.eksekusi menjalankan kueri SQL terhadap database.

import psycopg2

# Update connection string information 
host = "<server-name>"
dbname = "<database-name>"
user = "<admin-username>"
password = "<admin-password>"
sslmode = "require"

# Construct connection string
conn_string = "host={0} user={1} dbname={2} password={3} sslmode={4}".format(host, user, dbname, password, sslmode)
conn = psycopg2.connect(conn_string) 
print("Connection established")
cursor = conn.cursor()

# Drop previous table of same name if one exists
cursor.execute("DROP TABLE IF EXISTS inventory;")
print("Finished dropping table (if existed)")

# Create a table
cursor.execute("CREATE TABLE inventory (id serial PRIMARY KEY, name VARCHAR(50), quantity INTEGER);")
print("Finished creating table")

# Insert some data into the table
cursor.execute("INSERT INTO inventory (name, quantity) VALUES (%s, %s);", ("banana", 150))
cursor.execute("INSERT INTO inventory (name, quantity) VALUES (%s, %s);", ("orange", 154))
cursor.execute("INSERT INTO inventory (name, quantity) VALUES (%s, %s);", ("apple", 100))
print("Inserted 3 rows of data")

# Clean up
conn.commit()
cursor.close()
conn.close()

Ketika kode berjalan dengan sukses, kode menghasilkan output berikut:

Command-line output

Membaca data

Contoh kode berikut tersambung ke database server fleksibel Azure Database for PostgreSQL Anda dan menggunakan cursor.execute dengan pernyataan SQL SELECT untuk membaca data. Fungsi ini menerima kueri dan mengembalikan hasil ke iterasi dengan menggunakan cursor.fetchall()

import psycopg2

# Update connection string information
host = "<server-name>"
dbname = "<database-name>"
user = "<admin-username>"
password = "<admin-password>"
sslmode = "require"

# Construct connection string
conn_string = "host={0} user={1} dbname={2} password={3} sslmode={4}".format(host, user, dbname, password, sslmode)
conn = psycopg2.connect(conn_string) 
print("Connection established")
cursor = conn.cursor()

# Fetch all rows from table
cursor.execute("SELECT * FROM inventory;")
rows = cursor.fetchall()

# Print all rows
for row in rows:
    print("Data row = (%s, %s, %s)" %(str(row[0]), str(row[1]), str(row[2])))

# Cleanup
conn.commit()
cursor.close()
conn.close()

Memperbarui data

Contoh kode berikut tersambung ke database server fleksibel Azure Database for PostgreSQL Anda dan menggunakan cursor.execute dengan pernyataan PEMBARUAN SQL untuk memperbarui data.

import psycopg2

# Update connection string information
host = "<server-name>"
dbname = "<database-name>"
user = "<admin-username>"
password = "<admin-password>"
sslmode = "require"

# Construct connection string
conn_string = "host={0} user={1} dbname={2} password={3} sslmode={4}".format(host, user, dbname, password, sslmode)
conn = psycopg2.connect(conn_string) 
print("Connection established")
cursor = conn.cursor()

# Update a data row in the table
cursor.execute("UPDATE inventory SET quantity = %s WHERE name = %s;", (200, "banana"))
print("Updated 1 row of data")

# Cleanup
conn.commit()
cursor.close()
conn.close()

Menghapus data

Contoh kode berikut menyambungkan ke database server fleksibel Azure Database for PostgreSQL Anda dan menggunakan cursor.execute dengan pernyataan SQL DELETE untuk menghapus item inventori yang sebelumnya Anda sisipkan.

import psycopg2

# Update connection string information
host = "<server-name>"
dbname = "<database-name>"
user = "<admin-username>"
password = "<admin-password>"
sslmode = "require"

# Construct connection string
conn_string = "host={0} user={1} dbname={2} password={3} sslmode={4}".format(host, user, dbname, password, sslmode)
conn = psycopg2.connect(conn_string) 
print("Connection established")
cursor = conn.cursor()

# Delete data row from table
cursor.execute("DELETE FROM inventory WHERE name = %s;", ("orange",))
print("Deleted 1 row of data")

# Cleanup
conn.commit()
cursor.close()
conn.close()

Langkah berikutnya