PostgreSQL - интерфейс Python

Установка

PostgreSQL может быть интегрирован с Python с помощью модуля psycopg2. sycopg2 - это адаптер базы данных PostgreSQL для языка программирования Python. psycopg2 был написан с целью сделать его очень маленьким, быстрым и стабильным, как скала. Вам не нужно устанавливать этот модуль отдельно, поскольку он по умолчанию поставляется вместе с Python версии 2.5.x и более поздних версий.

Если он не установлен на вашем компьютере, вы можете использовать команду yum для его установки следующим образом:

$yum install python-psycopg2

Чтобы использовать модуль psycopg2, вы должны сначала создать объект Connection, который представляет базу данных, а затем, при желании, вы можете создать объект курсора, который поможет вам в выполнении всех операторов SQL.

API модуля Python psycopg2

Ниже приведены важные процедуры модуля psycopg2, которые могут удовлетворить ваши требования для работы с базой данных PostgreSQL из вашей программы Python. Если вы ищете более сложное приложение, вы можете заглянуть в официальную документацию модуля Python psycopg2.

С. Нет. API и описание
1

psycopg2.connect(database="testdb", user="postgres", password="cohondob", host="127.0.0.1", port="5432")

Этот API открывает соединение с базой данных PostgreSQL. Если база данных открыта успешно, возвращается объект подключения.

2

connection.cursor()

Эта процедура создает cursor который будет использоваться на протяжении всего программирования вашей базы данных с помощью Python.

3

cursor.execute(sql [, optional parameters])

Эта подпрограмма выполняет инструкцию SQL. Оператор SQL может быть параметризован (т. Е. Заполнителями вместо литералов SQL). Модуль psycopg2 поддерживает заполнитель с использованием знака% s

Например: cursor.execute («вставить в людей значения (% s,% s)», (кто, возраст))

4

cursor.executemany(sql, seq_of_parameters)

Эта процедура выполняет команду SQL для всех последовательностей параметров или сопоставлений, найденных в последовательности sql.

5

cursor.callproc(procname[, parameters])

Эта процедура выполняет хранимую процедуру базы данных с заданным именем. Последовательность параметров должна содержать по одной записи для каждого аргумента, ожидаемого процедурой.

6

cursor.rowcount

Этот атрибут только для чтения, который возвращает общее количество строк базы данных, которые были изменены, вставлены или удалены последним выполнением * ().

7

connection.commit()

Этот метод фиксирует текущую транзакцию. Если вы не вызовете этот метод, все, что вы сделали с момента последнего вызова commit (), не будет видно из других подключений к базе данных.

8

connection.rollback()

Этот метод откатывает любые изменения в базе данных с момента последнего вызова commit ().

9

connection.close()

Этот метод закрывает соединение с базой данных. Обратите внимание, что это не вызывает автоматического вызова commit (). Если вы просто закроете соединение с базой данных без предварительного вызова commit (), ваши изменения будут потеряны!

10

cursor.fetchone()

Этот метод выбирает следующую строку набора результатов запроса, возвращая одну последовательность, или None, если больше нет доступных данных.

11

cursor.fetchmany([size=cursor.arraysize])

Эта процедура выбирает следующий набор строк результата запроса, возвращая список. Когда строк больше нет, возвращается пустой список. Метод пытается получить столько строк, сколько указано в параметре размера.

12

cursor.fetchall()

Эта процедура извлекает все (оставшиеся) строки результата запроса, возвращая список. Если строки недоступны, возвращается пустой список.

Подключение к базе данных

Следующий код Python показывает, как подключиться к существующей базе данных. Если база данных не существует, она будет создана и, наконец, будет возвращен объект базы данных.

#!/usr/bin/python

import psycopg2

conn = psycopg2.connect(database="testdb", user = "postgres", password = "pass123", host = "127.0.0.1", port = "5432")

print "Opened database successfully"

Здесь вы также можете предоставить базу данных testdb в качестве имени, и если база данных успешно открыта, он выдаст следующее сообщение -

Open database successfully

Создать таблицу

Следующая программа Python будет использоваться для создания таблицы в ранее созданной базе данных -

#!/usr/bin/python

import psycopg2

conn = psycopg2.connect(database = "testdb", user = "postgres", password = "pass123", host = "127.0.0.1", port = "5432")
print "Opened database successfully"

cur = conn.cursor()
cur.execute('''CREATE TABLE COMPANY
      (ID INT PRIMARY KEY     NOT NULL,
      NAME           TEXT    NOT NULL,
      AGE            INT     NOT NULL,
      ADDRESS        CHAR(50),
      SALARY         REAL);''')
print "Table created successfully"

conn.commit()
conn.close()

Когда приведенная выше программа будет выполнена, она создаст таблицу COMPANY в вашем test.db и он отобразит следующие сообщения -

Opened database successfully
Table created successfully

ВСТАВИТЬ операцию

Следующая программа Python показывает, как мы можем создавать записи в нашей таблице COMPANY, созданной в приведенном выше примере:

#!/usr/bin/python

import psycopg2

conn = psycopg2.connect(database = "testdb", user = "postgres", password = "pass123", host = "127.0.0.1", port = "5432")
print "Opened database successfully"

cur = conn.cursor()

cur.execute("INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY) \
      VALUES (1, 'Paul', 32, 'California', 20000.00 )");

cur.execute("INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY) \
      VALUES (2, 'Allen', 25, 'Texas', 15000.00 )");

cur.execute("INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY) \
      VALUES (3, 'Teddy', 23, 'Norway', 20000.00 )");

cur.execute("INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY) \
      VALUES (4, 'Mark', 25, 'Rich-Mond ', 65000.00 )");

conn.commit()
print "Records created successfully";
conn.close()

Когда приведенная выше программа будет выполнена, она создаст заданные записи в таблице COMPANY и отобразит следующие две строки:

Opened database successfully
Records created successfully

ВЫБРАТЬ операцию

Следующая программа Python показывает, как мы можем извлекать и отображать записи из нашей таблицы COMPANY, созданной в приведенном выше примере:

#!/usr/bin/python

import psycopg2

conn = psycopg2.connect(database = "testdb", user = "postgres", password = "pass123", host = "127.0.0.1", port = "5432")
print "Opened database successfully"

cur = conn.cursor()

cur.execute("SELECT id, name, address, salary  from COMPANY")
rows = cur.fetchall()
for row in rows:
   print "ID = ", row[0]
   print "NAME = ", row[1]
   print "ADDRESS = ", row[2]
   print "SALARY = ", row[3], "\n"

print "Operation done successfully";
conn.close()

Когда приведенная выше программа будет выполнена, она даст следующий результат:

Opened database successfully
ID =  1
NAME =  Paul
ADDRESS =  California
SALARY =  20000.0

ID =  2
NAME =  Allen
ADDRESS =  Texas
SALARY =  15000.0

ID =  3
NAME =  Teddy
ADDRESS =  Norway
SALARY =  20000.0

ID =  4
NAME =  Mark
ADDRESS =  Rich-Mond
SALARY =  65000.0

Operation done successfully

ОБНОВЛЕНИЕ Операция

Следующий код Python показывает, как мы можем использовать оператор UPDATE для обновления любой записи, а затем извлекать и отображать обновленные записи из нашей таблицы COMPANY.

#!/usr/bin/python

import psycopg2

conn = psycopg2.connect(database = "testdb", user = "postgres", password = "pass123", host = "127.0.0.1", port = "5432")
print "Opened database successfully"

cur = conn.cursor()

cur.execute("UPDATE COMPANY set SALARY = 25000.00 where ID = 1")
conn.commit()
print "Total number of rows updated :", cur.rowcount

cur.execute("SELECT id, name, address, salary  from COMPANY")
rows = cur.fetchall()
for row in rows:
   print "ID = ", row[0]
   print "NAME = ", row[1]
   print "ADDRESS = ", row[2]
   print "SALARY = ", row[3], "\n"

print "Operation done successfully";
conn.close()

Когда приведенная выше программа будет выполнена, она даст следующий результат:

Opened database successfully
Total number of rows updated : 1
ID =  1
NAME =  Paul
ADDRESS =  California
SALARY =  25000.0

ID =  2
NAME =  Allen
ADDRESS =  Texas
SALARY =  15000.0

ID =  3
NAME =  Teddy
ADDRESS =  Norway
SALARY =  20000.0

ID =  4
NAME =  Mark
ADDRESS =  Rich-Mond
SALARY =  65000.0

Operation done successfully

УДАЛИТЬ операцию

Следующий код Python показывает, как мы можем использовать оператор DELETE для удаления любой записи, а затем извлечь и отобразить оставшиеся записи из нашей таблицы COMPANY.

#!/usr/bin/python

import psycopg2

conn = psycopg2.connect(database = "testdb", user = "postgres", password = "pass123", host = "127.0.0.1", port = "5432")
print "Opened database successfully"

cur = conn.cursor()

cur.execute("DELETE from COMPANY where ID=2;")
conn.commit()
print "Total number of rows deleted :", cur.rowcount

cur.execute("SELECT id, name, address, salary  from COMPANY")
rows = cur.fetchall()
for row in rows:
   print "ID = ", row[0]
   print "NAME = ", row[1]
   print "ADDRESS = ", row[2]
   print "SALARY = ", row[3], "\n"

print "Operation done successfully";
conn.close()

Когда приведенная выше программа будет выполнена, она даст следующий результат:

Opened database successfully
Total number of rows deleted : 1
ID =  1
NAME =  Paul
ADDRESS =  California
SALARY =  20000.0

ID =  3
NAME =  Teddy
ADDRESS =  Norway
SALARY =  20000.0

ID =  4
NAME =  Mark
ADDRESS =  Rich-Mond
SALARY =  65000.0

Operation done successfully