DS инженеру приходится работать с целым зоопарком реляционных и нереляционных баз данных. Наш проект сделан для датасайенсов начального уровня и широкого профиля, поэтому мы будем рассматривать работу с SQL базами на примере MySQL / PostgreSQL и SQLite.

SQL (Structured Query Language – язык структурированных запросов). Это способ взаимодействия с базами данных, который тоже является языком программирования (язык запросов).

В изучении любых БД есть основы, это CRUD (Create, Read, Update и Delete), такие самые важные функции, которые нужно освоить, перед тем как использовать базы данных в Python.

Также нужно уметь создавать запросы, выполнять их для чтения, обновления или удаления. Все это мы рассмотрим в этом разделе.

Работа с БД MySQL в Python

MySQL – это очень популярная база данных с открытым кодом. Вы можете подключить ее к Python несколькими различными путями. Например, вы можете подключить ее, используя один из методов ODBC (PyODBC). Либо подключить MySQL к Python через пакет MySQLdb.

Существует некоторый нюанс: MySQLdb не совместим с Python 3. Работать можно через:

  • mysql-connector-python
  • pymysql
  • CyMySQL
  • mysqlclient

mysqlclient – это ветка MySQL-Python (MySQLdb), которая обеспечивает поддержку Python 3. Например, этот клиент используется в проекте Django и рекомендуется для подключения к MySQL БД.

Мы в проекте будет использовать pymysql

Установка pymysql в Python


pip3 install pymysql

Подключение к MySQL

После подключения к БД с передачей стандартных авторизационных записей, мы создаем объект курсора, и можем выполнять команды SQL. Далее извлекаем строчку из полученного результата, выводим её и закрываем связь базы данных.


import MySQLdb
 
conn = MySQLdb.connect('localhost', 'username', 'password', 'table_name')
cursor = conn.cursor()
 
cursor.execute("SELECT * FROM table_name")
 
# Получаем данные.
row = cursor.fetchone()
print(row)
 
# Разрываем подключение.
conn.close()