Postgres

Eine Abfrage der Datenbank, was wird benötigt?

  • Eine virtuelle Umgebung + psycopg2
  • Python installieren und eine virtuelle Umgebung einrichten. Ist im Web schon viele male beschrieben worden und wir hier nicht wiederholt.
  • Postres installieren (siehe externe Dokumentationen)

Installation von psycopg2

pip install psycopg2

Bemerkung

Installationsproblem mit psycopg2! Lösung: »psycopg2-binary« installieren!

Ein erstes Skript – Vorbereitungen

Es setzt folgendes voraus, kann aber auch angepasst werden:

Datenbank einrichten

Einloggen mit: psql -U postgres

-- Datenbank anlegen

create database egov;
-- Datenbank umschalten

\c egov

-- Neuanlage der Relation (Tabelle)

CREATE TABLE leika (
  schluessel TEXT NULL,
  leistungsgruppierung TEXT NULL,
  leistungskennung TEXT NULL,
  verrichtung TEXT NULL,
  verrichtungsdetail TEXT NULL,
  bezeichnung TEXT NULL,
  bezeichnung2 TEXT NULL,
  typ TEXT NULL,
  veroeffentlichungsdatum  TEXT NULL,
  besondere_merkmale  TEXT NULL,
  synonyme TEXT NULL
  );

-- importieren der Daten

\i absoluter/pfad/zu/insert-leika.sql

Script ausführen

Inhalt der Datei pgleika001.py

Die erste und einfachste Frage lautet: Wie viele Datensätze befinden sich in der Tabelle?

import psycopg2

try:
    connect_str = """dbname='egov'
    user='postgres' host='localhost'
    password='postgres'"""
    conn = psycopg2.connect(connect_str)
    cursor = conn.cursor()
    sql = "select count(*) from leika"
    cursor.execute(sql)
    rows = cursor.fetchall()
    antwort = "Die Antwort auf Ihre Frage lautet:"
    print(len(antwort) * '#')
    print(antwort)
    print(len(antwort) * '#')
    for row in rows:
    print(row)
except Exception as e:
    print("Funktioniert nicht! Datenbankname, Benutzer und Password sind ok?")
    print(e)

Ausführung:

python  pg_leika_001.py

Ergebnis

##################################
Die Antwort auf Ihre Frage lautet:
##################################
(6176,)