[PYTHON] psycopg2 memo

In Qiita wird ein Gedenkgottesdienst für lokale Memos abgehalten. Ich habe es letztes Jahr geschrieben, daher gibt es möglicherweise einige alte Informationen. ..

Über psycopg2

psycopg2 ist eine Bibliothek, die PostgreSQL in Python verarbeitet. Refs.: 1,2

Stellen Sie mit psycopg2 eine Verbindung zu PostgreSQL DB her

Sie können eine DB-Verbindung mit "conn = psycopg2.connect ({DB_URL (str)})" erstellen. {DB_URL} wird angegeben durch postgresql: // {Benutzername}: {pass} @ {IP-Adresse oder Hostname}: {Port} / {DB-Name}.

Oder conn = psycopg2.connect (Host = {IP-Adresse oder Hostname (str)}, Port = {Portnummer (int)}, Datenbankname = {DB-Name (str)}, Benutzer = {Benutzername (str)}, Sie können es auch mit password = {pass (str)}) angeben.

Wenn Sie die Verbindung nicht mehr benötigen, können Sie "close ()" verwenden, aber Sie können die "with" -Syntax verwenden, daher sollten Sie sie verwenden.

import psycopg2

with psycopg2.connect({DB URL}) as conn:
    # Processes you want to do

Wirf eine Abfrage

Machen Sie einen Cursor zum Werfen. Sie können einen Cursor mit "conn.cursor ()" erstellen. Wenn dies nicht mehr benötigt wird, wird close () ausgeführt, aber wi (unten abgekürzt).

Sie können eine Abfrage mit cursor.execute ({query string}) ausführen. Wenn Sie ein Argument angeben möchten, geben Sie es als Taple (oder Liste) für das zweite Argument an, z. B. "cursor.execute" ("SELECT * FROM OSPF_TABLE WHERE FOO =% s", (fooval,)).

Sie können Argumente auch als Wörterbuch (Wörterbuchtyp) angeben. Geben Sie in diesem Fall dem Platzhalter einen Schlüssel wie "% (Schlüssel) s".

cur.execute("""
     INSERT INTO some_table (an_int, a_date, another_date, a_string)
     VALUES (%(int)s, %(date)s, %(date)s, %(str)s);
     """,
     {'int': 10, 'str': "O'Reilly", 'date': datetime.date(2005, 11, 18)})
import psycopg2

with psycopg2.connect({DB URL}) as conn:
    with conn.cursor() as cur:
        cur.execute({query})

Abfrageergebnisse erhalten

Erhalten Sie das Ergebnis von SELECT als Python-Objekt. Sie können es mit cursor.fetchone (), cursor.fetchall (), cursor.fetchmany (size) empfangen.

cursor.fetchone()

Empfangen Sie nur eine aus der nächsten Zeile des Ergebnisses (Abfrageergebnismenge). Das Ergebnis wird als Taple zurückgegeben. Wenn Sie es ausführen, während der Cursor auf das Ende zeigt, wird "Keine" zurückgegeben.

cursor.fetchall()

Erhalten Sie alle Ergebnisse aus der nächsten Zeile des Ergebnisses (Abfrageergebnismenge). Das Ergebnis wird als Liste der Tapples zurückgegeben. Wenn Sie es ausführen, wenn der Cursor auf das Ende zeigt, wird eine leere Liste zurückgegeben.

cursor.fetchmany(size)

Erhält "Größe" aus der nächsten Zeile des Ergebnisses (Abfrage-Ergebnismenge). Das Ergebnis wird als Liste der Tapples zurückgegeben. Wenn Sie es ausführen, wenn der Cursor auf das Ende zeigt, wird eine leere Liste zurückgegeben.

verpflichten

Transaktionen sind standardmäßig aktiviert, sodass Ihre Änderungen erst nach dem Festschreiben wirksam werden. Lassen Sie uns mit connect.commit () festschreiben. Durch Setzen von "connect.autocommit = True" wird die Transaktion deaktiviert.

Rollback

Es ist connect.rollback (). Wenn Sie eine Verbindung mit der Syntax "with" herstellen, wird diese automatisch zurückgesetzt, wenn innerhalb des Blocks "with" eine Ausnahme auftritt. Es ist bequem [^ 1].

[^ 1]: Es scheint, dass es [PEP249] erfüllt (https://www.python.org/dev/peps/pep-0249/)

Recommended Posts

psycopg2 memo
gzip memo
Pandas Memo
HackerRank-Memo
Python-Memo
Python-Memo
Graphen-Memo
Kolben Memo
pyenv memo
pytest memo
sed memo
Installieren Sie Memo
BeautifulSoup4 Memo
networkx memo
Python-Memo
Kater Memo
Befehlsnotiz
Generator Memo.
Python-Memo
SSH-Memo
Notiz: rtl8812
Pandas Memo
Shell Memo
Python-Memo
Pycharm-Memo
AtCoder Andachtsnotiz (11/12)
PyPI-Push-Memo
Tensorflow-GPU Einführungsnotiz
LPIC201 Studiennotiz
Jupyter Notizbuch Memo
LPIC304 Virtualisierungsnotiz
Python-Anfänger-Memo (9.2-10)
youtube download memo
Inu x Memo
Django Lernnotiz
ARC # 016 Teilnahmememo
Schöne Suppe Memo
LPIC101 Studiennotiz
Linux (Ubuntu) Memo
scp befehlsnotiz
Kolbengrundierung Memo
Sellerie / Kombu Memo
Wer befiehlt Memo
Django Tutorial Memo
Flask Grundnotiz
Linux # Command Memo 1
★ Memo ★ Python Iroha
Memo zur Geschlechtserkennung
Bildlesememo
[MEMO] [TERMINAL] Alacritty
Notiz der 3D-Rotation (1)
[Python] EDA-Memo
Python 3-Operator-Memo
H2O.ai Einführungsnotiz
Lambda-Ausdrucksnotiz
[Memo] [Terminal] xfce-Terminal
Jupyter Notizbuch Memo