PostgreSQL - Python Interface: A Beginner's Guide

Привет, будущие маги баз данных! Я рад, что стану вашим проводником в захватывающем мире PostgreSQL и Python. Как кто-то, кто преподавал информатику на протяжении многих лет, я могу сказать, что это сочетание похоже на арахисовое масло и джем – просто delicious! Так что надевайте рабочие рукава и погружайтесь с головой!

PostgreSQL - Python

Установка

Прежде чем мы сможем начать творить магию, нам нужно настроить наши инструменты. Представьте это как подготовку кухни перед приготовлением изысканного блюда.

  1. Во-первых, убедитесь, что у вас установлен PostgreSQL на вашем компьютере. Вы можете скачать его с официального сайта PostgreSQL.

  2. Далее, нам нужно установить Python-модуль, который позволит нам общаться с PostgreSQL. Откройте ваш терминал или командную строку и введите:

pip install psycopg2

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

API модуля Python psycopg2

Теперь, когда у нас есть инструменты, давайтеquicklook, что они могут делать. Модуль psycopg2 предоставляет нам一套 функций для взаимодействия с PostgreSQL. Вот таблица самых распространенных:

Функция Описание
connect() Устанавливает соединение с базой данных
cursor() Создает объект курсора для выполнения SQL-команд
execute() Выполняет операцию с базой данных (запрос или команду)
fetchone() Получает следующую строку набора результатов запроса
fetchall() Получает все (остающиеся) строки набора результатов запроса
commit() Фиксирует текущую транзакцию
rollback() Возвращает к началу любойpendente транзакции
close() Закрывает соединение с базой данных

Не волнуйтесь, если это пока looks как иностранный язык. Мы рассмотрим каждый из этих в деталях по мере продвижения!

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

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

import psycopg2

try:
connection = psycopg2.connect(
database="mydb",
user="myuser",
password="mypassword",
host="localhost",
port="5432"
)
print("Соединение успешено!")
except (Exception, psycopg2.Error) as error:
print("Ошибка при подключении к PostgreSQL", error)

В этом коде мы:

  1. Импортируем модуль psycopg2
  2. Используем функцию connect() для установления соединения
  3. Предоставляем необходимые данные, такие как имя базы данных, пользователь, пароль и т.д.
  4. Используем блок try-except для обработки возможных ошибок

Если все пройдет хорошо, вы должны увидеть "Соединение успешено!" выведенным. Поздравляю, вы только что открыли дверь к вашей базе данных!

Создание таблицы

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

try:
cursor = connection.cursor()
create_table_query = '''CREATE TABLE books
(ID INT PRIMARY KEY     NOT NULL,
TITLE           TEXT    NOT NULL,
AUTHOR          TEXT    NOT NULL,
PUBLISHED_DATE  DATE);'''
cursor.execute(create_table_query)
connection.commit()
print("Таблица создана успешно!")
except (Exception, psycopg2.Error) as error:
print("Ошибка при создании таблицы", error)
finally:
if connection:
cursor.close()
connection.close()
print("Соединение с PostgreSQL закрыто")

Вот что происходит:

  1. Мы создаем объект курсора, который resembles нашего помощника по базе данных
  2. Мы определяем наш SQL-запрос для создания таблицы 'books'
  3. Мы используем execute() для выполнения запроса
  4. Мы commit() наши изменения, чтобы сделать их постоянными
  5. Наконец, мы закрываем наш курсор и соединение, чтобы быть хорошими гражданами базы данных

Операция INSERT

Пора добавить несколько книг на нашу полку! Давайте вставим запись в нашу таблицу.

try:
cursor = connection.cursor()
insert_query = """ INSERT INTO books (ID, TITLE, AUTHOR, PUBLISHED_DATE)
VALUES (%s, %s, %s, %s)"""
record_to_insert = (1, "To Kill a Mockingbird", "Harper Lee", "1960-07-11")
cursor.execute(insert_query, record_to_insert)
connection.commit()
print("Запись inserted успешно")
except (Exception, psycopg2.Error) as error:
print("Ошибка при вставке данных", error)

В этом коде:

  1. Мы создаем наш INSERT-запрос с местодержателями (%s) для наших значений
  2. Мы определяем кортеж с значениями, которые мы хотим вставить
  3. Мы выполняем запрос, передавая наш кортеж значений
  4. Мы commit() наши изменения

Операция SELECT

Теперь давайте проверим нашу полку и посмотрим, что у нас есть!

try:
cursor = connection.cursor()
select_query = "SELECT * from books"
cursor.execute(select_query)
records = cursor.fetchall()
for row in records:
print("ID:", row[0])
print("TITLE:", row[1])
print("AUTHOR:", row[2])
print("PUBLISHED DATE:", row[3], "\n")
except (Exception, psycopg2.Error) as error:
print("Ошибка при получении данных", error)

Вот что происходит:

  1. Мы создаем SELECT-запрос для получения всех записей из нашей таблицы 'books'
  2. Мы выполняем запрос
  3. Мы используем fetchall() для получения всех результатов
  4. Мы循环 по результатам и выводим детали каждой книги

Операция UPDATE

Ой! Мы совершили ошибку. Давайте обновим запись, чтобы исправить это.

try:
cursor = connection.cursor()
update_query = """Update books set AUTHOR = %s where ID = %s"""
cursor.execute(update_query, ("Nelle Harper Lee", 1))
connection.commit()
print("Запись обновлена успешно")
except (Exception, psycopg2.Error) as error:
print("Ошибка при обновлении данных", error)

В этом коде:

  1. Мы создаем UPDATE-запрос с местодержателями для нового имени автора и ID
  2. Мы выполняем запрос с новыми значениями
  3. Мы commit() наши изменения

Операция DELETE

Наконец, давайте узнаем, как удалить книгу с нашей полки.

try:
cursor = connection.cursor()
delete_query = """Delete from books where ID = %s"""
cursor.execute(delete_query, (1,))
connection.commit()
print("Запись удалена успешно")
except (Exception, psycopg2.Error) as error:
print("Ошибка при удалении данных", error)
finally:
if connection:
cursor.close()
connection.close()
print("Соединение с PostgreSQL закрыто")

Вот что происходит:

  1. Мы создаем DELETE-запрос с местодержателем для ID
  2. Мы выполняем запрос с ID записи, которую мы хотим удалить
  3. Мы commit() наши изменения
  4. Наконец, мы закрываем наш курсор и соединение

И вот оно! Вы только что научились основам работы с PostgreSQL с помощью Python. Помните, что практика makes perfect, так что не бойтесь экспериментировать и пробовать разные вещи. Счастливого кодирования, и пусть ваши базы данных всегда будут в perfect порядке!

Credits: Image by storyset