Учебники

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

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

3

cursor.execute (sql [, необязательные параметры])

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

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

4

cursor.executemany (sql, seq_of_parameters)

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

5

cursor.callproc (procname [, параметры])

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

6

cursor.rowcount

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

7

connection.commit ()

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

8

connection.rollback ()

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

9

connection.close ()

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

10

cursor.fetchone ()

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

11

cursor.fetchmany ([размер = cursor.arraysize])

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

12

cursor.fetchall ()

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

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

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

connection.cursor ()

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

cursor.execute (sql [, необязательные параметры])

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

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

cursor.executemany (sql, seq_of_parameters)

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

cursor.callproc (procname [, параметры])

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

cursor.rowcount

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

connection.commit ()

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

connection.rollback ()

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

connection.close ()

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

cursor.fetchone ()

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

cursor.fetchmany ([размер = cursor.arraysize])

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

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

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