共用方式為


快速入門:使用 Python 來連線和查詢適用於 PostgreSQL 的 Azure 資料庫中的資料 - 單一伺服器

適用於:適用於 PostgreSQL 的 Azure 資料庫 - 單一伺服器

重要

適用於 PostgreSQL 的 Azure 資料庫 - 單一伺服器即將淘汰。 強烈建議您升級至 適用於 PostgreSQL 的 Azure 資料庫 - 彈性伺服器。 如需移轉至 適用於 PostgreSQL 的 Azure 資料庫 - 彈性伺服器的詳細資訊,請參閱單一伺服器 適用於 PostgreSQL 的 Azure 資料庫 發生什麼事?

在本快速入門中,您將了解如何連線到適用於 PostgreSQL 的 Azure 資料庫單一伺服器上的資料庫,並執行 SQL 陳述式在 macOS、Ubuntu Linux 或 Windows 上使用 Python 查詢。

提示

如果您想要使用 PostgreSQL 建置 Django 應用程式,請查看使用 PostgreSQL 部署 Django Web 應用程式教學課程。

必要條件

在本快速入門中,您需要:

取得資料庫連線資訊

連線到適用於 PostgreSQL 的 Azure 資料庫需要完整的伺服器名稱和登入認證。 您可以從 Azure 入口網站中取得此資訊。

  1. Azure 入口網站中,搜尋並選取適用於 PostgreSQL 的 Azure 資料庫伺服器名稱。

  2. 在伺服器的 [概觀] 頁面上,複製完整的伺服器名稱管理使用者名稱。 完整伺服器名稱的格式一律為 <my-server-name>.postgres.database.azure.com,而管理使用者名稱的格式一律為 <my-admin-username>@<my-server-name>

    也需要您的管理員密碼。 如果您忘記密碼,可以在此頁面中重設密碼。

    適用於 PostgreSQL 的 Azure 資料庫 伺服器名稱

重要

取代下列值:

  • <server-name><admin-username> 取代為您從 Azure 入口網站中複製的值。
  • <admin-password> 取代為伺服器密碼。
  • 當您建立伺服器時,系統已自動建立名為 postgres<database-name> 的預設資料庫 。 您可以使用 SQL 命令來重新命名該資料庫或建立新的資料庫

步驟 1:連線和插入資料

下列程式碼範例會連線到您的「適用於 PostgreSQL 的 Azure 資料庫」資料庫,方式如下:

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()

程式碼會在成功執行後產生下列輸出:

命令行輸出

步驟 2:讀取資料

下列程式碼範例會連線到您的「適用於 PostgreSQL 的 Azure 資料庫」資料庫,方式如下:


# 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])))

步驟 3:更新資料

下列程式碼範例會使用 cursor.execute 搭配 SQL UPDATE 陳述式以更新資料。


# 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")

步驟 5:刪除資料

下列程式碼使用 cursor.execute 搭配 SQL DELETE 陳述式來刪除您先前插入的詳細目錄項目。


# Delete data row from table

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

清除資源

若要清除在此快速入門期間使用的所有資源,請使用下列命令刪除資源群組:

az group delete \
    --name $AZ_RESOURCE_GROUP \
    --yes

下一步