🐍🐬 Python + MySQL: как подключиться к СУБД MySQL и работать с ней с помощью Python
Из этой статьи вы узнаете, как подключиться к MySQL с помощью Python и выполнить основные команды для работы с данными в таблице: установка необходимых библиотек, подключение к базе данных, создание и удаление таблицы, добавление, извлечение и удаление данных из таблицы.
Введение
Сегодня мы рассмотрим на практике, как можно всего в несколько строк кода подключиться к СУБД MySQL с помощью Python. Мы также выполним несколько основных команд для выборки, добавления и удаления данных из таблицы на языке SQL.
Установка необходимых библиотек
Установим пакет PyMySQL в наше виртуальное окружение. Данная библиотека является связующим звеном между Python и нашей СУБД:
У библиотеки есть весьма простая, понятная документация и большое комьюнити.
Создадим файл main.py, в котором будет происходить вся магия и импортируем в него ранее установленный модуль:
Подключение к БД
Первым делом нам нужно подключиться к базе. Создадим объект класса pymysql, вызовем у него метод connect и передадим в него параметры для подключения к нашей базе данных (БД):
- host: если ваша БД находится на локальной машине, то его значение будет localhost , либо 127.0.0.1, либо IP адрес хостинга, на котором вы развернули СУБД
- port: стандартный 3306
- user: это логин пользователя
- password: пароль
- db_name: имя нашей базы данных
Обернем код в блок try/except, в блоке try будем подключаться к БД, а в блоке except будем выводить в терминал возможные ошибки:
После работы с базой рекомендуется закрывать соединение. Создадим ещё один блок try/finally, внутри блока try мы будем писать наши запросы к БД, а внутри блока finally будем закрывать наше соединение:
Чтобы начать работать с MySQL, нам нужно создать объект cursor. Это объект, который содержит в себе различные методы для проведения SQL команд. Мы можем как просто положить его значение в переменную cursor = connection.cursor()
, так и воспользоваться контекстным менеджером with. Мне второй вариант нравится больше, так как выглядит лаконичней, да и документация подсказывает нам, как правильно работать с библиотекой:
Теперь давайте создадим простую таблицу, на которой сегодня потренируемся. Создаем переменную create_table_query и пишем запрос.
Создать таблицу users со следующими строками:
- id типа int со значением, auto increment
- name типа varchar
- password типа varchar
- email также типа varchar
- primary key у нас будет поле id
Для того чтобы выполнить запрос на создание таблицы, вызываем у cursor метод execute, и передаем в него наш запрос. Выведем в print сообщение об успешном исполнении:
Добавление данных в таблицу
Таблицу мы создали, теперь давайте заполним её данными. За добавление данных в таблицу в SQL отвечает метод INSERT. Пишем запрос. Дословно говорим:
Вставить в таблицу users, перечисляем поля, которые хотим заполнить, а затем данные, которыми мы хотим наполнить запись в таблице.
Например, у нас будет пользователь Анна, с паролем qwerty и почтой от gmail:
Вызываем метод execute у cursor и передаем в него наш запрос. Для того чтобы наши данные занеслись в таблицу и сохранились там, нам нужно закоммитить или зафиксировать наш запрос. Вызываем метод commit у объекта connection:
Теперь в нашей таблице создалась одна запись с пользователем Анна.
Извлечение данных из таблицы
Напишем запрос на извлечение всех данных из таблицы. Звездочка в данном запросе забирает все, что есть в таблице:
У cursor есть замечательный метод fetchall, который извлекает из таблицы все строки. Нам лишь остается пробежаться по ним циклом и распечатать.
Удаление данных из таблицы
Напишем запрос на удаление. Говорим: Удалить запись из таблицы users, где id равен 1. У нас ведь пока только одна запись:
Удаление таблицы
Последний запрос, который мы выполним. Давайте дропним нашу таблицу. Под словом дропнут подразумевается удаление всей таблицы целиком. Будьте аккуратны: данному запросу, как и запросу на создание таблицы, коммит не требуется:
Полный код файла main.py:
Подведение итогов
Теперь вы знаете как можно подключаться к СУБД MySQL с помощью Python, а также выполнять любые запросы, включая создание таблиц, занесение в них данных, а также удаление строк и самих таблиц.
Надеюсь, статья вам помогла и вы узнали что-то новое. 👍