Szybki start: nawiązywanie połączeń z danymi w usłudze Azure Database for PostgreSQL i wykonywanie zapytań względem nich za pomocą języka Python — serwer elastyczny

DOTYCZY: Azure Database for PostgreSQL — serwer elastyczny

W tym przewodniku Szybki start nawiąż połączenie z wystąpieniem serwera elastycznego usługi Azure Database for PostgreSQL przy użyciu języka Python. Następnie użyjesz instrukcji SQL do wykonywania zapytań, wstawiania, aktualizowania i usuwania danych w bazie danych z platform Mac, Ubuntu Linux i Windows.

W tym artykule założono, że wiesz już, jak programować przy użyciu języka Python, ale dopiero zaczynasz pracę z elastycznym serwerem usługi Azure Database for PostgreSQL.

Wymagania wstępne

Przygotowywanie stacji roboczej klienta

Instalowanie bibliotek języka Python dla bazy danych PostgreSQL

Moduł psycopg2 umożliwia nawiązywanie połączeń z bazą danych PostgreSQL i wykonywanie zapytań względem bazy danych PostgreSQL i jest dostępny jako pakiet wheel systemu Linux, macOS lub Windows. Zainstaluj wersję binarną modułu, w tym wszystkie zależności.

Aby zainstalować psycopg2program , otwórz terminal lub wiersz polecenia i uruchom polecenie pip install psycopg2.

Uzyskiwanie informacji o połączeniu z bazą danych

Połączenie do wystąpienia serwera elastycznego usługi Azure Database for PostgreSQL wymaga w pełni kwalifikowanej nazwy serwera i poświadczeń logowania. Te informacje można uzyskać w witrynie Azure Portal.

  1. W witrynie Azure Portal wyszukaj i wybierz nazwę serwera elastycznego usługi Azure Database for PostgreSQL.

  2. Na stronie Przegląd serwera skopiuj w pełni kwalifikowaną nazwę serwera i nazwę użytkownika Administracja. W pełni kwalifikowana nazwa serwera jest zawsze nazwą< my-server-name.postgres.database.azure.com>.

    Potrzebne jest również hasło administratora. Jeśli go zapomnisz, możesz zresetować go ze strony przeglądu.

Jak uruchomić przykłady języka Python

Dla każdego przykładu kodu w tym artykule:

  1. Utwórz nowy plik w edytorze tekstów.

  2. Dodaj przykładowy kod do pliku. W kodzie zastąp:

    • <server-name> oraz <admin-username> wartości skopiowane z witryny Azure Portal.
    • <admin-password> przy użyciu hasła serwera.
    • <database-name> z nazwą elastycznej bazy danych serwera usługi Azure Database for PostgreSQL. Domyślna baza danych o nazwie postgres została automatycznie utworzona podczas tworzenia serwera. Możesz zmienić nazwę tej bazy danych lub utworzyć nową bazę danych przy użyciu poleceń SQL.
  3. Zapisz plik w folderze projektu przy użyciu rozszerzenia py , takiego jak postgres-insert.py. W przypadku systemu Windows upewnij się, że podczas zapisywania pliku wybrano kodowanie UTF-8.

  4. Aby uruchomić plik, przejdź do folderu projektu w interfejsie wiersza polecenia, a następnie wpisz python nazwę pliku, na przykład python postgres-insert.py.

Tworzenie tabeli i wstawianie danych

Poniższy przykład kodu nawiązuje połączenie z elastyczną bazą danych serwera usługi Azure Database for PostgreSQL przy użyciu funkcji psycopg2.connect i ładuje dane za pomocą instrukcji SQL INSERT . Funkcja cursor.execute wykonuje zapytanie SQL względem bazy danych.

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

Po pomyślnym uruchomieniu kodu generuje następujące dane wyjściowe:

Command-line output

Odczyt danych

Poniższy przykład kodu łączy się z elastyczną bazą danych serwera usługi Azure Database for PostgreSQL i używa instrukcji cursor.execute z instrukcją SQL SELECT w celu odczytu danych. Ta funkcja akceptuje zapytanie i zwraca zestaw wyników w celu iteracji przy użyciu funkcji 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()

Aktualizowanie danych

Poniższy przykład kodu łączy się z elastyczną bazą danych serwera usługi Azure Database for PostgreSQL i używa polecenia cursor.execute z instrukcją SQL UPDATE w celu zaktualizowania danych.

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

Usuwanie danych

Poniższy przykład kodu łączy się z elastyczną bazą danych serwera usługi Azure Database for PostgreSQL i używa polecenia cursor.execute z instrukcją SQL DELETE , aby usunąć wcześniej wstawiony element spisu.

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

Następne kroki