Алгоритм работы с БД в Python

Рассмотрим основной алгоритм по работе с SQL соединениями. Это полезно для всех, кто сталкивается с sql-соединением при использовании, например, MySQL (пакет MySQLdb) или любого другого пакета.

Перед конфигурацией (написания строчек коннекта) вам нужно иметь данные для коннекта к БД и вообще-то знать в какую таблицу вы пойдете и с каким запросом. Для этого перед работами с базами изучают их структуру и связи.

Предположим, что у нас есть таблица tablename в базе данных sql. У нее есть 4 столбца/поля с именами field1, field2, field3, field4. Соединение у нас локальное (на своем компьютере, т.е. localhost или 127.0.0.1.

7 шагов работы с БД

  • Создать соединение
  • Создать курсор
  • Скомпоновать строку запроса
  • Передать запрос
  • Подтвердить запрос
  • Закрыть курсор
  • Закрыть соединение


mydb = MySQLdb.connect(host=host, user=user, passwd=passwd, db=database, charset="utf8")
cursor = mydb.cursor()
query = "INSERT INTO tablename (text_for_field1, text_for_field2, text_for_field3, text_for_field4) VALUES (%s, %s, %s, %s)"
cursor.execute(query, (field1, field2, field3, field4))
mydb.commit()
cursor.close()
mydb.close()

Соединение и курсор – это разные элементы. Соединение находится на уровне SQL, а курсор можно рассматривать как элемент данных. Вы можете иметь несколько курсоров для одних и тех же данных в рамках одного соединения. Несколько подключений к одним и тем же данным с одного компьютера — это уже редкое явление.

В зависимости от базовой реализации можно создать несколько курсоров, использующих одно и то же соединение с базой данных. Закрытие курсора должно освободить ресурсы, связанные с запросом, включая любые результаты, которые никогда не извлекались из БД (или извлекались, но не использовались), но не устраняло соединение с самой базой данных, поэтому вы могли бы получить новый курсор в той же базе данных, без необходимости повторной аутентификации.