BI Consult Desktop Logo BI Consult Mobile Logo
  • Russian BI Исследование российских bi
  • Перейти на Fine BI
  • Контакты
  • +7 812 334-08-01
    +7 499 608-13-06
  • Отправить сообщение
  • Главная
  • Продукты Эксперт-BI
    • Дистрибуция
    • Розничная торговля
    • Производство
    • Операторы связи
    • Страхование
    • Банки
    • Лизинг
    • Логистика
    • Нефтегазовый сектор
    • Медицина
    • Сеть ресторанов
    • E-Commerce
    • Сельское хозяйство
    • Энергетика
    • FMCG
    • Девелоперы
    • Маркетплейсы
    • Пищевая промышленность
    • Фармацевтика
    • Построение Data Platform
    • Цифровая трансформация
    • Управление по KPI
    • Финансы
    • Продажи
    • Склад
    • HR
    • Маркетинг
    • Внутренний аудит
    • Категорийный менеджмент
    • S&OP и FP&A
    • Геоаналитика
    • Цепочки поставок (SCM)
    • AutoML
    • Process Mining
    • IBP
    • ИТ (CIO)
    • Закупки
  • Платформы
    • Системы бизнес-анализа (BI)
    • Интегрированное бизнес-планирование (IBP)
    • Хранилища данных (DWH / Lakehouse)
    • Каталоги данных (Data Catalog)
    • Системы ETL и ELT
    • AI / Исскуственный интеллект
    • Шина данных (ESB)
    • Система управления мастер-данными (MDM)
    • Семантический слой
  • Услуги
    • Переход на отечественные BI и DWH системы
    • Консалтинг
    • Пилотный проект
    • Обучение и сертификация
    • Бесплатное обучение
    • Поддержка
    • Технические задания
    • Сбор требований для проекта внедрения BI-системы
    • CI/CD для DWH
    • Аудит BI приложений и DWH
    • Выделенная команда
    • Настойка и поддержка баз данных
    • Разработка BI Стратегии
    • Styleguide для BI-системы
    • Как выбрать BI-систему
  • Курсы
    • Учебный курс Информационная грамотность (Data Literacy)
    • Учебный курс для бизнес-аналитиков
    • Учебный курс для системных аналитиков
    • Учебный курс по Data Governance
    • Учебный курс Как стать CDO
    • Учебный курс Современная архитектура хранилища данных
    • Учебный курс по Fine BI
    • Учебный курс по FineReport
    • Учебный курс по DWH
    • Учебный курс по Data Science (ML, AI)
    • Учебный курс по PostgreSQL
    • Учебный курс по Greenplum
    • Учебный курс по Apache Airflow и NiFi
    • Учебный курс по Open-source BI
    • Учебный курс по ClickHouse
    • Учебный курс по DataLens
    • Учебный курс по Loginom
    • Учебный курс по Modus BI и ETL
    • Учебный курс по Visiology
    • Учебный курс по dbt (Data Build Tool)
  • Компания
    • Руководство
    • Новости
    • Клиенты
    • Карьера
    • Скачать
    • Контакты

BI

  • FineBI
  • FineReport
  • FineDataLink
  • FineChatBI (FineAI)
  • Коннекторы данных из 1С в BI
  • Airflow / Nifi
  • Visiology
  • PIX BI
  • Modus BI
  • Yandex.DataLens
  • Open-source BI: Superset/Metabase
  • Luxms BI
  • AW BI + Alpha BI
  • FlyBI + Форсайт. Аналитическая Платформа
  • Loginom
  • Триафлай
  • AI / Исскуственный интеллект
  • Optimacros
  • Навигатор BI
  • Семантический слой

СУБД

  • Arenadata
  • ClickHouse
  • Greenplum
  • Postgres Professional
  • TData

Другое

  • Построение Data Platform
    • Аналитическое хранилище данных
    • Data Lake и Data Engineering
    • Подробнее про Data Lake
    • Внедрение Lakehouse
      • Apache Doris
      • StarRocks
      • Trino
    • Миграция витрин из пропиетарных DWH на новый стек
    • Учебный курс "Современная архитектура хранилища данных"
Главная » Курсы по системам бизнес-анализа и методологии » Учебный курс по PostgreSQL » Руководство по PostgreSQL » PostgreSQL – Интерфейс Python

PostgreSQL – Интерфейс Python

Установка

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

Если на Вашем компьютере адаптер  все же не установлен, используйте команду:

$yum install python-psycopg2

 

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

 

API модуля psycopg2

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

S. No.

API и Описание

1

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

Создает подключение к экземпляру базы данных PostgreSQL. В случае успешного подключения он возвращает объект подключения.

2

connection.cursor()

Создает Курсор, который будет использован для работы с базой данных .

3

cursor.execute(sql [, optional parameters])

Выполняет команду SQL, которая может быть параметризована, а не выражена в буквах. В данном случае модуль psycopg2 выражает параметры с помощью знака  %.

Например, cursor.execute("insert into people values (%s, %s)", (who, age))

4

cursor.executemany(sql, seq_of_parameters)

Выполняет команду SQL для всех элементов последовательности seq_of_parameters , которые содержат параметры запроса или словари именованных параметров.

5

cursor.callproc(procname[, parameters])

Вызывает процедуру с последовательностью аргументов

6

cursor.rowcount

Только для чтения, возвращает количество строк, затронутых операторами SQL, такими, как SELECT, UPDATE или INSERT.

7

connection.commit()

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

8

connection.rollback()

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

9

connection.close()

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

10

cursor.fetchone()

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

11

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

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

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

 

Операция INSERT

Следующая программа 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

 

Операция SELECT

Следующая программа  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

 

Операция UPDATE

Следующий код 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

 

Операция DELETE

Следующий код 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

 

Узнать стоимость решенияЗапросить видео презентацию

← Предыдущая статья
PostgreSQL – Интерфейс Perl
Запросить видео презентацию Запросить доступ к демо стенду online Узнать стоимость лицензий

Задать вопрос

loading...

Решения

Анализировать ФинансыУвеличивайте ПродажиОптимальный Склад и ЛогистикаМаркетинговые Метрики

Клиенты
  • MoneyCare — кредитная платформа и сервис для ПОС-кредитования в магазинах, установленная в более чем 18 тысячах трейдинговых точек и сотрудничающая с 11 главными банками России.

  • ГК «Акрон Холдинг», одно из крупнейших в России промышленно-металлургических предприятий, запустил проект по модернизации управления данными. В качестве целевого решения для анализа ключевых данных компания выбрала систему PIX BI. В компании уже более 100 пользователей PIX BI, и в этом году в планах увеличить их число в два раза.

  • «Балтийский лизинг» — первая компания в России, получившая лицензию № 0001 от Министерства экономики РФ на лизинговую деятельность, лицензия зарегистрирована 2 сентября 1996 года. «Балтийский лизинг» работает на российском рынке 33 года: компания представлена 79 филиалами по всей стране, сегодня в штате более 1300 сотрудников. За последние десять лет компания профинансировала имущество для 80 000 клиентов.

  • Ситилинк

    Электронный дискаунтер «Ситилинк» — один из крупнейших онлайн‑ритейлеров России (3‑е место по объему онлайн‑продаж в рейтинге Data Insight и Ruward 2016 года E‑commerce Index TOP‑100, 8 место в рейтинге Forbes «20 самых дорогих компаний Рунета — 2017»). На рынке работает 9 лет.

    В ассортименте дискаунтера более 50 000 наименований компьютерной цифровой, бытовой и садовой техники, офисной мебели и других товарных категорий. Более 700 мировых брендов в портфеле. Около 4 000 сотрудников по всей России

  • Решения
    • Дистрибуция
    • Розничная торговля
    • Производство
    • Операторы связи
    • Страхование
    • Банки
    • Лизинг
    • Логистика
    • Нефтегазовый сектор
    • Медицина
    • Сеть ресторанов
    • E-Commerce
    • Энергетика
    • Фармацевтика
  • Услуги
    • Переход на отечественные BI и DWH
    • Консалтинг
    • Пилотный проект
    • Обучение и сертификация
    • Бесплатное обучение
    • Техническая поддержка
    • Технические задания
    • Сбор требований для проекта внедрения BI-системы
    • CI/CD для DWH
    • Аудит BI приложений
    • Выделенная команда
    • Настойка и поддержка баз данных
    • Разработка BI Стратегии
    • Styleguide для BI-системы
    • Как выбрать BI-систему
  • Платформы
    • FineBI
    • FineReport
    • FineDataLink
    • Коннекторы данных из 1С в BI
    • Airflow + NiFi
    • Visiology
    • Luxms BI
    • Modus BI
    • PIX BI
    • Arenadata
    • ClickHouse
    • Greenplum
    • Postgres Professional
    • Open-source BI: Superset/Metabase
    • Loginom
    • Yandex.DataLens
    • AI / Исскуственный интеллект
    • Optimacros
    • Шины данных
  • Курсы
    • Учебный курс Информационная грамотность
    • Учебный курс для бизнес-аналитиков
    • Учебный курс для системных аналитиков
    • Учебный курс по Data Governance
    • Учебный курс Как стать CDO
    • Учебный курс Современная архитектура хранилища данных
    • Учебный курс по Fine BI
    • Учебный курс по FineReport
    • Учебный курс по DWH
    • Учебный курс по Data Science (ML, AI)
    • Учебный курс по PostgreSQL
    • Учебный курс по Apache Airflow и NiFi
    • Учебный курс по Open-source BI
    • Учебный курс по ClickHouse
    • Учебный курс по DataLens
    • Учебный курс по Loginom
    • Учебный курс по Modus BI и ETL
    • Учебный курс по Visiology
    • Учебный курс по dbt
  • Функциональные решения
    • Создание Data Lake
    • Цифровая трансформация
    • Управление по KPI
    • Финансы
    • Продажи
    • Склад
    • HR
    • Маркетинг
    • Внутренний аудит
    • Категорийный менеджмент
    • S&OP и прогнозная аналитика
    • Геоаналитика
    • Цепочки поставок (SCM)
    • AutoML
    • Process Mining
    • Сквозная аналитика
  • Компания
    • О нас
    • Руководство
    • Новости
    • Клиенты
    • Скачать
    • Контакты
    • Политика конфиденциальности
RutubeVkontakteLinkedInYouTube
ООО "Би Ай Консалт",
ИНН: 7811437757,
ОГРН: 1097847154184
199178, Россия,
Санкт-Петербург,
6-ая линия В.О., Д. 63, 4 этаж
Тел: +7 (812) 334-08-01
Тел: +7 (499) 608-13-06
E-mail: info@biconsult.ru

 

 

 

 

 

×

Пользуясь сайтом, вы соглашаетесь с использованием cookies и политикой конфиденциальности.