Перейти к содержимому

Вставка MySQL

В этой статье рассматриваются операции вставки данных в MySQL с помощью Python: от базовых методов до лучших практик. К концу чтения вы получите полное представление о том, как использовать Python для добавления данных в базу данных MySQL.

Введение

Python и MySQL — два из самых популярных инструментов в технологической индустрии. Python — это высокоуровневый язык программирования, который легко изучать и который обладает обширной библиотекой модулей. MySQL — широко используемая система управления реляционными базами данных (СУБД), применяемая для хранения и управления данными.

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

Подготовка

Прежде чем переходить к коду, нам нужно убедиться, что установлены необходимые инструменты. Для работы потребуются следующие пакеты:

  • Python
  • MySQL Connector/Python

После установки этих пакетов мы можем перейти к следующему шагу — установлению соединения с базой данных MySQL.

Установление соединения с базой данных MySQL

Чтобы вставить данные в базу данных MySQL с помощью Python, сначала необходимо установить соединение с базой данных. Это можно сделать с помощью модуля MySQL Connector/Python.

Для установления соединения необходимо предоставить следующую информацию:

  • Имя хоста
  • Имя пользователя
  • Пароль
  • Имя базы данных

После установления соединения мы можем создать объект курсора для выполнения SQL-запросов.

Подключение к базе данных MySQL с помощью Python

python
import mysql.connector

mydb = mysql.connector.connect(
  host="localhost",
  user="yourusername",
  password="yourpassword",
  database="mydatabase"
)

mycursor = mydb.cursor()

Вставка данных

Теперь, когда соединение установлено, мы можем вставлять данные. Существует два основных метода:

  1. Вставка одной строки
  2. Вставка нескольких строк

Примечание: Перед запуском приведенных ниже примеров убедитесь, что в вашей базе данных существует таблица customers с колонками name и address.

Вставка одной строки

Чтобы вставить одну строку в базу данных MySQL, мы можем использовать оператор INSERT INTO.

Вставка одной строки в базу данных MySQL на Python

python
sql = "INSERT INTO customers (name, address) VALUES (%s, %s)"
val = ("John", "Highway 21")

try:
  mycursor.execute(sql, val)
  mydb.commit()
  print(mycursor.rowcount, "record inserted.")
  print("Last inserted ID:", mycursor.lastrowid)
except mysql.connector.Error as err:
  print(f"Error: {err}")
  mydb.rollback()
finally:
  mycursor.close()
  mydb.close()

Примечание: Синтаксис заполнителя %s специфичен для драйвера mysql-connector-python. Используйте mycursor.lastrowid для получения автоматически сгенерированного ID только что вставленной строки.

Вставка нескольких строк

Чтобы вставить несколько строк в базу данных MySQL, мы можем использовать метод executemany().

Вставка нескольких строк в базу данных MySQL с помощью Python

python
sql = "INSERT INTO customers (name, address) VALUES (%s, %s)"
val = [
  ('Peter', 'Lowstreet 4'),
  ('Amy', 'Apple st 652'),
  ('Hannah', 'Mountain 21'),
  ('Michael', 'Valley 345'),
  ('Sandy', 'Ocean blvd 2'),
  ('Betty', 'Green Grass 1'),
  ('Richard', 'Sky st 331'),
  ('Susan', 'One way 98'),
  ('Vicky', 'Yellow Garden 2'),
  ('Ben', 'Park Lane 38'),
  ('William', 'Central st 954'),
  ('Chuck', 'Main Road 989'),
  ('Viola', 'Sideway 1633')
]

try:
  mycursor.executemany(sql, val)
  mydb.commit()
  print(mycursor.rowcount, "records inserted.")
except mysql.connector.Error as err:
  print(f"Error: {err}")
  mydb.rollback()
finally:
  mycursor.close()
  mydb.close()

Заключение

В этом руководстве рассмотрены основы вставки данных в базу данных MySQL с помощью Python, включая настройку соединения, вставку отдельных строк и пакетную вставку с помощью executemany(). Следуя этим рекомендациям, вы сможете эффективно хранить и управлять данными. Спасибо за чтение! Если у вас возникнут вопросы или пожелания, оставьте комментарий ниже.

Считаете ли это полезным?

Предпросмотр dual-run — сравните с маршрутами Symfony на продакшене.