Przejdź do głównej zawartości

PostgreSQL

Jeśli dotarłeś tak daleko, wierzymy, że już wiesz, jak stworzyć bazę danych w naszej aplikacji CLI. Jeśli nie, sprawdź sekcję Bazy danych i utwórz jedną do dalszego szkolenia.

Przygotowanie

Dla PostgreSQL, nasz wrapper został wzbogacony o przydatne polecenia do interakcji z DB. Po pierwsze, tworzymy połączenie z DB za pomocą:

  • nazwy działającej instancji psql
  • wygenerowanego dla tej instancji tokena

Jeśli nie masz żadnych działających instancji PostgreSQL, utwórz jedną, a następnie skopiuj nazwę i token aplikacji.
Token aplikacji można znaleźć, korzystając z:

cgc db list -d

To nie zadziała z Jupyterem, chyba że dostarczyłeś klucze API. Użyj swojego osobistego terminala, gdzie dokonałeś rejestracji w cgc.

Użycie

Utwórz połączenie

import cgc.sdk as cgc
postgresql = cgc.postgresql_client("postgresql","fec387f993934ccebe4d24ef2f079720")

Utwórz tabelę

sql_command = sql.SQL('''
CREATE TABLE Customer
(CustomerID INT PRIMARY KEY NOT NULL,
CustomerName VARCHAR(50),
LastName VARCHAR(50),
Country VARCHAR(50),
Age INT,
Phone INT
);
''')
cursor.execute(sql_command)

Wstaw dokumenty

Teraz możemy wstawić dane do wcześniej utworzonej tabeli za pomocą funkcji insert_one

sql_command = sql.SQL('''
INSERT INTO Customer
(CustomerID,
CustomerName,
LastName,
Country,
Age,
Phone) VALUES (%s,%s,%s,%s,%s,%s)
''')
record_to_insert = (3, 'Zbigniew', "Polak", "Bali", 69, 991991991)
cursor.execute(sql_command,record_to_insert)
postgresql_client.commit()

Pobieranie danych z bazy danych

Aby pobrać dane z bazy danych, po prostu uruchom polecenie select, aby pobrać kursor psql z danymi, a następnie wyświetlić rekordy

cursor = postgresql_client.cursor()
cursor.execute("SELECT * FROM Customer")
cursor.fetchall()

Alternatywy

Jeśli znasz psycopg2, możesz go użyć do dostępu do bazy danych bez konieczności korzystania z cgc sdk. Użyj

import psycopg2

client = psycopg2.connect(
database="db",
host="postgresql",
user="admin",
password="fec387f993934ccebe4d24ef2f079720",
)
cursor = client.cursor()

cursor.execute("SELECT * FROM Customer")
cursor.fetchall()