Алгоритм работы с БД в 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, а курсор можно рассматривать как элемент данных. Вы можете иметь несколько курсоров для одних и тех же данных в рамках одного соединения. Несколько подключений к одним и тем же данным с одного компьютера — это уже редкое явление.
В зависимости от базовой реализации можно создать несколько курсоров, использующих одно и то же соединение с базой данных. Закрытие курсора должно освободить ресурсы, связанные с запросом, включая любые результаты, которые никогда не извлекались из БД (или извлекались, но не использовались), но не устраняло соединение с самой базой данных, поэтому вы могли бы получить новый курсор в той же базе данных, без необходимости повторной аутентификации.